Anyone using a GSM 1400 to send and recieve SMS messages?

Hi all!

I am looking for someone who has experience with sending and receiving SMS text messages with a GSM 1400. I have a couple of questions to ask about this, please read on....

I have used an Adafruit FONA 800 GSM shield on an Arduino UNO before and now I am currently working with an Adafruit FONA 3G with an ESP32. Both of these FONAs use SimCOM cell modules, the FONA 800 is a 2G unit, and the FONA 3G, as it's name implies, is a 3G module. For my project, I am only using SMS messages to communicate with the micro controller.

So here's my problem, while 'stress testing' my code, I've found it's possible to overwhelm the cell module with SMS messages. Here's what I mean by that....

My code first checks that the cell module is registered on the network, if it is on the network, then it checks for SMS messages. When a SMS is received, the data in the message is processed and a SMS reply is sent back. My code works fine, if I send a SMS message, I get a reply shortly afterwards. Send another SMS and wait, I get a reply.

The problem I am having is when I send 5 quick SMS messages in a row. When this happens, the first SMS will be processed and a reply sent. Then the next time through the loop, the test for the module registered on the network will come back false. The module recovers after 30 seconds or so, and reports it is connected to the cell network, then the remaining, unprocessed, SMS messages will be processed.

I noticed the GSM 1400 uses a uBlox cell module and basically, I'm wondering if it works any better than the SimCOM modules I've used?

I'm wondering if anyone can tell me how the uBlox module fares when bombarded with SMS messages before I purchase one to test.

Thanks, Randy

Hi Randy

This is handled between the modem and the network. You have to try it out. Keep in mind that not all the networks are behaving the same way, eg i have a massive problem with receiving sms on a MKR1500 while in a finnland based network everything seems to work fine.

You can configure the handling of the sms storage (on SIM on internal memory etc) with AT commands to the ublox modem. RTFM. Keep in mind that the modem is built for proper power up/shut down which is not realistic with a arduino setup (We just cut power, right);=) So my recommandation is to write a configuration setup for the modem if you need non standard values for the modem setup.

Ergo: Try out.

Cheers

I'm using my GSM1400 for extensive SMS communications. I service each SMS with the standard "available()" library function which tests for unread messages only. The order in which you service texts is dependent on the service provider and the order in which they send them to your device. I also test for the return value of endSMS() to insure my text was sent properly. I've had issues with the SMS system hanging and it simply never comes back. I use a watchdog timer to keep it from going off into lala land.

Thank you both for your input!

I'm now thinking that maybe I need to look to different networks, and test them out. This thought has kinda been on the back of my mind that maybe it is a network problem....

Always open to more input & ideas!

Randy

Cheers. I just changed my code to sending three sms in a row because i had too many characters to send.
I can confirm it’s possible to send 3 sms in a row very fast (i would say <1sek , it’s not measured, they coming to the cellular like piffpaffpuff) with the regular mkrgsm lib on MKR1400.

lavignema: I'm using my GSM1400 for extensive SMS communications. I service each SMS with the standard "available()" library function which tests for unread messages only. The order in which you service texts is dependent on the service provider and the order in which they send them to your device. I also test for the return value of endSMS() to insure my text was sent properly. I've had issues with the SMS system hanging and it simply never comes back. I use a watchdog timer to keep it from going off into lala land.

Hi, I'm also having trouble with sms.available() hanging my system. A watchdog timer sounds like a good idea I might look into that. I saw 'WDTZero' mentioned somewhere for the MKR1400 - is that the best place to start? At the moment I'm running a test using gsmAccess.timeout(180000); I won't know if it has made any difference for a hours... hopefully days... and it's a bit of a stab in the dark. Has anyone here used the gsm timeout function in this context?

The WTDZero is a hardware or software watchdog for cpu freezing purposes. You can add a hardware based timeout watchdog up to 16 seconds (this is a real hardware feature of the SAMD21 with it's own clock etc.) or a software timeout up to 2 minutes (with a software pre-reboot procedure). I do a proper modem shutdown before reboot:

 // Proper Modem Shutdown
  MODEM.sendf("AT+CFUN=15");
  MODEM.waitForResponse(10000);

You have to call MyWatchDoggy.clear(); within the watchdog time otherwise the board will reboot. Anyway: This is not mentioned for coding cron functions.

Second: I think your problem is between the modem and the network NOT between the 'Arduino' and the modem. Try another carrier. Use GSM gsmAccess(true); to debug.