Skip to content


The GPRSbee is a GPRS/GSM expansion board. The GPRSbee uses SIM cards of the MicroSIM form factor.

The core of this board is the well known SIM900 module. This module, like most other GPRS/GSM modules, has an operating voltage of 3.5 โ€“ 4.5 volt and can draw up to 2A power during broadcasts bursts. This makes the 3.3V power that the bee socket can provide unsuitable. This has been solved by powering the GPRSbee directly from a 3.7 volt LiPo battery.

To supply a sufficient amount power supply to the GPRSbee , a LiPo 3.7 volt battery has to be connected to one of the two JST connectors. The other JST connector can be used to power the main board with the supplied jumper cable.

The GPRSbee uses DTR pin (pin 9) for software ON/OFF. Switching on is simply a matter of setting DTR pin to high.

The CTS pin (pin 12) is used for power status.. If the CTS pin is high the GPRSbee is on, if it is low itโ€™s off.


  • SIM 900 module
  • bee socket compatible
  • 3.7 volt LiPo battery connector and board connector
  • MicroSIM adapter
  • SMA antenna connector
  • Network Activity LED
  • Manual ON/OFF switch
  • Software ON/OFF through DTR pin
  • Power status though CTS pin
  • 3 V to 2.8V level converter


GPRSBee has 2 JST power connectors, connect one of them to a 3.7 LIPO battery and the other JST to the LIPO JST of the Autonomo.



 * GPRS_SMS.ino
 * Copyright (c) 2016 SODAQ.
 * Website    :
 * Author     : Omar Hussein
 * Create Time: FEB 3, 2016
//  Function:     Using GPRSBee with a Sim-Card , i will send a SMS Message
//                to a predefined Mobile number with a predefined message.
//  Hardware:     GPRSBee rev.4 SMA , Autonomo , Autonomo Grove Shield
//  Arduino IDE:  Arduino 1.6.6
#include <GPRSbee.h>

bool sent_sms = false; 

void setup()
    // The code will not start unless the serial monitor is opened or 10 sec is passed
    // in case you want to operate Autonomo with external power source
    while ((!SerialUSB) && (millis()<10000))
    SerialUSB.println("Here we start !! ");

    gprsbee.initAutonomoSIM800(Serial1, BEE_VCC, BEEDTR, BEECTS);

void loop()
    // Check if we already send a previous message or not, since
    // we don't want to send the same message several times
    if (sent_sms == false) {
        sent_sms = true;
        SerialUSB.println("Switching on..");
        bool retval = gprsbee.on();
        SerialUSB.println( "...done. Retval = " );
        SerialUSB.println( "Sending SMS" );
        // phone number including the country code
        bool  smsSent = gprsbee.sendSMS( "+430000000000", "I <3 GPRSBee. " );
        if (smsSent) {
            SerialUSB.println( "SMS sent!" );
            // Set it True so we stop fullfilling the starting condition of the loop
            sent_sms = true;
        } else {
            SerialUSB.println( "SMS NOT SENT!" );