GSM GPRS Shield V1.0
Contents
Overview
Hook your Arduino up to GSM/GPRS cell phone network with GPRS shield! You can use your Arduino/Seeeduino or other main boards to dial a phone number or send a text to your friend via easy to use AT commands now. This new version features a quad-band low power consumption GSM/GPRS module SIM900 as well as a compact PCB antenna. Meanwhile, improvements on interfaces and basic circuit have been taken to make it more concise and reliable. And there’re two choices for you to communicate GPRS shield with the main board -- UART or SoftwareSerial
Specifications
Compatible Arduino UNO/Seeeduino directly ; Other main board via jumpers Selectable interface UART, Software serial Quad band support 850/900/1800/1900MHz Communication support Standard - GSM 07.07 & 07.05 and Enhanced - SIMCOM AT Commands Operation temperature -40°C to +85 °C Protocol support 0710 MUX protocol, embedded TCP/UDP protocol, FTP/HTTP, FOTA, MMS, embedded AT Certification of SIM900 CE, IC, FCC, ROHS, PTCRB, GCF, ICASA, REACH, AT&T Dimensions 68.58 * 53.34mm Consumption Power supply 5v via 5V pin, 6.5~12v via Vin pin
Cautions
- Make sure your SIM card is activated.
- GPRS Shield doesn't come with ESD precautions. Take special care when handling it in dry weather.
- The factory default setting for the GPRS Shield UART is 19200 bps 8-N-1. (Can be changed using AT commands).
Introduction
- Serial port select
There’re two choices for you to communicate GPRS shield with the main board while plugging the two jumpers on to the SWserial or HWserial positions. If using SWserial, D7 and D8 will be used by SIM900 of GPRS Shield; if using HWserial, D0 (RX) and D1 (TX) will be used.
- Power on/off by D9
Unsolder pad JP default. Solder it if you wanna use software to power on/off the GPRS shield. Set the D9 to a high level, it means the button is pressing. The pad of JP besides the ISP port.
- Breakout of SIM900
Some pins of SIM900 are break out beside the ISP port, there're LINEIN_R, LINEIN_L, ADC, PWM1, PWM2, GPIO1~GPIO6, GND, FW_update (DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS), RI, DCD, DSR, CTS, VDD_EXT, LDTR, LRTS. And those pins are pointed from SIM900 without any setting.
- RTC battery holder
It can provide 3v volts to VRTC of SIM900 from CR1220 battery.
- Power
Replace the original LDO circuitry with DC-DC circuitry -- TD1410. Heat dissipation gets lower and efficiency gets higher up to 80%+. Meanwhile, the output can up to 4.15V/2A. And there're two input of power supply: 5v pin: Soft start circuitry is added in the new version to smooth out the power shock at the moment the shield turns on, preventing the shield from unexpected reset issue. More detailed changes please refer to Related Reading : Version Tracker Vin pin: The range of input voltage are between 6.5v to 12v.
- Antenna
The type of Antenna connector is IPEX, and the maximum transit power of SIM900 is 30dBm(1w). More information please see the Specification of GPRS Antenna.
- LED Status Description
LED | Status | Function |
---|---|---|
Power indicator (Green) | Off | Power of GPRS Shield is off |
On | Power of GPRS Shield is on | |
Status indicator (Red) | Off | Power off |
On | Power on | |
Net indicator (Green) | Off | SIM900 is not working |
64ms On/800ms Off | SIM900 does not find the network | |
64ms On/3000ms Off | SIM900 finds the network | |
64ms On/300ms Off | GPRS communication |
Examples/Applications
Getting Familiar With AT Commands
As you receive the GPRS Shield, what would be the first thing you want to do with it? Send out a text (SMS)? Or call up someone (headset required)? You can do all of this by talking to the GPRS Shield using AT Commands - a special language that it understands. AT Commands are simple textual commands sent to the GPRS modem over its serial interface (UART), so you can use any serial terminal software to communicate with it.
- Preparatory Work
Follow the steps below to set up the hardware system. 1. Insert an activated SIM card to SIM Card Holder A 6 Pin Holder for SIM Cards. Both 1.8 volts and 3.0 volts SIM Cards are supported by SIM900, the SIM card voltage type is automatically detected. 2. Check the antenna Make sure the antenna have installed properly in the antenna interface. 3. Communication port configuration The GPRS shield can be controlled via hardware serial port or software serial port of Arduino. Here we use the software serial port as default. Choose it by inserting jumper caps as below. 4. Plug to Arduino Stack the GPRS Shield onto Arduino. 5. Power up Arduino Power up Arduino by USB cable or DC Jack. The Power-on indicator LED should light up once connectted.
- Usage
Let's have a try to control the GPRS shield with AT commands. The GPRS Shield comes with all accessories that you need to get started with sending data over the GSM network except an Arduino board and a GSM SIM Card. If you want to make voice calls, you would also require a headset with microphone.
Step 1: Test Setup 1.Create a new Arduino sketch and paste the codes below to it.
//Serial Relay - Arduino will patch a //serial link between the computer and the GPRS Shield //at 19200 bps 8-N-1 //Computer is connected to Hardware UART //GPRS Shield is connected to the Software UART #include <SoftwareSerial.h> SoftwareSerial GPRS(7, 8); unsigned char buffer[64]; // buffer array for data recieve over serial port int count=0; // counter for buffer array void setup() { GPRS.begin(19200); // the GPRS baud rate Serial.begin(19200); // the Serial port of Arduino baud rate. } void loop() { if (GPRS.available()) // if date is comming from softwareserial port ==> data is comming from gprs shield { while(GPRS.available()) // reading data into char array { buffer[count++]=GPRS.read(); // writing data into array if(count == 64)break; } Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array count = 0; // set counter of while loop to zero } if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook GPRS.write(Serial.read()); // write it to the GPRS shield } void clearBufferArray() // function to clear buffer array { for (int i=0; i<count;i++) { buffer[i]=NULL;} // clear all index of array with command NULL }