To enhance communication capabilities, the SIM900 shield includes a built-in microphone and a speaker jack, enabling easy integration for phone call functionalities. On the backside of the shield, users will find a SIM card jack and a dedicated holder for a 3V CR1220 battery, catering to the real-time clock (RTC) functionality. Assembly is straightforward – after inserting the SIM card and the battery, the shield seamlessly mounts on top of the Arduino board.
This shield empowers Arduino enthusiasts and developers with an array of communication features, making it a valuable addition to any project requiring GSM and GPRS capabilities.
Features:
- Arduino Compatibility: Compatible with any Arduino and its clones, including popular models like Uno and Mega.
- Communication Capabilities: Allows dialing and receiving phone calls. Enables sending and receiving SMS (Short Message Service). Supports connection to the internet through the GPRS network.
- Serial Control with AT Commands: Controlled via Serial connection using AT commands, providing a standardized interface.
- Quad-Band GSM Network Support: Operates on quad-band GSM frequencies: 850 MHz, 900 MHz, 1800 MHz, and 1900 MHz, ensuring global compatibility.
- Power Options: Power jack with a toggle switch for external power supply usage. Accepts 5V power supply providing 2A current or 9V, 1A, or 12V, 1A supply.
- Audio Functionality: Onboard microphone and speaker jacks for handling phone calls.
- SIM Card and RTC Support: Features a SIM card jack for easy insertion. Includes a holder for a 3V CR1220 battery to support the Real-Time Clock (RTC) functionality.
- Easy Integration: Designed for easy mounting on top of Arduino boards after inserting the SIM card and battery.
Specifications:
- Compatible with Arduino and its clones
- Quad Band 850 / 900 / 1800 / 1900 MHz GSM network
- Can send and receive SMS, MMS, GPRS, and audio using GSM network
- Supports UART interface
- AT commands
- Embedded TCP/UDP stack facility for uploading data to a web server
- RTC support
- Speaker and Headphone jacks
- Equipped with 12 GPIOs, 2 PWMs, and an ADC
- Low power consumption – 1.5mA (sleep mode)
- Industrial Temperature Range – -40°C to +85°C
Application:
- M2M (Machine to Machine) Applications
- Remote control of appliances
- Remote weather stations or Wireless Sensor Networks
- Vehicle Tracking System with a GPS module
Pinout of SIM900 GSM GPRS Board

Pins |
Description |
Power select |
Select the power supply for the GPRS shield (external power or 5V of Arduino) |
Power jack |
Connected to external 4.8-5V DC power supply |
Antenna interface |
Connected to an external antenna |
Serial port select |
Select either software serial port or hardware serial port to be connected to GPRS Shield |
Hardware Serial |
D0/D1 of Arduino |
Software serial |
D7/D8 of Arduino |
Status LED |
Tells whether the power of SIM900 is on |
Net light |
Tells the status of SIM900 linking to the net |
UART of SIM900 |
UART pins breakout of SIM900 |
Microphone |
To answer the phone call |
Speaker |
To answer the phone call |
GPIO, PWM, & ADC |
GPIO, PWM, and ADC pins breakout of SIM900 |
Power key |
Power up and down for SIM900 |
Arduino Code for GSM SIM900 GPRS IoT Shield to Send an SMS:
No 3rd party library is needed for the board to work
#include "SoftwareSerial.h" // Create software serial object to communicate with SIM900
SoftwareSerial mySerial(7, 8); // SIM900 Tx & Rx is connected to Arduino pins 7 & 8
void setup() {
Serial.begin(9600); // Begin serial communication with Arduino IDE (Serial Monitor)
mySerial.begin(9600); // Begin serial communication with SIM900
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); // Handshaking with SIM900
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\""); // Change ZZ with country code and xxxxxxxxxxx with phone number to SMS
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); // Text content
mySerial.write(26); // ASCII code of CTRL+Z to send the SMS
}
void loop() {
// No code in loop
}
void updateSerial() {
delay(500);
while (Serial.available()) {
mySerial.write(Serial.read()); // Forward what Serial received to Software Serial Port
}
while (mySerial.available()) {
Serial.write(mySerial.read()); // Forward what Software Serial received to Serial Port
}
}
To enhance communication capabilities, the SIM900 shield includes a built-in microphone and a speaker jack, enabling easy integration for phone call functionalities. On the backside of the shield, users will find a SIM card jack and a dedicated holder for a 3V CR1220 battery, catering to the real-time clock (RTC) functionality. Assembly is straightforward – after inserting the SIM card and the battery, the shield seamlessly mounts on top of the Arduino board.
This shield empowers Arduino enthusiasts and developers with an array of communication features, making it a valuable addition to any project requiring GSM and GPRS capabilities.
Features:
- Arduino Compatibility: Compatible with any Arduino and its clones, including popular models like Uno and Mega.
- Communication Capabilities: Allows dialing and receiving phone calls. Enables sending and receiving SMS (Short Message Service). Supports connection to the internet through the GPRS network.
- Serial Control with AT Commands: Controlled via Serial connection using AT commands, providing a standardized interface.
- Quad-Band GSM Network Support: Operates on quad-band GSM frequencies: 850 MHz, 900 MHz, 1800 MHz, and 1900 MHz, ensuring global compatibility.
- Power Options: Power jack with a toggle switch for external power supply usage. Accepts 5V power supply providing 2A current or 9V, 1A, or 12V, 1A supply.
- Audio Functionality: Onboard microphone and speaker jacks for handling phone calls.
- SIM Card and RTC Support: Features a SIM card jack for easy insertion. Includes a holder for a 3V CR1220 battery to support the Real-Time Clock (RTC) functionality.
- Easy Integration: Designed for easy mounting on top of Arduino boards after inserting the SIM card and battery.
Specifications:
- Compatible with Arduino and its clones
- Quad Band 850 / 900 / 1800 / 1900 MHz GSM network
- Can send and receive SMS, MMS, GPRS, and audio using GSM network
- Supports UART interface
- AT commands
- Embedded TCP/UDP stack facility for uploading data to a web server
- RTC support
- Speaker and Headphone jacks
- Equipped with 12 GPIOs, 2 PWMs, and an ADC
- Low power consumption – 1.5mA (sleep mode)
- Industrial Temperature Range – -40°C to +85°C
Application:
- M2M (Machine to Machine) Applications
- Remote control of appliances
- Remote weather stations or Wireless Sensor Networks
- Vehicle Tracking System with a GPS module
Pinout of SIM900 GSM GPRS Board

Pins |
Description |
Power select |
Select the power supply for the GPRS shield (external power or 5V of Arduino) |
Power jack |
Connected to external 4.8-5V DC power supply |
Antenna interface |
Connected to an external antenna |
Serial port select |
Select either software serial port or hardware serial port to be connected to GPRS Shield |
Hardware Serial |
D0/D1 of Arduino |
Software serial |
D7/D8 of Arduino |
Status LED |
Tells whether the power of SIM900 is on |
Net light |
Tells the status of SIM900 linking to the net |
UART of SIM900 |
UART pins breakout of SIM900 |
Microphone |
To answer the phone call |
Speaker |
To answer the phone call |
GPIO, PWM, & ADC |
GPIO, PWM, and ADC pins breakout of SIM900 |
Power key |
Power up and down for SIM900 |
Arduino Code for GSM SIM900 GPRS IoT Shield to Send an SMS:
No 3rd party library is needed for the board to work
#include "SoftwareSerial.h" // Create software serial object to communicate with SIM900
SoftwareSerial mySerial(7, 8); // SIM900 Tx & Rx is connected to Arduino pins 7 & 8
void setup() {
Serial.begin(9600); // Begin serial communication with Arduino IDE (Serial Monitor)
mySerial.begin(9600); // Begin serial communication with SIM900
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); // Handshaking with SIM900
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\""); // Change ZZ with country code and xxxxxxxxxxx with phone number to SMS
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); // Text content
mySerial.write(26); // ASCII code of CTRL+Z to send the SMS
}
void loop() {
// No code in loop
}
void updateSerial() {
delay(500);
while (Serial.available()) {
mySerial.write(Serial.read()); // Forward what Serial received to Software Serial Port
}
while (mySerial.available()) {
Serial.write(mySerial.read()); // Forward what Software Serial received to Serial Port
}
}