After seeing how successful the M17 packet mode is becoming (and how everyone around seems to be interested in text messaging with M17) I decided to finally revive our forgotten and unmaintained CC1200 hotspot HAT. I quickly bumped up the KiCAD version to 8.0.8, cleaned up the PCB design, and reviewed its bill of materials. Looks like the device should be ready for testing! I already ordered a batch at PCBWay 🙂
The repository with the CC1200 shield is here:
https://github.com/M17-Project/CC1200_HAT-hw
The firmware for it is somewhat functional – it already allows for M17 signal transmission and reception. It might be buggy though, as it was created in a hurry before Pacificon 2023, where we showcased it.
Firmware is available through a separate repository:
https://github.com/M17-Project/CC1200_HAT-fw
Quick details behind the design:
- 420-450 MHz range
- approx. 20mW power output
- frequency mod/demod1 only, excellent M17 capabilities
- can be flashed over SWD, RPI’s UART, or USB-C2
- half-duplex

Now, when all the hotspots (or at least a vast majority of them) support FM-based analog and digital modes only, we offer you a new solution. A truly all-mode hotspot with full quadrature (IQ) modulation/demodulation available. Want to go beyond 4FSK and try out TETRA’s pi/4-DQPSK or fancy 64QAM instead? With our shield, it is finally possible to do so, on the cheap. The hotspot works in full duplex.

You can finally run GUI-less GNU Radio flowgraphs on the Raspberry Pi with whatever back-end supporting M17 or any other mode. Sky is the limit. Supported frequency range covers the whole 420-450MHz (70cm) amateur band. The default sample rate is 125 kHz.
It is all, of course, open-source. The GitHub repository with the SX1255 shield is here:
https://github.com/M17-Project/SX1255_HAT-hw
The device acts as an I2S master, meaning that it generates the sample and channel clocks for the RPi. You need to enable an appropriate (I2S-slave) GPIO overlay. Details are in the readme, see the link above.