After my initial meeting with GSoC mentors Marcus and Wylie on May 16th, I’ve spent the week going through FT8 research and preparation. We discussed the project goals - ideally having a complete FT8/WSPR implementation in a GNU Radio OOT module ready for the October conference - and decided to start with FT8 due to its better documentation and reference implementations.
I’ve been going through the technical specs: FT8 uses 174-bit fixed rate datagrams with 77 bits of actual user info (3 bits for message type, 74 for payload), plus 14 CRC bits and 83 LDPC parity bits for error correction. The modulation uses 8 different tones over 15-second cycles, with Gray coding to minimize bit errors between adjacent frequencies. The Costa array sequence [3,1,4,0,6,5,2] handles synchronization. My plan is to use gr_modtool to create the ft8 module, starting with an ft8_encoder block to handle the 174-bit conversion, followed by an ft8_modulator for audio waveform generation. Starting with audio samples rather than IQ makes the most sense for initial development, and I can validate progress by comparing generated signals against known good FT8 transmissions using spectrum analyzer software. I’ve also been reviewing GNU Radio’s OOT module guides and reviewing common error correction fundamentals like Hamming codes and convolutional encoders per Wylie’s suggestions.
This is a nice paper to read for anyone interested in further details