During the month of June, I was focused mainly on fixing bugs and integrating previously approved feature requests:
- [Feature Request] Add Time-Out Timer (TOT) option
- [Feature Request] Provide an option for the PTT key to be latching or momentary
One major bug that was resolved (or at least improved) was related to how users’ callsigns are transmitted. For RADE, there’s a packet that’s sent before transitioning from TX to RX; I had noticed during testing locally that this seemed to be cut off, preventing proper decode of the packet on the receive side. We had tried to avoid this in the past by calculating a delay based on CAT control responses, but this was apparently not sufficient. After experimentation, I changed this to a static delay and was able to consistently transmit this packet with my setup.
Additionally, there were bugs in the backend side that contributed to being unable to reliably decode callsigns. For example, there was a floating-point precision bug that interfered with LDPC decode at higher SNRs; fixing this dramatically improved decode performance in testing by others. We also removed the r8brain audio resampler and returned to using libsamplerate (which is what FreeDV was using prior to 2.3.0) due to varying RADE loss figures (more info here if interested).
On the FlexRadio integration, there were fixes to improve the behavior of the audio limiter (for microphone input). This allows users to use microphone audio levels such that peaks are closer to 0 dB; prior to this change, users had to set their microphone levels approximately 10 to 15 dB lower than they would have to otherwise for acceptable audio quality at the receive station.
During the last part of the month, I also began preparations for RADEV2 in the freedv-gui repository. I created a new branch called v3.0-dev to track FreeDV 3.0 development and merged several pull requests to remove the legacy FreeDV modes (700D/E and 1600) and switch our official convention over to being USB-only. I also began looking into further improvements to callsign decode, mainly using a lower rate LDPC code to allow decoding the callsign at a few dB lower signal level (currently, FreeDV needs around 2 dB SNR in order to reliably decode callsigns). This work will continue during July as well as other bugfixes and improvements.
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, 2026" --before "Month 31, 2026 23:59:59" --all