Connecting the CC2530

Pin layouts

The pin layout is different between each CC2530 module

NamePin layoutPicture
CC2530CC2530 pin layoutCC2530
Webee CC2530 + CC2591Webee CC2530 + CC2591 pin layoutCC2530 + CC2591

Using a USB to serial adapter

Confirmed working

This how-to has been confirmed working with the following CC2530 based devices:

DeviceImage
CC2530CC2530

and the following USB to serial adapters:

DeviceImage
CP2102CP2102
Flashing the firmware

The required coordinator firmware can be found here: Zigbee 1.2open in new window and Zigbee 3.0open in new window.

Connecting

Connect to CC2530 to the USB to serial adapter using the following mapping:

USB-Serial AdapterCC2530
3V3VCC
GNDGND
TXDP02
RXDP03

Now plug in the USB-to-serial adapter in your USB port and start Zigbee2MQTT, enjoy!

To a Raspberry Pi (Zero)

CC2530 can be connected to a Raspberry PI (Zero) via GPIO Pins - no USB2FTDI is needed.

The use of UART by the installed Linux has to be disabled: Detailed explanation hereopen in new window

Enable UART in the Kernel and disable UART use for BlueTooth.

In /boot/config.txt add following lines:

enable_uart=1
dtoverlay=pi3-disable-bt

Disable the modem system service (on the command line):

sudo systemctl disable hciuart

Remove the console entry by removing any of those entries from /boot/cmdline.txt if present:

console=serial0,115200 console=ttyAMA0,115200

Reboot your Raspberry.

Wiring CC2530 to the Raspberry

CC C2530 -> Raspberry
VCC -> 3,3V (Pin1)
GND -> GND (Pin6)
P02 -> TXD (Pin8 / BCM 14)
P03 -> RXD (Pin10 / BCM 15)

CC2531PI

Configuring Zigbee2MQTT

Change the Serial Port in your data/configuration.yaml file:

serial:
  port: /dev/ttyAMA0

Have fun.

Via an ESP8266 as a serial to WiFi bridge

This setup allows you to connect a CC2530 to an ESP8266 which can be put everywhere in your house. Via a serial socket, Zigbee2MQTT will connect to your CC2530.

Wiring

Wire the CC2530 to the ESP8266 using the following scheme:

ESP8266CC2530
3v3VCC
GNDGND
TXP02
RXP03
GNDP20
GNDP04
GNDP05

Option 1 - Flashing the ESP8266 with ESPEasy

The ESP8266 needs to be flashed with ESPEasy. ESPEasy has sufficient documentation on how to get you up and running:

Setting up ESPEasy

Open the ESPEasy web interface and complete the setup. Afterwards open the web interface again.

Click on Devices Edit of the first task and select Communication - Serial Server from the dropdown list.

Fill in the form as following:

a.    Name: ZIGBEE2MQTT
b.    Enabled: checked
c.    TCP Port: a number between 1000 and 9999 "1775"
d.    Baud Rate: 115200
e.    Data bits: 8
f.    Parity: No Parity
g.    Stop bits: 1
h.    Reset target after boot: - none –
i.    RX receive timeout: 0
j.    Event processing: Generic

Press Submit, the setup is now completed.

Option 2 - Flashing the ESP8266 with Tasmota

The ESP8266 needs to be flashed with Tasmota firmware, "zbbridge" build. Please find flashing instructions in the following guides:

You don't need MQTT for the serial to network functionality but it is a nice option to monitor your bridge.

Setting up Tasmota

Open the Tasmota web interface and complete the basic network setup. Next in "Configuration", "Configure Module" define your RX and TX pins. The Rx/Tx are relative to the ESP device. For example with ESP8266/ESP01's hardware serial, set GPIO1 as TCP Tx and GPIO3 as TCP Rx.

Next, in Tasmota's main screen, open "Console". Enter TCPBaudRate 115200. Decide on the port number to use and set it. For example for port = 8888 run:

Rule1 ON System#Boot do TCPStart 8888 endon
Rule1 1

Zigbee2MQTT configuration

Now add the following to the Zigbee2MQTT configuration.yaml:

serial:
    port: 'tcp://192.168.2.13:20108'
    adapter: zstack

Note to change the IP address and port. You can now start Zigbee2qmtt.