I’m switching to Zigbee2MQTT for now. If you want to know if you should too, I talked about the differences between Zigbee Hubs and the DIY approach before. While this method is mentioned in the original documentation, I found that I have been postponing the process forever because of how complicated and obscure flashing CC2531 without CC Debugger is at first glance. If you recently bought the Zigbee USB sniffer and like me discovered “I need to buy a $10 CC Debugger and wait 40 days for it to arrive”. This is the post for you!
ITEAD has just released a CC2531 which comes with flashed CC2531ZNP-Prod firmware. If you don’t have one already, you can save yourself the trouble and simply order a v2.4 that comes flashed for use with Zigbee2MQTT. [CC2531 on ITEAD – $3.99]. If a low device limit scares you, you can jump to a more powerful but more expensive one CC2652R from Electrolama – I have a flashing guide for that too.
Requirements
Flashing CC2531 without CC Debugger will need you to have the following items available to you:
- CC2531 (obviously, shop on aliexpress, banggood or gearbest)
- 4 jumper cables (that you don’t mind cutting in half)
- Soldering Iron (and steady hands, I use this one)
- Raspberry Pi (of some sorts)
If you are interested in home automation, and you have not tried Raspberry Pi to date, you are doing yourself a massive disservice. I know it may seem silly to buy one just for flashing the CC2531 USB stick, but in all honesty, Raspberry Pi Zero costs $5 and can be used to run your whole automation, and CC Debugger will be used once and will set you back almost a $10.
Buy USB Zigbee Stick CC2531
Buy it using these links to support NotEnoughTech.
USB Zigbee stick CC2531
Soldering iron and 4 jumper wires are needed, as the debug pins on the CC2531 are smaller than your usual breadboard pins. It’s ok if you have a correct header, otherwise, you will have to bend the pins a little, cut the wires and solder it to the pins.
It’s not a difficult task and you will need only 4 wires. If you are clever enough, you will use the wires matching the Raspberry Pi’s header and long enough to reach directly to its header.
Pay attention to the pinout below, and once the CC2531 is connected via USB AND GPIO go through the instructions below:
Raspberry Pi | CC2531 |
GND | GDN |
Pin 38 | DD |
Pin 36 | DC |
Pin 35 | RST |
Flashing CC2531 without CC Debugger
- Check if WiringPi is installed (should be) by running
gpio -v
if you don’t see the version in the output here are the complete instructions. - Clone flash it to your Raspberry Pi:
git clone https://github.com/jmichault/flash_cc2531.git
- Navigate to the folder
cd flash_cc2531
and see if the USB device is wired correctly running:./cc_chipid
- You should see
ID = b524.
if any other outcome is given, check your wires. - Upload the latest firmware (unpack and use .hex file) CC2531_20190425.zip
- use get <path to zip: ie:
http://coordinator/Z-Stack_Home_1.2/bin/default/CC2530_CC2592_DEFAULT_20201127.zip
- install unzip:
sudo apt-get install unzip
- unzip the file
unzip CC2531_DEFAULT_20201127.zip
- Clear the flash with
./cc_erase
- Upload new firmware using
./cc_write /path/to/CC2531ZNP-Prod.hex
this will take about 3 min. - Disconnect the wires and reboot the Raspberry Pi.
If you followed all the steps carefully, you should have your CC2531 flashed with the new firmware! Congratulations.
Test the unit and range, if you find blind spots, consider reading this article and figure out if you need to add an external antenna to your CC2531.
Conclusion
Honestly, I’m not sure why this method isn’t listed as the 1st one, but it needs some exposure. In the next tutorial, I will cover the installation of the Zigbee2MQTT and problems I came across while doing so. I hope this will make your time much easier! If you have any questions, please leave it in this Reddit thread.