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


Adding a USB GPS Receiver to Direwolf to create an APRS Tracker

I recently posted a tutorial on Installing Direwolf on a Raspberry Pi to run an APRS node. The included direwolf.conf example assumed the node was operating as a static iGate or Digipeater, so the location (In Longitude and Latitude) was hard coded, however Direwolf also supports connecting to a GPS receiver for real time location tracking.

As I have a handheld radio with inbuilt GPS / APRS support I don't have an immediate need to use Direwolf as an APRS tracker, but curiosity got the better of me and I ordered a Cheap USB GPS receiver from Amazon (Apparently I ordered the last one, but any standard USB GPS receiver outputting NMEA formatted data should work). Its now up and running so I thought I'd document the processes.
USB GPS Receiver
Click read more for the configuration instructions.


APRS - Installing Direwolf 1.5 on a Raspberry Pi running Raspbian Lite

I've previously written a blog post about setting up an APRS Digipeater with a Tait 8105. Almost a year has passed since then and the latest release of Direwolf now natively supports the CM108 Sound Fobs, so we can ditch Hamlib. This makes configuration much simpler.

The following is a quick and dirty guide to getting Direwolf setup as a Digitpeater on Raspbian. For more detailed instructions on getting a Tait radio configured see the previous blog post.

My node shown on

Click read more for the configuration instructions.


Configuring Sendmail to use Amazon's Simple Email Service (SES)

Well it's been around 6 months since I last made a blog post - turns out babies are pretty time consuming.

I hate email server configuration with a passion so I offload what I can to Amazon's Simple Email Service or SES for short. This is a quick post guiding you how to get Sendmail to work with SES.

Disclaimer: I am by no means an email expert. The configuration below is working, but may not be optimal. Use at your own risk. That said, most of the configuration below was lifted straight from the AWS Docs so you'd hope that it would be reasonable.

Image result for amazon ses icon



You may have noticed my blog has been a little quiet recently. This is because my attention is currently focussed on the EMF Hub, a multimode Amateur Radio "hub" that bridges DMR, Echolink, AllStar and IRN.

There will also be onsite DMR and FM gateways linked through to the hub at Electromagnetic Field "a temporary village of geeks, crafters, and technology enthusiasts that's lit up by night, and buzzing with activity during the day." which runs from the 31st of August through to the 2nd of September.

You can follow updates for the EMF Hub here

MB6IEF on the test bench


Setting up an APRS Digipeater with an Orange Pi Zero, Direwolf, and a Tait 8105

Several members of my local club M0HSL are experimenting with APRS and Packet Radio, so I thought I'd dip my toes in the water. The most common method is to use a Hardware TNC device and a radio aimed at amateur use, but I like doing things in software where I can ( and I'm a cheapskate )

I have used Direwolf in the past with an RTL-SDR dongle to receive APRS traffic, so I thought I'd give it a go with a physical radio, a Tait 8105. Unfortunately it's a UHF model, but the setup and programming is identical between the UHF and VHF version.

To control the handle the audio and PTT, I am using a modified CM108 USB sound fob.


Faking a routed subnet with OVH / SoYouStart

I am currently in the process of decommissioning my trusty SoYouStart server (Part of OVH) so I thought I'd best document some of the stuff that may be useful in future.

You can purchase additional IP addresses off SoYouStart (SYS) however they work a little differently to the norm. I think the best way to describe it is they use static ARP to associate a public IP with a MAC address, and drop any traffic from a public IP unless its originating from the same MAC that was statically mapped. Because of this, the gateway isn't in the same subnet as the public IP range.

Before being decommissioned I was using the server as a VM Host and to mimic a 'real' setup I wanted a virtualised router / firewall between the internet and the Virtual Machines. Those of you that follow my blog will know I am a Mikrotik fanboy, so I decided to use the Mikrotik CHR (Cloud Hosted Router) as it was cheap and flexible.

To get this working I purchased an additional /32 for the routers 'external' interface and a /28 for the routers 'internal' interface. It's also required to reconfigure the SYS server's network configuration to use a bridge rather than having its IP directly on the interface.

Disclaimer: This is not a full guide, and should be considered "inspiration"