CC12XX / CC112X Analog FM Reception

The M17 Project has been hunting for a simple one chip solution for their protocol. If you’re unaware of the M17 project, I’ll briefly summarize it, but I recommend you review their website / join their Discord/IRC/Matrix. M17 is an open source protocol for digital mobile radio (DMR). It’s currently utilizing the Codec2 voice codec for compression of voice. The protocol has support raw data frames as well.

The PHY for M17 is RRC filtered 4-FSK.

Information bitsSymbol4FSK deviation
Bit 1Bit 0
01+3+2.4 kHz
00+1+0.8 kHz
10-1-0.8 kHz
11-3-2.4 kHz
Table from the M17 specification.

The signal is designed to fit within 9kHz of bandwidth for support with analog radios and the standard 12.5kHz channel spacing.

While there is a number of integrated transceivers which support 4-FSK, but there is very few which support RRC. The M17 Team was pursuing the AX5043 based on the amazing work of NotBlackMagic. I recommend they also pursue the CC1200 as it supports M-Ary FM transmissions and reception.

I was able to quickly demonstrate analog FM reception using the CC1200. The M17 Project’s team received a few development boards shortly after that and were able to demonstrate transmission and reception of the M17 Protocol. The (extremely rough) code I used to prove FM reception is here: https://repo.curiouselectron.com/curiousmuch/cc1200_spi_ripper

An excellent example of a poor photograph.

High-level view of CC1200 SPI Ripper.

I’m using a STM32 development board strapped to a hacked up Arrow PCBA. The STM32 samples the CFM registers from the CC1200 and dumps the data over USB.

You hear example audio taken from the CC1200 below. Be careful if you’re wearing headphones as there is a bit of static.


Leave a Reply

Your email address will not be published.