Trouble receiving SMS on MKR NB 1500

I can send SMS fine, but incoming messages are either not coming in at all, or require several resets to be found.

  • I'm running the stock example receiveSMS or something like that, to scan for incoming messages.
  • I've tried in multiple areas (in town, at home). No difference
  • I've tried a different antenna
  • I've tried downgrading my SAMD boards library to 1.8.9 from 1.8.13
  • Changing on board modem settings to NB (option 2)

I need help with:

  1. Properly receiving messages
  2. The first letter of the message being deleted (when I do receive a message "abc", the board deletes the first char "bc" )

Thank you


Edit: (Solutions so far):

Workaround (a bad one) is quoted below (link to reply)

I've given up on this product.

The Arduino staff member I was speaking to has stopped responding to my emails (6 months ago?), and I have no solution.


I bought a SMS Hat for a raspberry pi and I use that now instead.

https://www.waveshare.com/wiki/SIM7600G-H-M2_4G_HAT (Tutorial link)
https://core-electronics.com.au/guides/raspberry-pi-4g-gps-hat/ (Store/tutorial link [AUS retailer])
SIM7600G-H M.2 4G HAT for Raspberry Pi, LTE CAT4 High Speed, 4G/3G/2G, GNSS, Global Band | Waveshare | Core Electronics Australia (Store link [AUS retailer])

I'm working through just communicating AT commands though the serial ports (UART) with an Arduino UNO. I have no issues sending or receiving SMS with this new product.


  1. Try a new SIM, and make sure your ISP supports these LTE bands:

LTE-FDD: 700, 850, 1900
LTE-TDD: 1700

From IMEI info

And update your modem to the newest version.


  1. Remove the peek() call from your sketch

Trouble receiving SMS on MKR NB 1500 - #14 by peppy_hare


  1. Make sure your SMSC is factory default (make sure you haven't changed it). This only impacts sending SMS from what I've found. You can edit this with m-centre

Have you done the modem firmware upgrade?

No, how do i do that?

This seems like more of a last resort option for me at the moment.

  • I'm still considering this though. Do you know where I could get that firmware updater PCB?

What else could it be?
And how do i check the modem's firmware?

Board info:
BN: Arduino MKR NB 1500
VID: 0x2341
PID: 0x8055

It looks scarier than it is. You have to solder 4 cables (3 would be enough but thats another story) from a USB cable or buy that updater PCB. Then you need that firmware and a Windows Software from ublox.

Without the latest firmware you can receive one SMS per modem start with some carriers. The cut of the first character is a arduino core/basic functionality bug. I was able to pass it with a old core but you already tried this. You can also code the receiving SMS functionality for yourself and avoid the MKRNB lib but this is also a headache.
My hint: Update the modem firmware and the libs to the newest versions and try again. They fixed a lot of other issues with the modem with that firmware.

You start the SerialSARAPasstrough sketch from the MRNB lib tools and type ATI9 into the serial monitor.

Okay, I'll update.

  • Do you have a link to somewhere I could purchase the updater PCB?
    • As I have multiple boards I need to update, and I don't have a micro USB breakout board anyway.
  • Is there a link to somewhere I could find the full instructions for the firmware upgrade?

My modem firmware is at L0.0.00.00.05.06,A.02.00.

  • How far behind is that?

One step.

Thank you @Dozie, However...

My ExtraPuTTY Xmodem 1K transfer keeps sending more packets than needed for the first file (12/6 packets for pkg1-0m). I've tried the following:

  • New transfer protocol (Xmodem)
  • New board (Identical type)
  • Waiting an hour
  • 4m and 8m files
  • Redownloading
    • Both download's checksums yield:
    certutil -hashfile "0bb_stg1_pkg1-0m_L56A0200_to_L58A0204.bin" MD5
    ...
    57af2b19956af65aecd02bd141d869e6
    CertUtil: -hashfile command completed successfully.
    

Note:
Your ExtraPuTTY download link is invalid. I downloaded it from elsewhere with version 0.30


How do I fix this, or is there an alternate method?

Thank you, I fixed it.
I was running the command twice by accident lol.
The modem has now been updated to version L0.05.08,A.02.04.

I still have the SMS issues however.

SARA state that L0.05.08,A.02.04 is at "End of life"

L0.0.00.00.05.08 A02.04 | UBX-19041392 | End of life

From here

Should I, or could I upgrade to L0.0.00.00.05.12 A.02.19?

L0.0.00.00.05.08 A02.04 should be able to solve your SMS issue. Take a good look at your SIM to make sure it is compatiable with the board. See https://support.arduino.cc/hc/en-us/articles/360012179859-What-type-of-SIM-does-MKR-NB-1500-use- and make sure your sketch is properly made.

I have been having the same issues, but I've found that if I comment out the following part of that example the messages are printed to the serial monitor including the first character. It would seem that the peek function isn't really peeking, or is moving the pointer forward one byte in the buffer.

// An example of message disposal
    // Any messages starting with # should be discarded
    if (sms.peek() == '#') {
      Serial.println("Discarded SMS");
      sms.flush();
    }
1 Like
  • I've tried a new IoT specific SIM and I still have the same issue
  • @intstarep My modem is now at L0.0.00.00.05.12 A.02.19 and the issue still remains

Edit:

I can now receive messages in the time frame of a few minutes.
This was a naive conclusion. Sometimes the time frame is > 10 min (never received. I gave up after this time)

Check the signal strenght with

NBScanner scannerNetworks;
scannerNetworks.getSignalStrength();

Minmum (in my experience) for operation is 10 to 12.
My problem (and i think also yours) is that the carrier not enabled the LTE-M bands/protocol.
I think the 4G/5G/IoT/LTE-M/NB hype is not so hot as expected - so that's why here with me it's not enabled on every cell antenna - resulting in a weak signal. This might be also your problem-simple as that.

The sms receive issue is a MKRNB (and it's dependencies) issue.

After running MKRNBScanNetworks which includes the scannerNetworks.getSignalStrength();, I got the following:

11:28:00.006 -> NB IoT/LTE Cat M1 networks scanner
11:28:11.443 -> Modem IMEI: xxxxxxxxxxxxxxxxxx
11:28:11.478 -> Current carrier: Telstra Telstra
11:28:11.516 -> Signal Strength: 99 [0-31]
11:28:11.552 -> Scanning available networks. May take some seconds.
11:31:11.448 ->
11:31:21.439 -> Current carrier:
11:34:21.334 -> Signal Strength: 13 [0-31]
11:34:21.334 -> Scanning available networks. May take some seconds.
11:35:38.113 -> > Telstra
11:35:38.113 ->
11:35:48.109 -> Current carrier: Telstra Telstra
11:35:48.109 -> Signal Strength: 13 [0-31]
11:35:48.146 -> Scanning available networks. May take some seconds.
11:38:48.023 ->
11:38:58.012 -> Current carrier:
11:41:57.889 -> Signal Strength: 12 [0-31]
11:41:57.889 -> Scanning available networks. May take some seconds.
11:43:23.687 -> > Telstra
11:43:23.687 ->
11:43:33.690 -> Current carrier: Telstra Telstra
11:43:33.690 -> Signal Strength: 12 [0-31]
11:43:33.724 -> Scanning available networks. May take some seconds.
11:46:33.592 ->
11:46:43.577 -> Current carrier:
11:49:43.437 -> Signal Strength: 12 [0-31]
11:49:43.437 -> Scanning available networks. May take some seconds.
11:51:06.203 -> > Telstra
11:51:06.203 ->
11:51:16.168 -> Current carrier: Telstra Telstra
11:51:16.205 -> Signal Strength: 13 [0-31]
11:51:16.205 -> Scanning available networks. May take some seconds.

My other board and antenna gives a similar result. I think the new SIM fixed the original problem, but now I'm limited by my signal strength.

The SIM is M2M only. Does this only use 2G and 3G networks? (Australia - Telstra)?
Is this the reason I have such bad signal strength?

The antenna is similar to this (but shorter):

It has the SMA adapter too. Do I need the di-pole antenna?

No, LTE-M / NB is only 4G and 5G.
This signal strenght should be sufficient.
You can upload the serialSara sketch to the mkr1500 and then connect the USB of the board to a windows pc with the mConnect software from uBlox for debuging purposes.

I've connected to my board, and I am not getting any messages to send in the SMS section. My signal strength keeps reporting as 99 as well

99 means no signal/carrier, as you can see in the top-right corner. No operator means no sms...
What about taking the whole mess to another place with some signal to check your issues out?

I'll update with a proper test table in a moment. Would It be worth hard setting the APN?