M17 - SDR & GNU Radio

M17 compatible radio built using RTL-SDR/HackRF and GNU Radio.

Have you made this/are you making this?

I’m working on it. I think SQ3SWF is trying too.

Sorry for double-posting, but if anyone is familiar with GNU Radio - please stand up :slight_smile: We need a 4FSK demod block.

I’ve been meaning to learn GNUradio, maybe this is my motivation.

Been busy with work lately but had some time to start learning GNURadio and sketching out a flowgraph

At the moment all it does is encode audio to raw Codec2, transmit it as 4FSK symbols over FM, simulate a noisy channel, and demodulate it back into bits. Currently missing: Framing that would let me plug those bits back into Codec2 and get audio out of it. When I manually find the correct offset it decodes fine, though, even down to some pretty low SNRs (constellation diagram is basically just 4 pinprick dots even down to 10dB SNR or so). I expect this to get worse with higher symbol rates, but it’s a pretty good start. I wager that with ECC we should be able to get quite acceptable decode performance down to 4-5 dB SNR.

It would probably be a good idea to design the function that accomplishes framing and ECC in the M17 codebase, to also work as a GNURadio plugin so that it doesn’t need to be written twice and we can be assured that what we are simulating is actually reality.

Can you provide (attach) a .grc file? I have received a HackRF One yesterday and gonna play with it.

EDIT:

I’m bumping this thread.

If memory serves, there was some movement on github and reddit, where u/mobilinkd was able to provide a working sample.

4FSK with RRC for GNURadio 3.7 can be found here:
https://github.com/M17-Project/gr-m17/blob/master/contrib/M17_4FSK_RRC.grc

Doesnt work for me right out of the box. It seems like for GRC 3.8.2 the chunks to symbols block needs a list [x, y, z] as argument.

Also see https://github.com/M17-Project/gr-m17/blob/master/examples/m17_channel.grc
The demodulation just does not work with the built in blocks. It would be nice to have deep access to the clock sync and filtering for performance analysis later on.

Hello guys, you can get 4fsk demod from osmocom gr-op25 project https://github.com/osmocom/op25