MKRNB1500 example sketches not working

I recently purchased an MKR NB 1500 and have been trying to get it working with very little success. I have a Hologram sim card. I've been trying the TestModem and NBScanNetwork sketches.

The TestModem sketch works less than half the time, by which I mean of the time I get the following in the serial monitor:
19:36:17.090 -> Starting modem test...ERROR, no modem answer.
19:36:27.389 -> Checking IMEI...Error: Could not get IMEI

Sometimes it'll successfully return the IMEI then after a reset cannot find the modem even moments later.

And for the NBScanNetwork sketch it just sits endlessly with the following showing in the serial monitor:
18:18:21.794 -> NB IoT/LTE Cat M1 networks scanner

After reading through a number of other forum threads where people were experiencing similar issues I've tried the solutions they've found helpful- with and without a battery connected, connected direct to my laptop (bypassing the USB hub I normally connect external devices through), even several different USB cables. All to no avail. I've seen a number of people who have had bad boards and received replacements from Arduino (some of whom have received multiple bad boards).

I haven't reached out to Arduino support yet, but seems like the logical next step unless there is something else I should try. Any input is appreciated. So far I'm very frustrated.

Hi @caiello,

You might have a bad board, before you contact support, could you please try the following change in the NBScanNetwork sketch and paste the output from the Serial Monitor in a reply.

Change the "NB nbAccess;" line to "NB nbAccess(true);", this will enable debug output.

Thanks for the suggestion. So after enabling debug output this is what I see in the serial monitor. I'm not sure what these results towards the top of the output mean.

10:28:22.508 -> NB IoT/LTE Cat M1 networks scanner
10:28:24.208 -> AT

10:28:24.208 -> OK
10:28:24.308 -> AT

10:28:24.308 -> OK
10:28:24.410 -> AT+CMEE=0

10:28:24.410 -> OK
10:28:24.615 -> AT+CFUN=0

10:28:24.615 -> OK
10:28:24.820 -> AT+CPIN?

10:28:24.820 -> +CPIN: READY
10:28:24.820 -> 
10:28:24.820 -> OK
10:28:25.023 -> AT+CMGF=1

10:28:25.023 -> OK
10:28:25.227 -> AT+UDCONF=1,1

10:28:25.227 -> OK
10:28:25.430 -> AT+CTZU=1

10:28:25.430 -> OK
10:28:25.635 -> AT+CGDCONT=1,"IP",""

10:28:25.635 -> OK
10:28:25.839 -> AT+UAUTHREQ=1,0

10:28:25.839 -> OK
10:28:26.044 -> AT+CFUN=1

10:28:26.044 -> OK
10:28:26.248 -> AT+CEREG?

10:28:26.248 -> +CEREG: 0,0
10:28:26.248 -> 
10:28:26.248 -> OK
10:28:26.451 -> AT+CEREG?

10:28:26.451 -> +CEREG: 0,0
10:28:26.451 -> 
10:28:26.451 -> OK
10:28:26.656 -> AT+CEREG?

And the last section seems to just continue repeating indefinitely. I let it sit for a minute or two and saw nothing else but that in the rest of the output to the serial monitor.

10:28:26.451 -> +CEREG: 0,0
10:28:26.451 ->
10:28:26.451 -> OK
10:28:26.656 -> AT+CEREG?

Hi,

10:28:26.451 -> AT+CEREG?

10:28:26.451 -> +CEREG: 0,0
10:28:26.451 -> 
10:28:26.451 -> OK

will loop until the board connects the the operator's network.

Maybe check your SIM and validate if you have Cat-M1 or NB-IoI coverage in your area.

I has the same problem as you until I realized I was testing from a sport where coverage is bad.

My sim is specifically for cat-m1 / nb iot and I'm in an area with plenty of coverage. I haven't moved around to other areas of my house aside from my desk, but I can't imagine the service is that spotty since I'm in a metro area.

Caiello,

Do you still have the issue with TestModem where SAMD cannot talk to ublox module? I remember having similar issue but didn't spend too much time on it.

Are you using the antenna sent by Arduino in the kit? If so, maybe try to use an antenna tuned for the band you are in. I've had very mitigate experience with this antenna.

Yanik

hi kickouille,

yes I am still having issues with both sketches. I have tried with the included antenna and with a different antenna that is specific for nb iot / cat m1 applications with the same results- the TestModem sketch works less than half the time and the NBScanNetwork appears to just never connect with or even find a network.

At this point I'm thinking I probably need to contact Arduino support and request a new board. But let me know if you have any other suggestions or thoughts.

Thanks!

Hi,

I have a 1NCE SIM card and the problem for me was the following: there was no APN set up for my SIM card. So I followed these steps:

  • Find the APN of your provider
  • pass it with the nbAccess.begin() method:
(nbAccess.begin(pinnumber, YOUR_APN_STRING_HERE) != NB_READY)
  • The corresponding line in debug mode should then return
AT+CGDCONT=1,"IP",YOUR_APN_STRING_HERE

Hope that helps.

Andy

1 Like

(nbAccess.begin(pinnumber, YOUR_APN_STRING_HERE) != NB_READY) was the right step forward. I added it onto the NBScanNetworks MKRNB library and now get

Scanning available networks. May take some seconds.
AT+COPS=?

Turn off the Sleep mode with:

ATI (To check if the modem is answering)

then

AT+CPSMS=0

You should receive a ok

I must be missing something basic, but I can't get this simple NBConstructor sketch to work. The 1nce SIM is active and working in another device. I would at least like to see the debug info during connection attempts but "NB nbAccess(true) doesn't seem to work. Is PINNUMBER required? Repeatedly, I just get "Not connected". This is my first attempt at programming an MKR NB 1500, so there may be something simple that I am missing.

Thanks in advance.

// libraries
#include <MKRNB.h>

// PIN Number
#define PINNUMBER ""

// initialize the library instance
NB nbAccess(true); // include a 'true' parameter for debug enabled

void setup()
{
// initialize serial communications
Serial.begin(9600);

// connection state
boolean notConnected = true;

// Start NB Module
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while(notConnected)
{
if(nbAccess.begin(PINNUMBER,"iot.1nce.net")==NB_READY){
notConnected = false;
Serial.println("Connected to network");
}
else
{
Serial.println("Not connected");
delay(1000);
}
}
}

void loop()
{
// Nothing here
}