

The ZG2100M is a low-power, high-performance Zigbee module designed for wireless communication in Internet of Things (IoT) applications. This module features a compact design, an integrated antenna, and supports various protocols for seamless connectivity. Its robust performance and low power consumption make it ideal for applications such as smart home devices, industrial automation, and wireless sensor networks.








The ZG2100M module is designed to meet the needs of modern IoT applications with the following specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 2.7V to 3.6V |
| Operating Current | 40 mA (transmit), 15 mA (receive) |
| Sleep Current | < 1 µA |
| Frequency Band | 2.4 GHz ISM band |
| Data Rate | Up to 250 kbps |
| Communication Protocols | Zigbee, IEEE 802.15.4 |
| Antenna | Integrated |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 25 mm x 18 mm x 3 mm |
The ZG2100M module has a total of 12 pins. The pin configuration and their descriptions are as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Power supply (2.7V to 3.6V) |
| 2 | GND | Ground |
| 3 | TXD | UART Transmit Data |
| 4 | RXD | UART Receive Data |
| 5 | RESET | Active-low reset input |
| 6 | GPIO1 | General-purpose I/O pin |
| 7 | GPIO2 | General-purpose I/O pin |
| 8 | GPIO3 | General-purpose I/O pin |
| 9 | GPIO4 | General-purpose I/O pin |
| 10 | ADC | Analog-to-digital converter input |
| 11 | SCL | I2C Clock Line |
| 12 | SDA | I2C Data Line |
Below is an example of how to connect the ZG2100M module to an Arduino UNO and send data via UART.
| ZG2100M Pin | Arduino UNO Pin |
|---|---|
| VCC | 3.3V |
| GND | GND |
| TXD | Pin 10 (RX) |
| RXD | Pin 11 (TX) |
| RESET | Pin 12 |
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial zigbee(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication with the Zigbee module
zigbee.begin(9600); // Set baud rate to 9600
Serial.begin(9600); // For debugging via Serial Monitor
// Reset the Zigbee module
pinMode(12, OUTPUT); // Set RESET pin as output
digitalWrite(12, LOW); // Pull RESET pin low
delay(100); // Wait for 100ms
digitalWrite(12, HIGH); // Release RESET pin
delay(1000); // Wait for the module to initialize
Serial.println("ZG2100M Initialized");
}
void loop() {
// Send data to the Zigbee module
zigbee.println("Hello, Zigbee!");
// Check for incoming data from the Zigbee module
if (zigbee.available()) {
String data = zigbee.readString();
Serial.println("Received: " + data);
}
delay(1000); // Wait for 1 second before sending the next message
}
No Communication with the Module
Module Not Responding
Poor Wireless Range
Data Corruption
Q: Can the ZG2100M module be used with a 5V microcontroller?
A: Yes, but you must use a level shifter or voltage divider for the TXD and RXD pins to avoid damaging the module.
Q: What is the maximum range of the ZG2100M module?
A: The module has a typical range of up to 100 meters in open space, but this may vary depending on environmental factors.
Q: Does the module support over-the-air (OTA) updates?
A: No, the ZG2100M does not support OTA updates. Firmware updates must be performed via a wired connection.
Q: Can I use an external antenna with the ZG2100M?
A: No, the module includes an integrated antenna and does not support external antennas.