Flashing a CC2531 Zigbee Dongle with the zigbee2mqtt firmware using a Raspberry Pi

I've recently started using Ikea Tradfri lights in my flat, and intend to get some Xiaomi sensors in the very near future to continue to improve my Home Automation. Both these platforms use a wireless protocol called Zigbee to communicate.

So far my experience with the Tradfri Hub has been reasonable, but I am cursed with a constant urge to fiddle with things and add more functionality. Enter zigbee2mqtt - "It bridges events and allows you to control your Zigbee devices via MQTT. In this way you can integrate your Zigbee devices with whatever smart home infrastructure you are using."

zigbee2mqtt is compatible with the Tradfri range and the Xiaomi sensors, and a bunch of other zigbee devices. It utilises a USB dongle, the CC2531 to handle the RF side. Clones are cheap and readily available.

zigbee2mqtt requires you to flash the USB dongle with a different firmware. For whatever reason most guides assume you'll be using a CC Debugger to do this, however it's an added expense and isn't necessary - You can also use an Arduino or Raspberry Pi to flash the firmware.

I opted to use a Raspberry Pi as I already had one on the bench. Click read more to learn how to use the Pi to flash the Dongle

CC2531 Dongle