Raspberry Pi Cellular IoT Application Shield – LTE-M & NB-IoT & eGPRS
This is a add-on for Raspberry Pi that has combined LTE technologies Cat.M1, Cat.NB1 (NB-IoT) and eGPRS for Raspberry Pi, based on Quectel’s BG96 module. The shield has the power of new IoT phenomenon LPWA (Low Power Wide Area) with Cat.M1 and NB-IoT connection functionalities. Besides, it also provides the function of eGPRS that be enhanced version of classical GPRS.
The module on shield has GNSS (GPS, GLONASS etc.) functionality for the need of location, navigation, tracking, mapping and timing applications.
The design has a built-in temperature, humidity, light sensors, 3-axis accelerometer, and relay. If you do not need these built-in features, you should take a look at Raspberry Pi Cellular IoT HAT.
The ancient 2G cellular network is now dying. New and better LTE technologies are being used instead. LTE Cat M1/Cat NB1(NB-IoT) is the latest way of the machine to machine communication. This LTE shield for your Raspberry Pi lets you connect the Raspberry to this new cellular networks thanks to Quectel BG96 LTE module on it. It also provides the connection to eGPRS that is the enhanced version of classical GPRS.
Quectel BG96 is a series of LTE Cat M1/Cat NB1/EGPRS module offering a maximum data rate of 375Kbps downlink and 375Kbps uplink with worldwide coverage. The shield has built-in temperature, humidity, light sensors, 3-axis accelerometer, a relay and more. This LTE add-on for Raspberry Pi also supports GNSS(GPS, GLONASS etc) for the need of getting location, navigation, tracking, mapping and timing applications.
- Fully compatible with Raspberry Pi models that have the 40-pin GPIO header (4, 3, 2, B+, A+, Zero)
- Supported Protocols: PPP/TCP/UDP/SSL/TLS/FTP(S)/HTTP(S)/NITZ/PING/MQTT
- Worldwide coverage with supported bands:
- Cat M1/Cat NB1:
- LTE FDD: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B26/B28
- LTE TDD: B39 (For Cat M1 Only)
- EGPRS: 850/900/1800/1900MHz
- Cat M1/Cat NB1:
- Embedded GNSS Functionality (GPS, GLONASS, BeiDou/Compass, Galileo, QZSS)
- 12-Bit 4 Channel ADC
- 3-axis Accelerometer
- Humidity and Temperature Sensors
- Ambient Light Sensor
- Isolated Optocoupler Inputs
- 1-Wire Sensors Interface
- 3GPP E-UTRA Release 13, 3GPP TS27.007, 3GPP TS 27.005 and Quectel Enhanced AT Commands over UART port to Raspberry Pi is available
- Efficient and low quiescent current regulator circuit can hold up to 3.6A
- Can be used standalone with PC/Laptop over micro USB, without stacking with Raspberry Pi
- Micro SIM Card socket can easily reachable on the upside of the shield.
- Working temperature range: -30°C to +80°C
- Smart farming sensor
- Smart cities sensor
- Smart home sensor
- Internet of Things (IoT) sensor
- Smart door lock
- Smart lightning
- Smart metering
- Bike sharing
- Smart parking
- Smart city
- Security and asset tracking
- Home appliances
- Agricultural and environmental monitoring
USB: If you don’t want to occupy UART port on the Raspberry Pi, just plug the shield via micro USB to Raspberry Pi. You can start to send and receive AT commands, transmit data, output GNSS NEMA, debug and upgrade firmware over the USB connection. It supports USB drivers for Windows, Linux, and Android. Details can be found at drivers section.
UART: The UART pins will be available to use, with 3.3V power domain, directly connected the UART port of Raspberry Pi. Can be used for data transmission and AT command communication with 115200bps baud rate. The default data frame format is 8N1 (8 data bits, no parity, 1 stop bit). This port does not provide GNSS data. The GNSS data can be gathered only over the USB.
Max. 375Kbps (Downlink), Max 375Kbps (Uplink)
Max. 32Kbps (DL), Max. 70Kbps (UL)
Max. 296Kbps (DL), Max. 236.8Kbps (UL)
Max. 107Kbps (DL), Max. 85.6Kbps (UL)
Point-to-point MO and MT
SMS Cell Broadcast
Text and PDU Mode
- GNSS: GPS, GLONASS, BeiDou/Compass, Galileo, QZSS
- Firmware Upgrade: via USB interface
- DFOTA: Delta Firmware Upgrade Over the Air
- Audio Record/Play
- Processor: ARM A7 Processor, with 3MB Flash and 3MB RAM Available for Users
- For the best working condition, use at least a 2A adapter or power source.
- We don’t recommend usage of long and low-quality micro USB cables between Cellular IoT Application Shield and Raspberry Pi. It causes data and power loss.
- Do not apply higher voltages and currents than those specified absolute electrical value for sensor inputs and relay connections.
|Pin Number||BCM Pin||Pin Name||Description|
|2||5V||5V PWR||This pin is connected to the 5V power net.|
|3||GPIO 2||SDA||I2C Serial Data|
|4||5V||5V PWR||This pin is connected to the 5V power net.|
|5||GPIO 3||SCL||I2C Serial Data|
|7||GPIO 4||1-WIRE||Data line for communicate with 1-Wire sensors.|
|8||UART RX||BG96 TX||This pin functions as the serial data input to the module for UART communication.|
|10||UART TX||BG96 RX||This pin functions as the serial data output from the module for UART communication|
|11||GPIO 17||RELAY||Relay control pin. When this pin is HIGH state, relay is operated.(Common and NO are connected.)|
|12||GPIO 18||IN-2||When the voltage in the range 3.3-12V(max 15V!) is applied from the IN-2 input, this pin goes to LOW state. Default state is HIGH(pulled-up).|
|13||GPIO 27||USER LED||Active HIGH, to switch on the USER LED, the pin’s state should be HIGH.|
|18||GPIO 24||USER BUTTON||This pin is pulled-up by default. When button is pressed, pin switches to LOW.|
|19||GPIO 10||IN-1||When the voltage in the range 3.3-12V(max 15V!) is applied from the IN-1 input, this pin goes to LOW state. Default state is HIGH(pulled-up).|
|23||GPIO 11||BG96 PWRKEY||The module can be turned on by driving the pin BG96 PWRKEY to a HIGH-level voltage more than 500ms then pulling it down. You can apply the same process to power down to the module if it already powered up.|
|31||GPIO 6||BG96 APREADY||AP_READY will detect the sleep state of the host (can be configured to HIGH level or LOW level detection). Please refer to AT+QCFG=“apready” command for details.|
|33||GPIO 13||BG96 RI||When BG96 has URC to report, RI signal will wake up the host. Please refer to Chapter 3.14 for details about RI behavior from BG96 Datasheet.|
|37||GPIO 26||BG96 POWER ENABLE||BG96 3.8V Power regulator control. Normally pulled-up, when this pin drove to LOW, BG96’s power will cut off.|
|38||GPIO 20||BG96 STATUS||The STATUS pin is used to indicate the operation status of BG96 module. It will output HIGH level when the module is powered on.|
|6,9,14,25,30,34,39||GND||GND||This pins are connected to ground.|
|Pin Number||BCM Pin||Pin Name||Description||Min||Typ.||Max.||Unit|
|2||5V||5V PWR||Power Supply||4.8||5||5.25||V|
|3||GPIO 2||SDA||I2C Data||3||3.3||3.6||V|
|4||5V||5V PWR||Power Supply||4.8||5||5.25||V|
|5||GPIO 3||SCL||I2C Clock||3||3.3||3.6||V|
|7||GPIO 4||1-WIRE||1-Wire data||3||3.3||3.6||V|
|8||UART RX||BG96 TX||UART||3||3.3||3.6||V|
|10||UART TX||BG96 RX||UART||3||3.3||3.6||V|
|13||GPIO 27||USER LED||Output||3||3.3||3.6||V|
|18||GPIO 24||USER BUTTON||Input||3||3.3||3.6||V|
|23||GPIO 11||BG96 PWRKEY||Output||3||3.3||3.6||V|
|31||GPIO 6||BG96 APREADY||Input||3||3.3||3.6||V|
|33||GPIO 13||BG96 RI||Input||3||3.3||3.6||V|
|37||GPIO 26||BG96 POWER ENABLE||Output||3||3.3||3.6||V|
|38||GPIO 20||BG96 STATUS||Input||3||3.3||3.6||V|
You can download the schematic of Raspberry Pi Cellular IoT Application Shield from this Github repository.
- POWER (PWR): When the shield is powered up, this RED led turns on.
- STATUS (STAT): While the module is powered up by driving PWRKEY(GPIO 11) to HIGH state or pushing the PWRKEY button, this RED led turns on.
- USER (USER): The GREEN user led can be controlled by driving the GPIO 27 pin.
- ENABLE(EN): This GREEN led shows the status of the power regulator of module is switched on or off. By default, the GPIO 26(ENABLE) pin is pulled up by hardware and the regulator juices the module. To shut down the regulator, this pin needs to be driven to LOW state.
- NETLIGHT (NETL) : This BLUE led indicates the status of the module. When the connection is established and data is being transmitted/received, this led will blink at special intervals. Please find the following chart for details:
|Flicker slowly (200ms ON/1800ms OFF)||Network searching|
|Flicker slowly (1800ms ON/200ms OFF)||Idle|
|Flicker quickly (125ms ON/125ms OFF)||Data transfer is ongoing|
|Always high||Voice calling|
- USER: This push button connected to GPIO24 and pulled up HIGH state by default. When you push the button, you will read LOW state from GPIO24.
- PWRKEY: When BG96 is in power off mode, it can be turned on to normal mode by pushing the PWRKEY button for at least 500ms.
- BOOT: Pushing this button can force the module to boot from USB port for firmware upgrade.
- The MMA8452Q is a smart, low-power, three-axis, capacitive, micromachine accelerometer with 12 bits of resolution. It has user selectable full scales of ±2 g/±4 g/±8 g with high-pass filtered data as well as non-filtered data available real-time.
- The accelerometer connected to Raspberry Pi via I2C. The I2C address is 0x1C.
- MMA8452Q’s interrupt pins are not connected.
12-Bit 4-Channel Analog-to-digital Converter | ADS1015
- The ADS1015 is precision, low-power, 12-bit, analog-to-digital converter.
- Raspberry Pi can not measure analog inputs because it does not have internal ADC. However, with this external ADC, the ADS1015, you can read analog values with your Raspberry Pi.
- The ADC connected to Raspberry Pi via I2C. The I2C address is 0x49.
- It’s a phototransistor close responsively to the human eye spectrum, light to current.
- It’s connected to ADC (ADS1015), because of it has analog output and Raspberry Pi can not read it directly.
- The sensor connected to AIN3 pin of ADS1015.
- The HDC1080 is a digital humidity sensor with integrated temperature sensor that provides excellent measurement accuracy at very low power.
- Relative Humidity Accuracy ±2% (typical)
- Temperature Accuracy ±0.2°C (typical)
- The HDC1080 connected to Raspberry Pi via I2C. The I2C address is 0x40.
- The heat that produced by when R.Pi heats up may cause the sensor to display a few higher degrees than the ambient temperature.
- The relay for controlling high voltage and current.
- Relay control pin is GPIO17. When this pin is HIGH, relay is switched and connected C and NO pins. When GPIO17 is LOW state or unused, it connects C and NC pins.
WARNING! : This small form factor relay and traces can handle up to 60W or 3.5 Amps. Pushing the limits will produce heat and definately harm the circuits and shield. Recommended maximum contact ratings:
- 12V DC – 3.5A
- 24V DC – 2.5A
- 120V AC – 0.5A
- 220V AC – 0.25A
- Two isolated by optocouplers inputs available on the shield. Recommended max. GPIO voltage level of Raspberry Pi is 3.3V. Reading higher than 3.3V voltage inputs are harmful for your Pi and will definitely destroy the circuits.
- Upper limit of this inputs is 15V, between 3.3V and 15V is readable. GPIO pins are normally pulled up, when a voltage applied to isolated inputs, GPIO pins goes LOW state.
- The input’s (sensor, switch etc) ground must be connected to optocoupler’s G input to complete isolated circuit.
GNSS: This header pins directly connected to BG96 GNSS output. They are not connected to UART port of Raspberry Pi. You should connect to BG96 via USB to receive GNSS data. Thinking that these pins might be needed somehow, so we’ve taken them out as headers.
Debug (DBG): This DEBUG UART port belongs BG96 and used for embedded firmware debugging of module and log output.
When you need to add an external I2C thing, you can use these I2C connectors. 3.3V VCC and GND pins provided too. It has pull-up resistors.
There are lots of sensors which have 1-Wire connection standard (DS18B20 etc.) in the market. 1-Wire connector has VCC, DATA and GND pins. With this pins you can connect easily a 1-wire sensor. Data pin directly connected to GPIO4 and has a 4.7K pull-up resistor.
You can download the 3D design files(STEP, IGES) of the Sixfab Cellular IoT Application Shield for Raspberry Pi from this Github repository.
- 1x Sixfab Cellular IoT Application Shield for Raspberry Pi
- 1x LTE – GNSS Dual u.FL Antenna – 100mm
- 1x 90-degree Right Angle Micro USB Cable
- 1x Mini Flat Head Screwdriver for Connection Terminals
- Download Quectel LTE Windows USB Driver v2.1
- Download Quectel WCDMA<E Linux USB R01A01
- Download Quectel Android RIL Driver v1.41.36
- Download Quectel BG96 AT Commands Manual v2.2
- Download Quectel BG96 GNSS AT Commands Manual v1.1
- Download Quectel BG96 TCP(IP) AT Commands Manual v1.0
- Download Quectel BG96 HTTP(s)AT Commands Manual v1.0
- Download Quectel BG96 MQTT Application Note v1.0
- Download Quectel BG96 PPP Application Note v1.0
- Download HDC1080 Temperature&Humidity Sensor Datasheet
- Download MMA8452Q 3-Axis Accelerometer Datasheet
- Download ADS1015 12-Bit 4-Ch ADC Datasheet
- Download ALS-PT19 Light Sensor Datasheet
The Raspberry Pi Cellular IoT Application Shield Github Repository contains the libraries and codes are used in tutorials, hardware files and more.
with short header, with long header
Questions and answers of the customers
Q Hi, I'm currently using the Iot App Shield with Raspberry Pi 3 B+. I'm trying to get GNSS info b... answer nowAsked by 20 March 2020 4:57 PMonAnswered by the admin
This situation varies depending on your region, signal strength and many reasons.
If you encounter any issues, please share them in detail in the "Community".
Q Hi, I currently have Raspberry Pi Cellular IoT Application Shield and I would like to send values... answer nowAsked by 19 March 2020 7:34 PMonAnswered by the admin
You can find all the information here: https://docs.sixfab.com/docs/raspberry-pi-cellular-iot-application-shield-introduction
To better assist you, please share your issue here(https://community.sixfab.com/) in detail.
Q We're using this device with a Raspberry Pi 3+, and the two are communicating over a connected US... answer nowAsked by 20 February 2020 7:43 AMonAnswered by the admin
To use UART, you must solder SJ1 and SJ2 separately. After doing this, try again.
Q Hello, I have the Raspberry Pi Cellular IoT Application Shield – LTE-M & NB-IoT & eGPRS. ... answer nowAsked by 13 February 2020 9:31 PMonAnswered by the admin
Can you share your problem with the Sixfab community in more detail to help you better?
Q Is the hat compatible with the Nvidia Jetson nano? answer nowAsked by 1 February 2020 6:20 PMonAnswered by the admin
Yes, it's compatible.
Q Hi, I am not getting any response from the module. I connect via USB to my PC. Then I press the ... answer nowAsked by 29 January 2020 1:45 AMonAnswered by the admin
If you share your problem with the more specific output from the forum section, I can help you better.
Q Dose anyone know what the jumpers SJ1 and SJ2 are for? Thanks. answer nowAsked by 16 January 2020 2:54 AMonAnswered by the admin
For UART communication.
Q Does this have the option to solder on an esim or do you provide another HAT with similar specs a... answer nowAsked by 14 November 2019 4:57 PMonAnswered by the admin
We do not have eSIM supported HAT. How many pieces do you need?
Q Is this compatible with the AT&T IoT One Rate data plan? answer nowAsked by 30 October 2019 4:53 AMonAnswered by the admin Hello. You need to use Cellular IoT HAT – LTE-M & NB-IoT & eGPRS. The certification is under progress now.
Q Hi, I am from Oman, I am using SixFab Cellular IoT App Sheild with Raspberry Pi3 model. After con... answer nowAsked by 12 October 2019 9:02 PMonAnswered by the admin Hi. Please share the whole error log. Also See also comments at https://sixfab.com/ppp-installer-for-sixfab-shield/
Q I tried to activate this device on Verizon but the IMEI is not registered in their DMD. Can SixFa... answer nowAsked by 4 October 2019 10:14 PMonAnswered by the admin Hi. We are working on the registration issue. It will be resolved soon. Thank you
Q Hi, I am having trouble to read GPS data from the chip. I made sure the enable serial communicat... answer nowAsked by 17 September 2019 5:34 AMonAnswered by the admin Where and which antenna do you use?A Hi ensar, I am using LTE – GNSS Dual u.FL Antenna – 100mm I connected to the shield directly.Answered by the admin
Location of use?
Indoor or under open sky?A I am using on my desk where is next to a windowsAnswered by the admin Attach a USB and observe the receiving GNSS data from ttyUSB1A Is there a tutorial to get a GNSS data form ttyUSB1 ?Answered by the admin https://sixfab.com/gps-tracker-with-3g-4glte-shield/
A Should I use sudo pon before I try to connect the GPS through Python code or minicom?A Hi with ttyUSB1 I am getting $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGGA,,,,,,0,,,,,,,,*66 $GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,T,,M,,N,,K,N*2C $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGGA,,,,,,0,,,,,,,,*66 $GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,T,,M,,N,,K,N*2C $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGGA,,,,,,0,,,,,,,,*66Answered by the admin No, GPS and PPP are independent of each other. Are you trying indoor? Please check under open sky. Which antenna are you using ?A Hi I tired open sky and get the signal. But another problem When I try to get a Longitude with getLongitude after I have got fixed location with getFixedLocation() function. I've got this error NameError: name 'Decimal' is not defined. I tried to import Decimal with from decimal import * but it could not solve the problem.Answered by the admin You named your script decimal.py, as the directory the script is in is the first in the path the modules are looked up your script is found and imported. You don't have anything named Decimal in your module which causes this exception to be raised.
Q Hi, I've got some questions. 1. is there a sample code to read GPS only from this Shield? ... answer nowAsked by 16 September 2019 7:33 AMonAnswered by the admin
from cellulariot import cellulariot
from termcolor import colored
node = cellulariot.CellularIoTApp()
Could you give me some more details? What code did you try? Which part? etc.
Q Hi, Is it possible to use GNSS functionality and LTE/GPRS connection simultaneously? One connecti... answer nowAsked by 12 September 2019 1:41 PMonAnswered by the admin
Yes. You can do it the way you say.
Q In the cost of the product is the shipment already included or what is the extra charge if they s... answer nowAsked by 10 September 2019 4:20 AMonAnswered by the admin Flat rate everywhere. 15$
Q What is the cost of the data rates? I'm assuming you have to sign up for a data plan in order to ... answer nowAsked by 21 August 2019 11:25 AMonAnswered by the admin This is related to the SIM card you are using.
Q I am connecting my Raspberry PI 3 with BG96 through USB.Do i have to install any driver or how to... answer nowAsked by 20 August 2019 2:12 PMonAnswered by the admin
Try again after activating the Serial Port.
Select option 5, Interfacing options,
then option P6, Serial,
Select No to Serial Console
Select Yes to Serial Port.
Q Can i buy it in mexico? Is there any customs cost? The price includes raspberry card? answer nowAsked by 15 July 2019 8:19 PMonAnswered by the admin
Yes, We can ship it to Mexico.
Regarding Custom, customers are responsible for that.
No, it doesn't. Check Package Includes section for details.
Q Can we use this shield to control one relay and 4 DC voltage devices (ex; air pump, water pump)? answer nowAsked by 18 June 2019 11:49 AMonAnswered by the admin Could you please mention exactly which devices are you going to connect and how?
Q How to send an SMS and make a voice call using this Sixfab RPi Cellular IoT Application Shield? answer nowAsked by 11 June 2019 9:43 AMonAnswered by the admin
Please check the code available at github repo.
Q I would like to be able to use the unused raspberry pi GPIO pins, is there any option to get a st... answer nowAsked by 7 June 2019 11:09 AMonAnswered by the admin
Yes, Please mention in the order. You will get it.
Q Hi, I cannot manage to get GNSS infos, I can enable GNSS with the turnOnGNSS() function, but all ... answer nowAsked by 13 May 2019 1:16 PMonAnswered by the admin
Could you please check if the serial port is enabled?
Is your shield connected to PPP?
What are the status of the LEDs?A Thanks for the answer, yes serial is enables as well as BG96 module (STAT led on and NETL blink) but no i don't have a sim card so the ppp is not connectedAnswered by the admin Could you please share the code?A from cellulariot import cellulariot import time #node = cellulariot.CellularIoT() # for Sixfab CellularIoT HAT node = cellulariot.CellularIoTApp() # for Sixfab CellularIoT App. Shield node.setupGPIO() node.resetModule() print(node.getHardwareInfo()) node.disable() time.sleep(1) node.enable() time.sleep(1) node.powerUp() time.sleep(1) time.sleep(1) node.turnOnGNSS() time.sleep(1) print(node.getFixedLocation()) print(node.getSpeedKph()) for i in range(10): lat = node.getLatitude() #latitude lon = node.getLongitude() #longitute speed = node.getSpeedKph #Speed in knots print ('latitude : ',lat) #,' , longitude : ',lon)# ,', speed : ', speed) time.sleep(1) time.sleep(1) node.turnOffGNSS() There wasn't any exemple code from cellulariot so i had to try using datasheet. Thanks for the help.
Q How to receive data from network, for example if the module works as UDP/TCP server MQTT subscrib... answer nowAsked by 9 May 2019 8:31 AMonAnswered by the admin
In order to receive MQTT you will need sim with static IP.
You can use MQTT guide. (LINK)
Q Do you have the coding tutorials to get the implementation of sending SMS alert? If so, please do... answer nowAsked by 30 April 2019 12:40 PMonAnswered by the admin
The script is available in the GitHub repository.
Q Hi, I am trying to connect "Raspberry Pi Cellular IoT Application Shield" as CAT-M1. I am foll... answer nowAsked by 26 April 2019 7:55 PMonAnswered by the admin
Which network provider are you using to connect to Cat M1?
Make sure your network provider supports Cat M1 in your location.
Q Can this be stacked with the dAISy hat AIS receiver? answer nowAsked by 19 April 2019 1:37 PMonAnswered by the admin
Since both devices uses a UART interface for communication, you cannot stack them.
Q Over the USB connection to the board can i execute directly the AT commands? Also how i will get ... answer nowAsked by 18 April 2019 3:37 PMonAnswered by the admin Yes, you can use directly USB for AT commands. Drivers are available in the product description. For Ubuntu you won't need to install, it recognizes the device. (/dev/ttyUSB3 115200 can be used)
Q Is there a way to get the connection through USB instead only instead of the pins? answer nowAsked by 19 March 2019 5:27 PMonAnswered by the admin
It is possible to make a connection over USB, but you will still need to attach the Shield on the RPi using the 40-pins. This is because Power up and observing sensor data is not possible via USB.
Q Does this not require additional antennas to be connected for a) Cellular internet and b) GNSS? answer nowAsked by 15 March 2019 8:20 PMonAnswered by the admin
Yes, you will need antennas,
For cellular, you can use any LTE antenna.
For GNSS, you can use an active or passive antenna according to your requirement.