MKR 1400 supported SIM cards?

Hi

I finaly got my MKR 1400 and started testing it with the basic examples. TestMode, TestGPRS, GPRSPing.
The first problem I got was the power issue. I forgot to power it with more juice.
Its now powered from 4 li-ion 18650 batteris in parallel. The voltage is 3.98 and dont drop. I connected a capacitor to make everything even more stable, just in case.

First I tried connecting my data SIM and nothing worked except the TestModem sketch. But that sketch dont need a SIM card. When I connect my "normal" phone SIM card for calling and data usage, everything works great and I get a ping from google with the GPRSPing sketch. It looks like there is an issue with the data SIM I have.

I though first the data SIM was not working. So I testes the SIM card in my phone and got no issues there. I could surf the web and download files. I did remove the stock PIN and changed it to 0000. But it did not help. The reason I was testing with my datasim was because I have one for free in my tele subscription.

So my question is. Does the Arduino MKR 1400 only support SIM card you can call with?

Would appreciate to get some answers, thanks.

My setup is
MKR 1400
Battery power (Should be around 4-6A in total)
SIM card from Telia in Norway

GprsPing code from the example

/*

 This uses an MKR GSM 1400 to continuously pings given host specified by IP Address or name.

Circuit:
* MKR GSM 1400 board
* Antenna
* SIM card with a data plan

 created 06 Dec 2017
 by Arturo Guadalupi
*/
#include <MKRGSM.h>

#include "arduino_secrets.h"
// Please enter your sensitive data in the Secret tab or arduino_secrets.h
// PIN Number
const char PINNUMBER[]     = SECRET_PINNUMBER;
// APN data
const char GPRS_APN[]      = SECRET_GPRS_APN;
const char GPRS_LOGIN[]    = SECRET_GPRS_LOGIN;
const char GPRS_PASSWORD[] = SECRET_GPRS_PASSWORD;

// initialize the library instance
GSMSSLClient client;
GPRS gprs;
GSM gsmAccess;

// Specify IP address or hostname
String hostName = "www.google.com";
int pingResult;

void setup() {
 // Initialize serial and wait for port to open:
 Serial.begin(9600);
 while (!Serial) {
   ; // wait for serial port to connect. Needed for native USB port only
 }
MODEM.debug();


 Serial.println("Starting Arduino GPRS ping.");
 // connection state
 bool connected = false;

 // After starting the modem with GSM.begin()
 // attach the shield to the GPRS network with the APN, login and password
 while (!connected) {
   if ((gsmAccess.begin(PINNUMBER) == GSM_READY) &&
       (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY)) {
     connected = true;
   } else {
     Serial.println("Not connected");
     delay(1000);
   }
 }
}

void loop() {
 Serial.print("Pinging ");
 Serial.print(hostName);
 Serial.print(": ");

 pingResult = gprs.ping(hostName);

 if (pingResult >= 0) {
   Serial.print("SUCCESS! RTT = ");
   Serial.print(pingResult);
   Serial.println(" ms");
 } else {
   Serial.print("FAILED! Error code: ");
   Serial.println(pingResult);
 }

 delay(5000);
}

Debug message in console from the modem with the data SIM attached

Starting Arduino GPRS ping.
⸮AT

OK
AT+IPR=921600

OK
AT

OK
AT+UPSV=3

OK
AT+CPIN?

ERROR
AT+CPIN?

+CPIN: SIM PIN

OK
AT+CPIN="0000"

OK
AT+CMGF=1

OK
AT+UDCONF=1,1

OK
AT+CTZU=1

OK
AT+UDTMFD=1,2

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK

+UMWI: 0,1

+UMWI: 0,2

+UMWI: 0,3

+UMWI: 0,4

+UMWI: 0,5
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
AT+CREG?

+CREG: 0,0

OK
1 Like

Hi,
I think you should check if the SIM card you're using is enabled for 2g/3g. Looks like it won't register to the network so it's possible the network is not supporting modem standards. From the article below it looks like they switched off 2g and 3g: https://www.teliacompany.com/en/news/news-articles/2g-and-3g-networks-to-retire--norway-first-out/

Try to put the SIM-Card in a phone first. See that is get registered on the network, and send and receive some data. Then put it back in the GMS-1400. Worked fine for me :slight_smile:

Is use prepaid SimCard for OneCall (norway)

Check the band used by your carrier through this site GSM World Coverage Map- GSM Country List by frequency bands and change your band to the correct one using BandManagement, I had to use the last option even though the E-GSM & DCS should work for 2G, but the carrier was autoconnecting me to 3G which used 2100MHz.

FelixR5:
Try to put the SIM-Card in a phone first. See that is get registered on the network, and send and receive some data. Then put it back in the GMS-1400. Worked fine for me :slight_smile:

Is use prepaid SimCard for OneCall (norway)

I did test the Data simcard in my phone and it works. It could be that the card dont support 2g/3g