GSM Shield 2 on Arduino Uno setup problems: GSM Modem Test fails. Shield broken?

Wish you all a happy new year! Maybe you guys can help me out in these cold winter days to get on with my DIY project.

I am an experienced software programmer but only know basics on hardware / electronics. I made myself a small photovoltaics (pv) offgrid system that I want to monitor with Arduino. I managed to read the pv systems battery voltage by using a voltage divider and amps coming from solar modules by using a hall sensor. Next, I want to use the data to send me an alert when the battery is low. So I bought a GSM Shield 2. For troubleshooting I removed all the sensor stuff and only use Arduino Uno and GSM Shield 2.

After a few days of reading through the internet I still am still not getting my GSM Shield 2 up and running. ON LED and STATUS LED are on, NET is flashing once / sec. Got the same problem with and without using a 9V external power use on the power supply jack.

I read through the guide from Arduino again and again

Either I miss something completely obvious and beginner like thing, or there is a serious problem with my shield.

Arduino Uno R3
GSM Shield V2 R3


I modified the ModemTest that can be accessed in the IDE from File → Examples → -> GSM → Tools → TestModem

// libraries
#include <GSM.h>

// modem verification object
GSMModem modem;
int returnCode = 9;

void setup() {
  // initialize serial communications and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only

  // start modem test
  Serial.println("Starting modem test...");
  returnCode = modem.begin();
  Serial.print("modem.begin() returned: ");

void loop() {

  // do nothing:
  while (true);

This sketch generates the following result

Starting modem test...
modem.begin() returned: 0

There is about a 5-10sec delay between “Starting modem test…” and “modem.begin() returned: 0”.

Hope someone can help.

All the best from Vienna, Austria!

UPDATE: Connected Arduino + GSM Shield to a different computer, compiled and uploaded the SendSMS Sketch from the IDE Samples -> worked immediately. (

The sample was done with a SIM Card that has no PIN!

After I saw the SMS Send Sample work on someone elses computer, I rushed home to my own computer and ran the same sample.

On my computer I was not able to successfully run the sample because somehow I can not send commands (like telefon number) back to the Arduino with Then I tried the GSMWebClient Sample ( Worked immediately the first time. After some changes it suddenly stopped working until I removed the following code from the sample:


The modem.begin() from my previous post still returns 0, although GsmWebClient sample returns results. So maybe ths function is of no use.

Will look into it more deeply.


At least I am able to reproduce one issue.

GSM.begin(); only works the first time after the GSM Shield 2 is powered. When disconnecting from the Serial Console and reconnecting again without interrupting the power supply for the GSM shield, it stops working.

Currently, the way to make it work for me is: - Disconnect the Arduino and the modem from power supply - reconnect to Power supply - switch on GSM Schield v2 by pushing the power button - connect to Serial Console with the IDE

If anybody has any idea why I completely need to interrupt power before doing another gsm cycle, I would appreciate some hints.

try to bridge pin ctrl/D7 from reverse side of shield. look for more info in description of shield in this web