Stufin
Home Quick Cart Profile

NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi

Buy Now on Stufin

Component Name

NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi

Overview

The NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi is a versatile IoT communication module designed to provide low-power, low-bandwidth connectivity for a wide range of IoT applications. This HAT (Hardware Attached on Top) is specifically designed for the Raspberry Pi single-board computer, enabling users to develop and deploy IoT projects with ease.

Functionality

  • NB-IoT (Narrowband Internet of Things): A low-power, low-bandwidth cellular technology ideal for IoT applications requiring small data transmission, such as sensor monitoring, smart meters, and industrial automation.
  • Cat-M(eMTC) (Category M Enhanced Machine-Type Communication): A low-power, low-bandwidth cellular technology designed for IoT applications requiring moderate data transmission, such as asset tracking, industrial IoT, and smart cities.
  • GNSS (Global Navigation Satellite System): A satellite-based navigation technology providing location information and timing signals, suitable for applications requiring precise location tracking, such as tracking devices, fleet management, and precision agriculture.
The NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi offers a triple-mode functionality, supporting three different wireless communication technologies

Wireless Communication

Supports NB-IoT ( bands 3, 5, 8, 20), Cat-M(eMTC) (bands 2, 3, 4, 5, 8, 12, 13, 20), and GNSS (GPS, GLONASS, Galileo, BeiDou) frequencies

Low power consumption, making it suitable for battery-powered devices

Supports SMS, USSD, and TCP/IP protocol stacks

GNSS Module

Integrated GNSS module with a built-in antenna

Supports concurrent reception of multiple satellite systems (GPS, GLONASS, Galileo, BeiDou)

High-sensitivity receiver for improved performance in urban canyons and indoors

Host Interface

Compatible with Raspberry Pi single-board computers (Raspberry Pi 2, 3, 4, and later models)

Uses the Raspberry Pi's GPIO header for connection

Supports Raspbian OS and other Linux distributions

Operating voltage

3.3V - 5.5V

Power consumption

< 100mA (average), < 500mA (peak)

Operating temperature

-40C to +85C

Dimensions

65mm x 30mm x 10mm (2.56" x 1.18" x 0.39")

Weight

< 20g

Compliance with Raspberry Pi HAT (Hardware Attached on Top) specifications

Certifications and Compliance

CE, FCC, and TELEC certified

Compliance with 3GPP Release 13 and 14 specifications

RoHS and REACH compliant

Applications

The NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi is suitable for a wide range of IoT applications, including

Industrial automation and monitoring

Smart energy management and metering

Fleet management and tracking

Smart cities and infrastructure

Agriculture and environmental monitoring

Asset tracking and logistics

Additional Resources

For more information, please refer to the datasheet, user manual, and additional resources provided with the product.

Pin Configuration

  • NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi Pinout Documentation
  • The NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi is a versatile expansion board that enables IoT connectivity and GNSS (Global Navigation Satellite System) capabilities for Raspberry Pi single-board computers. This document provides a detailed explanation of the HAT's pins and their connections.
  • Pinout Structure:
  • The NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi has a standard 40-pin GPIO (General Purpose Input/Output) header, compatible with Raspberry Pi boards. The pinout is divided into several sections, each with specific functions:
  • 1. Power and RESET
  • 2. GNSS
  • 3. NB-IoT / Cat-M(eMTC)
  • 4. UART and GPIO
  • 5. Debug
  • Pin Connection Details:
  • 1. Power and RESET
  • Vin (1): Input voltage for the HAT (3.3V to 5V)
  • 3V3 (2): 3.3V power output for Raspberry Pi
  • GND (3, 4, 5, 6, 39, 40): Ground pins for power and signal connections
  • RESET (7): Reset pin for Raspberry Pi, active low
  • 2. GNSS
  • GNSS_VDD (8): Power supply for GNSS module (3.3V)
  • GNSS_GND (9, 10): Ground pins for GNSS module
  • GNSS_TX (11): GNSS module transmit pin
  • GNSS_RX (12): GNSS module receive pin
  • GNSS_EN (13): GNSS module enable pin, active high
  • GNSS_RST (14): GNSS module reset pin, active low
  • 3. NB-IoT / Cat-M(eMTC)
  • NB_VDD (15): Power supply for NB-IoT / Cat-M(eMTC) module (3.3V)
  • NB_GND (16, 17): Ground pins for NB-IoT / Cat-M(eMTC) module
  • NB_TX (18): NB-IoT / Cat-M(eMTC) module transmit pin
  • NB_RX (19): NB-IoT / Cat-M(eMTC) module receive pin
  • NB_EN (20): NB-IoT / Cat-M(eMTC) module enable pin, active high
  • NB_RST (21): NB-IoT / Cat-M(eMTC) module reset pin, active low
  • NB_ANT (22): Antenna connection for NB-IoT / Cat-M(eMTC) module
  • 4. UART and GPIO
  • UART_TX (23): UART transmit pin for Raspberry Pi
  • UART_RX (24): UART receive pin for Raspberry Pi
  • GPIO_15 (25): GPIO pin 15, can be used as an interrupt pin for GNSS or NB-IoT / Cat-M(eMTC) modules
  • GPIO_16 (26): GPIO pin 16, can be used as a status pin for GNSS or NB-IoT / Cat-M(eMTC) modules
  • GPIO_17 (27): GPIO pin 17, can be used for custom applications
  • GPIO_18 (28): GPIO pin 18, can be used for custom applications
  • 5. Debug
  • DBG_TX (29): Debug UART transmit pin for debugging purposes
  • DBG_RX (30): Debug UART receive pin for debugging purposes
  • DBG_GND (31): Ground pin for debug UART
  • DBG_VDD (32): Power supply for debug UART (3.3V)
  • Note: The remaining pins (33 to 38) are not connected and should not be used.
  • Connection Guidelines:
  • Ensure proper power supply connections to the HAT and Raspberry Pi.
  • Connect the GNSS and NB-IoT / Cat-M(eMTC) modules to their respective antennas.
  • Use the UART pins for communication between the Raspberry Pi and the HAT's modules.
  • GPIO pins can be used for custom applications or as interrupts/status pins for the GNSS or NB-IoT / Cat-M(eMTC) modules.
  • Debug pins are for debugging purposes only and should not be connected to external circuits.
  • wichtigen Hinweis: Please refer to the Raspberry Pi documentation and the datasheets of the GNSS and NB-IoT / Cat-M(eMTC) modules for specific connection requirements and configuration guidelines.

Code Examples

NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi Documentation
Overview
The NB-IoT / Cat-M(eMTC) / GNSS HAT is a communication module designed for the Raspberry Pi, providing low-power wide-area network (LPWAN) connectivity and satellite navigation capabilities. This HAT (Hardware Attached on Top) combines the benefits of Narrowband Internet of Things (NB-IoT), Category M (Cat-M), and Global Navigation Satellite System (GNSS) technologies, making it an ideal solution for IoT applications requiring low-power, low-bandwidth communication and location tracking.
Hardware Features
Supports NB-IoT, Cat-M(eMTC), and GNSS (GPS, GLONASS, Galileo, and BeiDou)
 Compatible with Raspberry Pi 3, 3+, and 4
 Micro-SIM card slot
 SMA antenna connector for cellular and GNSS
 UART interface for communication
 Power consumption: 20mA (idle), 50mA (active)
Software Requirements
Raspberry Pi OS (RPi OS) or other compatible Linux distributions
 Python 3.x or C/C++ programming languages
Code Examples
### Example 1: Sending Data over NB-IoT using Python
In this example, we will send a simple message over the NB-IoT network using the `pyserial` library.
Hardware Connections
Connect the NB-IoT / Cat-M(eMTC) / GNSS HAT to the Raspberry Pi
 Insert a micro-SIM card with NB-IoT subscription
 Connect an antenna to the SMA connector
Code
```python
import serial
# Open the serial connection to the HAT
ser = serial.Serial('/dev/ttyS0', 115200)
# Set the module to NB-IoT mode
ser.write(b'AT+CFUN=1
')
ser.write(b'AT+CEREG=2
')
# Set the APN (Access Point Name) for the NB-IoT network
ser.write(b'AT+CSTT="iot.apn.com","",""
')
# Connect to the NB-IoT network
ser.write(b'AT+CIICR
')
# Send a message over NB-IoT
ser.write(b'AT+CMGS="1234567890"
')
ser.write(b'Hello from Raspberry Pi!')
ser.write(b'x1A')
# Close the serial connection
ser.close()
```
### Example 2: Getting GNSS Location Data using C++
In this example, we will read the GNSS location data using the `gps` library.
Hardware Connections
Connect the NB-IoT / Cat-M(eMTC) / GNSS HAT to the Raspberry Pi
 Connect an antenna to the SMA connector
Code
```c
#include <gps.h>
int main() {
    // Initialize the GPS module
    struct gps_data_t gps_data;
    gps_init(&gps_data);
// Set the GPS module to output RMC (Recommended Minimum) sentences
    gps_send_command(&gps_data, "PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0");
// Read the GNSS location data
    while (1) {
        gps_poll(&gps_data);
        if (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) {
            printf("Latitude: %f, Longitude: %f, Altitude: %f
",
                   gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.altitude);
        }
    }
return 0;
}
```
### Example 3: Combining NB-IoT and GNSS for Asset Tracking (Python)
In this example, we will create a basic asset tracking system that sends location data over NB-IoT using the `pyserial` and `gps` libraries.
Hardware Connections
Connect the NB-IoT / Cat-M(eMTC) / GNSS HAT to the Raspberry Pi
 Insert a micro-SIM card with NB-IoT subscription
 Connect an antenna to the SMA connector
Code
```python
import serial
import gps
# Initialize the GPS module
gps_device = gps.GPSDevice()
# Open the serial connection to the HAT
ser = serial.Serial('/dev/ttyS0', 115200)
# Set the module to NB-IoT mode
ser.write(b'AT+CFUN=1
')
ser.write(b'AT+CEREG=2
')
# Set the APN (Access Point Name) for the NB-IoT network
ser.write(b'AT+CSTT="iot.apn.com","",""
')
# Connect to the NB-IoT network
ser.write(b'AT+CIICR
')
while True:
    # Read the GNSS location data
    report = gps_device.get_current()
    if report.mode == gps.MODE_2D or report.mode == gps.MODE_3D:
        latitude = report.latitude
        longitude = report.longitude
        altitude = report.altitude
# Send the location data over NB-IoT
        message = f'Latitude: {latitude}, Longitude: {longitude}, Altitude: {altitude}'
        ser.write(b'AT+CMGS="1234567890"
')
        ser.write(message.encode())
        ser.write(b'x1A')
# Wait for 1 minute before sending the next update
        time.sleep(60)
```
These examples demonstrate the basic usage of the NB-IoT / Cat-M(eMTC) / GNSS HAT for Raspberry Pi. You can modify and extend these examples to suit your specific IoT application requirements.