GSM Shield says SMS complete but message doesn't send

Hi, I'm using a gsm shield to send SMS messages, and I'm literally on the first step with the info at http://arduino.cc/en/Guide/ArduinoGSMShield

The strange thing is I've used multiple numbers in the

char remoteNumber[20]= "12125551212";

field and none of them receive a message from the arduino despite it saying

SENDING

Message:
Test

COMPLETE!

I'm using an 02 United Kingdom sim. Which has credit and isn't sim locked, I tried it in my phone and managed to send texts, but sir some reason can't get the arduino to do it.

Any thoughts would be greatly appreciated!

Managed to sort it using instructions and script at http://arduino.cc/en/Tutorial/GSMExamplesSendSMS instead

You have to add your country code to telephone number (for example: +44123456789)

I am facing the same problem!

I have also added the country code without success.

I am using the exact "sendSMS" sample. It was actually working yesterday without country code. I did not change anything.

Please assist.

/*
 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.
 
 Circuit:
 * GSM shield 
 * SIM card that can send SMS
 
 created 25 Feb 2012
 by Tom Igoe
 
 This example is in the public domain.
 
 http://arduino.cc/en/Tutorial/GSMExamplesSendSMS
 
 */

// 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:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo 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");
      delay(1000);
    }
  }
  
  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);
    
  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);
  
  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS(); 
  Serial.println("\nCOMPLETE!\n");
}

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

Hi,

Replace the line "GSM gsmAccess;" by "GSM gsmAccess(true);".
Then, you can see the commands of modem. Post the output.

I did not replace the line "GSM gsmAccess;" by "GSM gsmAccess(true);

The SMS will only work if I bring up the Serial Monitor. If I were to supply external power to the BLUNO (Uno + BLE) without bringing up the Serial Monitor, the SMS won't work. Why is that so?

I replaced it with

 GSM gsmAccess(true);

It solves the serial monitor problem as well it seems. Though would appreciate if you can explain that.

I don't know if you use BLUNO, it'll influence serial connection. I have never work with BLUNO. Anyway, it could be a timing problem in the GSM library for this board.

I have an idea, you could put LED blinks in each part of sketch to see in which part (how many blinks have happened) sketch stops or fails.

Usually it stucks around this area. I don't know why. But if you press the 'RESET' button twice or thrice, it would work.

void setupGSM() {
  // 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");
      delay(1000);
    }
  }
  //sendSMS();
}

Hi Guys. I have come across a similar issue where on the serial monitor it says message complete and sent but I still don't get a text on my phone.

I have tried using the SIM card on a phone and it works ok. The code I am using is from the Arduino library "sendSMS..

I used the country's code +44 before entering my number but still didn't make any difference

I have replaced "GSM gsmAccess;" by "GSM gsmAccess(true); and below is the out put..

SMS Messages Sender
AT%13%
0 6>%13%%10%OK%13%%10%
AT+CGREG?%13%
6 27>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
27 48>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
48 81>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%%13%%10%+SIND: 3%13%%10%
AT+CGREG?%13%
81 102>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
102 7>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%%13%%10%+SIND: 4%13%%10%
AT+CGREG?%13%
7 28>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
28 49>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
49 70>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
70 91>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
91 112>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
112 5>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
5 26>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
26 47>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
47 68>%13%%10%+CGREG: 0,2%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
68 89>%13%%10%+CGREG: 0,3%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
102 123>%13%%10%+CGREG: 0,4%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
123 16>%13%%10%+CGREG: 0,4%13%%10%%13%%10%OK%13%%10%
AT+CGREG?%13%
16 37>%13%%10%+CGREG: 0,5%13%%10%%13%%10%OK%13%%10%
AT+IFC=1,1%13%
37 43>%13%%10%OK%13%%10%
AT+CMGF=1%13%
43 49>%13%%10%OK%13%%10%
AT+CLIP=1%13%
49 55>%13%%10%OK%13%%10%
ATE0%13%
55 61>%13%%10%OK%13%%10%
AT+COLP=1%13%
61 67>%13%%10%OK%13%%10%
GSM initialized
Enter a mobile number:

Can somebody assist me with this please?

Just to rule out the obvious, are you using the official Arduino GSM/GPRS shield?

Thanks for your replies guys .
Yeah I am using the official arduino Gsm/GPRS shield..

The link above takes you to the shield I am using ..

Thanks

Er, no, this: http://arduino.cc/en/Main/ArduinoGSMShield is the official Arduino shield.

Thanks for that. Just out of curiosity what is wrong with the previous one?

All the example code provide with the IDE is intended for use with the official shield which uses the Qualtec M10 chip. Some of the code may be specifically for that chip and there is no guarantee that it will work with other chips.

There is a simple example of how to send an sms without using libraries in the link in my signature.

Oh I see . Thanks for the clarification. Can you direct me to that example please?

There's a link at the bottom of my post. At the end of the page it takes you to is a very simple example of how to send a text/SMS. It's simply intended to prove that the modem works. You may need to adapt it to suit your particular connections but it's got comments.

Thanks for your help on the last. I finally purchased an Arduino GSM shield. It was the easiest option and now it works ok.

I can successfully send and receive a text.

I would like to add a timestamp to my text. For example a message to say Last text sent at 8:30 after the text is displayed on the LCD. How can I do this please?

I have been reading this thread and troubleshooting with these examples. I am still getting stuck where it asks for the mobile number. I type in my number 1563xxxxxxx and then nothing happens after this point.

Any ideas of what I need to troubleshoot?

How can i turned on the red led if the message has not sent. Then how can i turned on the Green led if the message has sent