# DON'T buy this mkrgsm 1400

**URL:** <https://forum.arduino.cc/t/dont-buy-this-mkrgsm-1400/608734>\
**Category:** MKR GSM 1400\
**Created:** [August 30, 2019, 6:21am UTC](https://forum.arduino.cc/t/dont-buy-this-mkrgsm-1400/608734 "2019-08-30T06:21:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tomswe](https://avatars.discourse-cdn.com/v4/letter/t/bcef8e/32.png) [@Tomswe](https://forum.arduino.cc/u/Tomswe)\
**Post date:** [August 30, 2019, 6:21am UTC](https://forum.arduino.cc/t/dont-buy-this-mkrgsm-1400/608734/1 "2019-08-30T06:21:32Z")

</div>

It works from 2 minutes to some hours then it hangs and stop working.

Will there be some kind of update or shall I put it in the trashcan?

---

<div class="post-metadata">

**Author:** ![pert](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/pert/32/217111_2.png) [@pert](https://forum.arduino.cc/u/pert)\
**Post date:** [August 30, 2019, 7:30am UTC](https://forum.arduino.cc/t/dont-buy-this-mkrgsm-1400/608734/2 "2019-08-30T07:30:43Z")

</div>

It's impossible to say what the problem is based on such little information, but there is some information here on improving the reliability of the GSM communications of the MKR GSM 1400 here:

> <https://github.com/arduino-libraries/MKRGSM/issues/66#issuecomment-498981034>
>
> I've posted this before, but I'll try again. My code is pretty simple. I check f…or SMS messages and then reply back using Hologram's network. I'm using the latest MKRGSM library 1.3.1. I also have a 1400 mAhr lithium battery connected so I'm confident that I don't have a hardware issue related to modem current.
> 
> Here's my code:
> \`\`\`
> \#include \<MKRGSM.h\>
> const char PINNUMBER\[\] = " ";
> const char GPRS\_APN\[\] = "hologram";
> const char GPRS\_LOGIN\[\] = " ";
> const char GPRS\_PASSWORD\[\] = " ";
> 
> String HOLOGRAM\_DEVICE\_KEY = "\*\*\*\*\*\*\*\*";
> String HOLOGRAM\_TOPIC = "\_SOCKETAPI\_";
> 
> GSMClient client;
> GPRS gprs;
> GSM gsm(1); // Enable debug
> GSM\_SMS sms;
> GSMScanner scan;
> 
> char server\[\] = "cloudsocket.hologram.io";
> int port = 9999;
> boolean isSMSAvailable = false;
> char sms\_message\[145\];
> 
> void setup() {
> Serial.begin(115200);
> //while(!Serial);
> 
> scan.begin();
> connectGSM();
> }
> 
> void connectGSM() {
> boolean connected = false;
> 
> while (!connected) {
> Serial.println("Begin GSM Access");
>       
> if ((gsm.begin() == GSM\_READY) &&
> (gprs.attachGPRS(GPRS\_APN, GPRS\_LOGIN, GPRS\_PASSWORD) == GPRS\_READY)) {
> connected = true;
> Serial.println("GSM Access Success");
> Serial.println(scan.getCurrentCarrier());
> } 
> else {
> Serial.println("Not connected");
> delay(1000);
> }
> }
> }
> 
> void loop() {
> if(Serial.available()) {
> char c = Serial.read();
> if(c == 'e')
> MODEM.debug();
> if(c == 'd')
> MODEM.noDebug();
> }
>   
> // Get any new incoming txt messages
> int c;
> if (sms.available()) {
> int i = 0;
> while ((c = sms.read()) != -1) {
> sms\_message\[i++\] = (char)c;
> }
> sms\_message\[i\] = '\\0'; // Terminate message
> isSMSAvailable = true;
> sms.flush();
> }
> 
> if(gsm.isAccessAlive()) {
> if(gprs.status() != GPRS\_READY) {
> if(gprs.attachGPRS(GPRS\_APN, GPRS\_LOGIN, GPRS\_PASSWORD) == GPRS\_READY)
> Serial.println("GPRS ready!");
> else
> Serial.println("GRPS not ready!");
> }
> }
> else {
> Serial.println("Reconnect to GSM...");
> connectGSM();
> }
> 
> // Send message back through hologram
> if(isSMSAvailable) {
> isSMSAvailable = false;
> 
> if (client.connect(server, port)) {
> client.print("{\\"k\\":\\"" + HOLOGRAM\_DEVICE\_KEY + "\\",\\"d\\":\\"");
> client.print(sms\_message);
> client.println("\\",\\"t\\":\\""+HOLOGRAM\_TOPIC+"\\"}");
> client.stop();
> }
> else {
> MODEM.send("AT+USOER");
> }
> }
> 
> delay(1000);
> }\`
> \`\`\`
> 
> It takes anywhere from a few days to a week or more to exhibit the problem. My logs typically look like this, where the incoming SMS message, "Jdjd", gets received and then repeated back to me via Hologram's network.
> 
> \`\`\`
> OK
> AT+CMGL="REC UNREAD"
> 
> +CMGL: 19,"REC UNREAD","+19495472010",,"18/11/14,03:53:24+00"
> Jdjd
> 
> OK
> AT+CMGD=19
> 
> OK
> AT+CREG?
> 
> +CREG: 0,5
> 
> OK
> AT+USOCR=6
> 
> +USOCR: 0
> 
> OK
> AT+USOCO=0,"cloudsocket.hologram.io",9999
> 
> OK
> AT+USOWR=0,21,"7B226B223A22433E383375242B57222C2264223A22"
> 
> +USOWR: 0,21
> 
> OK
> AT+USOWR=0,4,"4A646A64"
> 
> +USOWR: 0,4
> 
> OK
> AT+USOWR=0,20,"222C2274223A225F534F434B45544150495F227D"
> 
> +USOWR: 0,20
> 
> OK
> AT+USOWR=0,2,"0D0A"
> 
> +USOWR: 0,2
> 
> OK
> AT+USOCL=0
> 
> OK
> AT+CMGL="REC UNREAD"
> 
> OK
> AT+CREG?
> 
> +CREG: 0,5\`
> \`\`\`
> However, after a week or so this happens:
> \`\`\`
> \`OK
> AT+CMGL="REC UNREAD"
> 
> +CMGL: 19,"REC UNREAD","+19495472010",,"18/11/20,19:51:00+00"
> JDJDJ
> 
> OK
> AT+CMGD=19
> 
> OK
> AT+CREG?
> 
> +CREG: 0,5
> 
> OK
> AT+USOCR=6
> 
> +USOCR: 0
> 
> OK
> AT+USOCO=0,"cloudsocket.hologram.io",9999
> 
> ERROR
> 
> +UUSOCL: 0
> AT+USOCL=0
> 
> ERROR
> AT+CMGL="REC UNREAD"
> 
> OK
> AT+CREG?
> 
> +CREG: 0,5
> 
> OK
> AT+CMGL="REC UNREAD"
> 
> OK
> AT+CREG?
> 
> +CREG: 0,5
> 
> \`\`\`\`
> 
> From then on, the library is never able to recover.
> 
> Any help would be greatly appreciated. The code I submitted is a stripped down version of my application. I've been wanting to release my application using the MKRGSM board but I've been haunted by this issue. I see there's some asynchronous options that aren't well documented and I'm reluctant to use this approach - besides, shouldn't this library be rock solid as documented!

If you do all that and it still isn't working, then come back here with detailed information and we'll try to help you out.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 7, 2021, 11:53am UTC](https://forum.arduino.cc/t/dont-buy-this-mkrgsm-1400/608734/3 "2021-05-07T11:53:40Z")

</div>

Closed on May 7, 2021, 11:53am UTC


