COM.Zigbee is a Zigbee self-organizing network communication module launched by M5Stack. The module adopts the CC2630F128 solution, internally integrates the Zigbee protocol stack, and opens the serial communication interface. Integrated external antenna, single node stable communication distance up to 1km, 200-level router depth, through the MESH networking mode, you can extend your IoT application in a wide range, with both ultra-low power consumption and high sensitivity. The Zigbee network can support hundreds of nodes and has enhanced security features. It can provide complete and interoperable IoT solutions for home and building automation.


When used with the FIRE main control, due to the PSRAM pin conflict, please switch the DIP switch pins of the module base to TX(0/13), RX(5/15), and the device can use USB/ External DC is used for power supply.
When used with Core2 series main control, due to the different order of the base pin array, COM.X base pins TX(16), RX(17) correspond to the actual pins TX(13), RX of the Core2 main control (14) The equipment needs to use external DC for power supply.

Product Features

  • CC2630F128
  • Quick access to the network without setting
    • initialize the coordinator and configure the router preset, which can realize the automatic access to the network by pressing the button three times
  • Serial communication
  • Low power consumption (module working current: 25mA, sleep 5uA)
  • Dynamic routing maintenance, supporting 200-level routing depth
  • Transmission speed 250Kbps
  • Node communication distance 1km
  • UART transparent transmission/broadcasting/P2P


  • 1x Zigbee Unit
  • 1x SMA antenna


  • Smart Home
  • IoT collection node
  • Building Automation


Resources Parameter
CC2630F128 ARM Cortex-M3 32bit
communication UART 38400bps 8N1(default)
Communication distance 1km (Open area)
working frequency 2.4GHZ (2405MHz-2480MHz, step:5MHz)
DC interface specifications 5.5mm
Net weight 37g
Gross weight 70g
Product Size 54*54*13.2mm
Package Size 165*60*36mm

The module base has a DC power input interface. Please strictly follow the input range (5-12V) to prevent damage to the module when using this interface to connect to the power supply. The internal power DIP switch can adjust the voltage level of the internal terminal VIN to adapt to different modules.



Core TX(GPIO 0/13/17) RX(GPIO 5/15/16) 5V GND
According to the different needs of different hosts, the DIP switch fluctuates to the corresponding pin.
RXD 17/0/7 14/0/19 17/0/13
TXD 18/1/13 13/33/2 16/5/15




DRFZigbee.h - API

//Initialize the serial port of the module
void begin(HardwareSerial & uart){ _uartp = &uart;}

//Connect the module. After execution, the module will disconnect the wireless link and enter the configuration mode.
int linkMoudle();

//Read and write module configuration parameters
int readModuleeparm(zigbee_arg_t *parm);

int setModuleparm(zigbee_arg_t &parm);

//Get network topology
int getNetworksTopology();

//After completing the configuration, you need to execute the program to restart the module and restore the wireless connection
int rebootModule();

//Get module signal quality
int8_t getModuleRSSI(nodeRSSI_t *nodeRSSIPtr = nullptr);

//Receive data
int reviceData(reviceData_t *revice,uint8_t type = kP2PCustomIDMode,size_t timeout = 1000);

//send data
void sendData(uint8_t cmd, const std::initializer_list<uint8_t> args);

int sendCMDAndWaitRevice(uint8_t cmd, byteArray &array, byteArray *reviceArray = nullptr, size_t timeout = 1000);

int sendCMDAndWaitRevice(uint8_t cmd, const std::initializer_list<uint8_t> args, byteArray *reviceArray = nullptr, size_t timeout = 1000);

int sendDataP2P(uint8_t mode,uint16_t addr,uint8_t *dataptr,size_t length);

int sendDataP2P(uint8_t mode,uint16_t addr,byteArray &array);

int sendDataP2P(uint8_t mode,uint16_t addr,const std::initializer_list<uint8_t> args);


//Module configuration parameter item

DRFZigbee::zigbee_arg_t *arg = new DRFZigbee::zigbee_arg_t;

uint8_t     main_pointType;
uint16_t    main_PANID;
uint8_t     main_channel;
uint8_t     main_transmissionMode;
uint16_t    main_customID;
uint16_t    main_res0;
uint8_t     main_uartBaud;
uint8_t     main_uartBit;
uint8_t     main_uatrtStop;
uint8_t     main_uartCheck;
uint16_t    main_res1;
uint8_t     main_ATN;
uint8_t     main_mac[8];

//Configure preset parameters-complete configuration preset parameters can be used to quickly access the network from the node without settings
uint8_t     preset_pointType;
uint16_t    preset_PANID;
uint8_t     preset_channel;
uint8_t     preset_transmissionMode;
uint16_t    preset_customID;

uint16_t    preset_res0;

uint8_t     preset_uartBaud;
uint8_t     preset_uartBit;
uint8_t     preset_uatrtStop;
uint8_t     preset_uartCheck;

uint16_t    preset_res1;

uint8_t     preset_ATN;
uint16_t    shortAddr;
uint8_t     res3;
uint8_t     encryption;
uint8_t     password[4];