Mai 032020


Hardwarewise you only need your CC2350 board, a Rasperry Pi which is newer than the first version and a bunch of (preferably) female-female cables. This does not work for Raspberry Pi 1 as it doesn’t have the required GPIOs.

From a software point of view, you would need to have WiringPi installed and have the according coordinator or repeater firmware ready. This will be explained in the later process.


First of all, hook up your CC2530 with your Raspberry Pi. Therefore connect the following PINs.

GND or G
RES or RST or R (reset)
P22 (DC)
P21 (DD)

Raspberry Pi
Pin 39 (GND)
Pin 01 (3.3V)
Pin 35 (GPIO24, BCM19)
Pin 36 (GPIO27, BCM16)
Pin 38 (GPIO28, BCM20)

Flashing the CC2350

Make sure you have WiringPi installed. If not, follow these steps.

git clone
cd flash_cc2531

This should now contact the CC2350 board and return the chip id. If this return something like 0000 or ffff you have to go back and check the wiring! The result should be

  ID = b524.

Usually you will find an expected result of „a524“ on the internet. This is also a valid result, but for the USB stick type of hardware. In case you are having a CC2531, you will get „a524“ as a result. But then I would be impressed, as the wiring should be different.

Afterwards download the coordinator software and unzip it


Now erase the chip

sudo ./cc_erase

This will give you something like
ID = a524.
erase result = 00a2.
as a result. The chip can now be programmed with the coordinator firmware using the following command

sudo ./cc_write CC2530ZNP-with-SBL.hex

The expected result would be

  ID = a524.
  reading line 15490.
  file loaded (15497 lines read).
writing page 128/128.
verifying page 128/128.
 flash OK.

This should give you a fully functional Z-Stack coordinator. This now needs to be hooked up to either your Raspberry or maybe even a ESP8266 to be used. Or connect it to a zigbee2mqtt server.