Tracking Solution - uC, GPS, GSM and SD Card

You changed the baud rate to 9600 earlier. Try that?

  Serial.begin(9600);

At 9600 too no there's no SMS..there is something elementry that's amiss or wrong in the program below. The program is from Seeedstudio page:

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8);

String outMessage = "Hello world!";
String destinationNumber = "+91xxxxxxxxxx";

void setup()
{
    SIM900.begin(9600);
    Serial.begin(9600);
    delay(20000); // give time to log on to network.
    
}

void loop()
{
    if (SIM900.available()) 
    {
      Serial.println("SIM available");
      
      SIM900.print("AT+CMGF=1\r");
      delay(100);
      SIM900.println("AT + CMGS = \"" + destinationNumber +"\"");
      delay(100);
      SIM900.println(outMessage);
      delay(100);
      SIM900.println((char)26);//ctrl+z
      delay(100);
     }
     else 
     {
        Serial.println("SIM not available...");
     }  
}

I made slight modifications, baud rate 9600, moved part of code to loop. I can see the "SIM900 available" message but nothing beyond that i.e. no SMS yet.

Regards

Increase the delay between the AT commands:

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8);

String outMessage = "Hello World";
String destinationNumber = "+919900123456";

void setup()
{
  SIM900.begin(9600);
  Serial.begin(9600);
  delay(20000); // give time to log on to network.
  Serial.println("Starting");

  SIM900.print("AT+CMGF=1\r");
  delay(1000);
  SIM900.println("AT + CMGS = \"" + destinationNumber +"\"");
  delay(1000);
  SIM900.print(outMessage);
  delay(1000);
  SIM900.write((char)26);//ctrl+z
  delay(1000);
  Serial.println("Done");

}

void loop()
{
}

In your finished program you should test for the return message after each AT command just in case an error has occurred. Here we use delay just to simplify things.

Thanks Dannable,

Yahoo! Courtesty your effort, and mine (specifically, ctrl-x & ctrl-v) I see that messages can be sent. So, after 2 weeks being in sniff & scurry state the code works!

Moving one step ahead, I have to send sms based on:

a) a timer
b) based on Interrupt, specifically an incoming message from a hardcoded number - other #'s messages are to be ignored

BTW, some observations which may help someone, someday:
a) I changed baud rate to 9600 (from 192000)
b) Increased delay between commands to 1000 (i.e. 1s)
c) Connected SIM900a Tx, Rx pins to (7, 8 respectively). Earlier, connecting GSM Rx and Tx to pin 0,1 (Rx, Tx displayed on Uno)

Regards