Arduino Mega ADK with GSM Shield v2

Hi everyone,

I have a problem using the GSM shield that I’ve recently adquired and I don’t see where is the error.

Objective: Send a SMS with Arduino MEGA ADK and Arduino GSM Shield v2

I followed the Arduino’s GSM official guide, and connected the boards according to the especifications in this post.
After that, I opened the GSM library example code and I compiled and uploaded it on the board. The code gets stuck in the “gsmAccess.begin(PINNUMBER)” function.

 SMS sender

 This sketch, for the Arduino GSM shield,sends an SMS message
 you enter in the serial monitor. Connect your Arduino with the
 GSM shield and SIM card, open the serial monitor, and wait for
 the "READY" message to appear in the monitor. Next, type a
 message to send and press "return". Make sure the serial
 monitor is set to send a newline when you press return.

 * GSM shield
 * SIM card that can send SMS

 created 25 Feb 2012
 by Tom Igoe

 This example is in the public domain.


// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

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

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected) {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
      notConnected = false;
    } else {
      Serial.println("Not connected");

  Serial.println("GSM initialized");

void loop() {

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms

  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];

  // send the message

  Read input serial
int readSerial(char result[]) {
  int i = 0;
  while (1) {
    while (Serial.available() > 0) {
      char inChar =;
      if (inChar == '\n') {
        result[i] = '\0';
        return 0;
      if (inChar != '\r') {
        result[i] = inChar;

· The SIM card doesn’t have PIN number (moreover it works fine in my mobile phone)
· The boards are supplied with external power supply (12V, 5A)

Any ideas of what can be wrong?

Thanks in advance

I've just tried with the GSM Tool Test Modem and the modem seems to be the issue. This is what I get:

Starting modem test...ERROR, no modem answer.
Checking IMEI...Modem's IMEI: 0
Resetting modem...Modem is functoning properly

Is there any configuration (whatever) that I'm missing?