FT8 (Wsjt-x 2.0) protocol decoding in Cortex-M for experimentI implemented FT8 signal decoding on the STM32F746G-Disc board for Expermental.
I want to test whether Cortex-M based FT8 communication is possible. I used Wsjt-x 2.0 and some source code to enable FT8 decoding on the Cortex-M7 base.
1.Implementation and experiment preparation
I have used web sdr for the experiment and can do real time testing.
The decoding comparison used Wsjt-x 2.05 (for FT4)
The red square in the picture below is the microphone for receiving the FT8 signal.
First Decoding :
Compared to Wsjt-x 2.0, decoding is delayed about 2 seconds.
Second Decoding : Wsjt-x has already been decoded.
Cortex-M was decoded about 2 seconds later.
Several improvements have been made to the Cortex-M, but it is still difficult to use.
If 2 seconds are delayed, the next signal transmission has already begun.
The STM32F746 is 216Mhz and I have been successful in overclocking near 300Mhz a few years ago. (300Mhz is not accurate)
But I will not solve this problem with Overclock. I will keep the CPU speed below 216Mhz for stability.
The part that needs the most time to decode the FT8 protocol is the FFT processing part.
FT8 : Tone spacing = 6.25Hz * 8FSK = 50Hz
FFT Size : 3840 = 1920 * 2
1920 = 12000(bitrate) / 6.25Hz (Tone spacing)
In this way, the FFT Bin unit will be 6.25 Hz.
I modified the Bitrate to slightly reduce the FFT Size while maintaining 6.25Hz. I also modified the Kiss-FFT library to work with Cortex-M.
I am going to make a few more improvements to fit Cortex-M. As a result of the improvement, if it is available in Cortex-M, I will make it public.
Thank you for reading