This month, most of my work has been primarily on supporting RADE within the recently-released FlexRadio 8000 series of radios. As I don’t have an 8000 series here, I’ve been doing my development primarily on a Raspberry Pi CM4 connected via Ethernet to my home network (as this is exactly what’s running the software on the Flex). To save time, I ported much of the FlexRadio support code originally written for ezDV as well as using various bits from the main FreeDV application (such as code for connecting to FreeDV Reporter and for processing an abbreviated audio pipeline).
Based on testing with a limited group of people, this is working pretty well so far when run outside of the radio. Audio quality is also fairly good as is expected with RADE, especially since the FlexRadio waveform also uses the microphone AGC logic that is now in version 2.0.2 of the FreeDV application. The next step is to generate a package in a form that can be uploaded to a compatible radio using SmartSDR software (right now, we generate an aarch64 AppImage as part of our CI process that you can run on a Raspberry Pi 4 or newer; this will allow you to have FlexRadio integration on 6000 series radios as well).
On the FreeDV application side, I resolved a few bugs discovered since version 2.0.1. Additionally, the initial implementation of AGC was dramatically changed based on feedback from users. Originally we were using Speex’s AGC functionality, but this had to be scrapped as it didn’t work as well as hoped. The current AGC implementation uses EBU R 128 to measure loudness and adjusts gain up or down based on this measurement, with a limiter immediately afterward to prevent clipping. In testing, this outperformed at least WebRTC (another implementation that was tried after Speex) based on subjective feedback. Since 2.0.2 contains this new AGC feature (enabled by default), this should hopefully make it easier for users to configure their microphone audio when first getting started with FreeDV.
More information can be found in the commit history below:
(Note that all commit logs above were generated with the following command line:)
git log --author="member@email" --after "Month 1, 2025" --before "Month 31, 2025 23:59:59" --all