Note : With Arduino 1.0 you should be able to use the SoftwareSerial library included with the distribution (instead of NewSoftSerial). However, you must be aware that the buffer reserved for incoming messages are hardcoded to 64 bytes in the library header, "SoftwareSerial.h": define _SS_MAX_RX_BUFF 64 // RX buffer size
This means that if the GPRS module responds with more data than that, you are likely to loose it with a buffer overflow! For instance, reading out an SMS from the module with "AT+CMGR=xx" (xx is the message index), you might not even see the message part because the preceding header information (like telephone number and time) takes up a lot of space. The fix seems to be to manually change _SS_MAX_RX_BUFF to a higher value (but reasonable so you don't use all you precious memory!)
Upload the sketch to the Arduino board.
Fire up your favorite serial terminal software, choose the COM port for Arduino, set it to operate at 19200 8-N-1
Press and hold the power button a short while(Over 3 seconds) on the GPRS Shield to turn it on. Wait half a minute for the GPRS Shield to connect to the network (Led Net will start blinking every 3 seconds or so). But there will not any information back in the monitor. If you want to see messages from the shield in the serial monitor such as, you need disable auto-bauding mode, using "AT+IPR=19200" . (Factory setting is AT+IPR=0 auto-bauding)
RDY
+CFUN: 1
+CPIN: READY
Call Ready
Now, type and send "AT" (without the quotes) followed by carriage return (enter key) to the Arduino board. The GPRS Shield should respond by sending back an "OK". This would mean that you have been able to successfully setup your GPRS Shield can can now play around with various AT Commands. (If you are using the readily available Serial Monitor in the Arduino IDE, you should set the line ending to "Carriage return" along with a baud rate of 19200).
Step 2: Sending a text message (SMS)
Now that our test setup is ready, let's play around with some AT Commands before moving on to programming the Arduino to do it by itself instead of doing it manually. To start off let's try sending an SMS
Create the setup as described in Step 1 above.
Through your serial terminal software, send AT+CMGF=1 and press the Enter key. The GPRS Shield can send SMSes in two modes: Text mode and PDU (or binary) mode. Since we want to send out a human readable message, we will select the text mode. The GPRS Shield will respond with an OK.
Send AT+CMGS="+918446043032" and press the Enter key (include the quotes). This will instruct the GPRS Shield to start accepting text for a new message meant for the phone number specified (replace the number with the phone number of the target phone). The GPRS Shield will send a > signaling you to start typing the message. Please note that phone numbers specified as parameters in any AT Command must be in E.123 format.
Start typing your message and when you are done, press Ctrl + Z keys on your keyboard(or sent a hex: 0x1a) when your cursor at the end of the message. The modem will accept the message and respond with an OK. A few moments later, the message should be received on the handset whose number you had specified. (There seems to be no way to send CTRL+Z in Arduino IDEs Serial Monitor - at least not on Mac. This is why a terminal program such as "screen" might work better for these tests.)