High Performance ANSI C Compiler
for Atmel AVR microcontrollers


CodeVisionAVR Development Kits

GPRS/GSM Arduino Shield


59 Units in Stock

GPRS Options

Quantity Discounts:
+10 pcs = -3%
+30 pcs = -6%
+50 pcs = -8%
+100 pcs = -11%
(Rewarded at Checkout)
Check out the most advanced Arduino GPRS shield available.

The XG8100 uses the latest SIM900 GPRS modem with a build-in SIM card socket. This shield includes an on-board high-current power supply. All GPRS modems require a 2Amp power supply, but unlike our competitors, we add this required power supply on the shield.

In the DOCUMENTS section you can find a complete manual on the use of AT commands. These commands allow you to quickly init the modem, send SMS messages and make a TCP/IP connection because TCP/UDP functionality is build-in.

Remote control of your projects becomes suddenly easy.

  • Powerfull GPRS modem with build-in SIM card socket
  • 2Amp power supply with a 6V to 30V input range. Ideal for your 24V projects.
  • TCP/IP stack included
  • SMS message support
  • Full AT command control
  • Arduino Soft-Serial bus compatible
  • The hardware serial bus of the Uno is always available for debugging
  • Minimum I/O lines used
  • Optional magnetic antenna
  • Full auto configuration - no jumpers required
  • X-Graph Arduino stackable connectors. Stack as many X-Graph Arduino Shields as you need.

The XG8100 GPRS Shield does not require an Arduino library. The GPRS firmware includes support for sending and receiving SMS and also a complete TCP/IP stack.
With simple AT commands the modem can be controlled and a TCP or UDP channel can be opened.

The module connects to your Arduino module with a software serial bus. The hardware serial bus of the Arduino Uno is always available for debugging.

The Example code shows you how to power on/off the modem and start a AT command session. The manual of the GPRS modem (DOCUMENTS section) includes many AT sequences, for example one for sending and receiving SMS messages.

The modem has a build-in TCP/IP stack and allows you to make a TCP or UDP connection with your project remotely. All functions require a minimum of Arduino memory as the complex algorithms are processed by the modem itself.

 Send AT commands to the GPRS modem
 This example shows how to send AT commands to the 
 © Copyright DELCOMp XG8100 GPRS shield and receive the modem

 © Copyright DELCOMp 2011-2012, All Rights Reserved
 DELCOMp bvba, Technologielaan 3, B-3001 Leuven, Belgium ©

 Change History:
 Date: 1.0, 28 Sep 2011
       1.1, 10 Jan 2012
         - R2 support
       1.2, 17 Sep 2012
         - R3 support
 This example code is in the public domain.

 XG8100 GPRS Shield functions demonstrated:
 - power on GPRS modem
 - send AT commands
 - dump data received

 NewSoftSerial does not use handshaking which is not
 needed for the GPRS modem running at 9600 baud.

#include <SoftwareSerial.h>
//#include <NewSoftSerial.h>

#define pin_pon 3
#define rxPin 5
#define txPin 6

// set up a new serial port
//NewSoftSerial gprs =  NewSoftSerial(rxPin, txPin);
SoftwareSerial gprs = SoftwareSerial(rxPin, txPin);

void setup()  {
  Serial.begin(9600);                // Debug window
  gprs.begin(9600);                  // GPRS modem
  Serial.println("Modem init...");
  digitalWrite(pin_pon, LOW);       // Default level of power on pin is high
  pinMode(pin_pon, INPUT);          // This pin has an internal pullup in the modem
  while (digitalRead(rxPin)) {      // If modem is on
    Serial.println("... power off");
    pinMode(pin_pon, OUTPUT);       // Power it off = reset the modem
    pinMode(pin_pon, INPUT);
    delay(2200);                    // 1.7sec standard delay + 500msec before power on can be done
  Serial.println("... power on");
  pinMode(pin_pon, OUTPUT);
  pinMode(pin_pon, INPUT);
  delay(2200);                      // Wait min. 2.2 seconds
  // A check for rx_pin (power level) could be done here, not really needed
  Serial.println("... autobauding");
  gprs.print("A");                  // Send one character for autobauding
  delay(3000);                      // Wait min. 3 seconds for modem to init
  Serial.println("Modem ready for commands");

void loop() {
byte a;

  a = 0;
  // Copy data received from the serial monitor to the GPRS module
  while (Serial.available() > 0) {  // Wait for data from the serial monitor
      a =;            // Then send the complete string
  if (a) gprs.println("");          // A CRLF is needed to accept the command
  // and vice versa
  if (gprs.available() > 0) {       // All data received from the modem
    a =;                // is echoed to the serial monitor

Example 1: Get information
-> The AT command interpreter is actively responding to input.

SIM900 R11.0
-> The product name and product release information.

-> Product and manufacturer information.

-> The current network operator.

Example 3: SMS
-> Put the SMS system into text mode AT+CSCS="GSM"
>This is a test message
+CMGR:"REC UNREAD","+32475123456",,"02/01/30:40:31+00",This is a test message
-> Send SMS message to yourselves, then read it from the received queue

Example 4: Switch to GPRS mode
-> Switch to GPRS mode
-> now data can be transmitted/received
-> End GPRS mode

  • Model: XG8100
  • 59 Units in Stock
  • Manufactured by: DELCOMp

Copyright © 2018 CodeVisionAVR and X-Graph.