Author Archives: k6aq

Mooneer’s FreeDV Update – July 2026

This past month was a continuation of work required for the upcoming 3.0 release of FreeDV. During the first part of the month, I worked on user interface improvements, namely consolidating all configuration into one Settings window (similar to most other ham radio applications). The Easy Setup window was also removed and replaced with a Setup Wizard, which asks for much of the same information that Easy Setup did but in a hopefully easier to understand manner (along with being able to be used with more setups; a limitation of Easy Setup in the past was that many audio device configurations were relegated to the “advanced” setup workflow).

Besides user interface improvements and other feature enhancements (for example, adding a setting to automatically start decoding on application startup), much of the work done has been around integrating the new RADEV2 mode into FreeDV. This included discussions about how to verify proper behavior of applications integrating RADEV2 as well as performing the required updates at the code level to make it encode and decode.

For August, RADEV2 integration and testing work will continue. I am also beginning to give talks about FreeDV again after having taken a few months off.

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

Mooneer’s FreeDV Update – June 2026

During the month of June, I was focused mainly on fixing bugs and integrating previously approved feature requests:

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

Mooneer’s FreeDV Update – May 2026

This month two releases of FreeDV went out–2.3.0 followed by 2.3.1 a few weeks later. 2.3.1 had some audio quality and other fixes for issues discovered after 2.3.0’s release. In particular, the FreeDV integration on Flex had different audio than the FreeDV application for the same signals, not to mention some issues with Windows audio not reaching FreeDV on some user’s machines.

More importantly, however, is that the code shared between the Flex/KA9Q integrations and freedv-gui has been split out into its own repository, allowing those who want to integrate FreeDV into their own hardware or applications an easier path for doing so. In addition, the Flex and KA9Q integrations were branched off into their own repository, both so that those who want to include FreeDV have a simpler example to follow as well as to allow the integrations to follow a different release cadence from freedv-gui. This should hopefully allow more people to integrate FreeDV more quickly.

Besides bugfixes and the work to split the code into separate repos, a few other features managed to merge post-2.3.1 release:

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

FreeDV 2.3.1 released

FreeDV 2.3.1 has been released, including improved audio quality for those running the Flex waveform and other bug fixes. It can be downloaded using the following links:

* Windows (most PCs)
* Windows on ARM
* Linux AppImage (for Intel and AMD PCs)
* Linux AppImage (for ARM systems, e.g. Raspberry Pi 5+)
* Linux AppImage for FlexRadio support (needs Raspberry Pi 4 or newer)
* FlexRadio Docker container (Flex 8000/Aurora series)
* macOS

More information about this release can be found on the GitHub release page.

Our experience at Hamvention 2026

This year, Mel Whitten (K0PFX) and Walter Holmes (K5WH) manned the FreeDV booth at its normal location in Building 1. Booth traffic was heavy throughout the weekend, keeping both busy answering questions about FreeDV and demonstrating RADE live over the air via remote connections to their respective radios.

Additionally, Flex users flocked to the booth wanting to know more about the Flex Waveform-Docker implementation. With the Waveform running on Walter’s remote Flex, “seeing is believing” so it made a good demonstration. On top of that, additional radio software developers came by and mentioned they had already added RADE into their application, or it was being added right away.

As Mooneer (K6AQ) was unable to attend this year, we had a new presenter, JJ, KG4VCF in the Digital Modes forum. JJ’s presentation was an in depth guide on how to set up and use FreeDV’s RADE to achieve “Great Audio and Smooth Digital Voice.” And it did just that describing what RADE digital voice does and why it sounds better. His use of professional level graphics and accompanied voice sound bytes garnered attention from the attendees. A larger meeting room was granted this year for the forum filling it to near capacity indicating RADE is gaining a foothold in HF communications.

Demonstrating RADE continues to show that for the user to have significant interest in using the mode, the top three priorities are: 1 – Perceived good voice quality, 2 – “Wow” factor of robustness over SSB and 3 – Ease of set up and use. FreeDV is quickly proving to the wider amateur radio community that RADE excels in all three priorities, with further improvements in all three as work continues.

FreeDV 2.3.0 FlexRadio Integration

FreeDV 2.3.0 has just been released, and with this comes the ability to upload FreeDV to your Flex 8000 or Aurora series radio using the Docker container feature that is new with SmartSDR 4.2.18. This allows you to use FreeDV with your Flex radio in a manner similar to what you would do with regular USB or LSB modes; no need to set up DAX or CAT with the FreeDV application (though you still can do so if you’d like).

To get started, download the Docker container from here and follow the instructions over in the README. (In short, go to Tools->Waveforms in SmartSDR, make sure Docker is selected and install the downloaded file from the first link; after a bit you’ll be able to select FDVU or FDVL modes on your active transmit slice and begin operating.) The FreeDV FlexRadio integration also includes support for FreeDV Reporter, which means you’ll be able to spot FreeDV signals that you receive over the air and get a live view of what’s currently happening in FreeDV.

This is an exciting development that helps propel us closer to our goal of getting FreeDV embedded within radios (which is a big part of the ARDC grant we received). Hope to hear you on the air on FreeDV!

(BTW for those with a 6000 series radio, you can set this up with a spare Raspberry Pi 4 or newer. More information in the README above.)

FreeDV 2.3.0 released

FreeDV 2.3.0 has been released, including support for running it directly on a compatible Flex 8000 or Aurora series radio, enhancements to performance (thanks to the removal of Python) as well as improvements to FreeDV Reporter filtering functionality and other bug fixes. It can be downloaded using the following links:

More information about this release can be found on GitHub release page.

Mooneer’s FreeDV Update – April 2026

This past month, the following FreeDV feature enhancements and bugs were worked on (numbers next to each item are pull request IDs from here):

  • Fix bugs related to display of Mic/Speaker Level slider. (#1281)
  • macOS: Fix bug causing main window’s menu to disappear when Reporter is displayed. (#1282)
  • Remove Speex in favor of RNNoise. (#1276)
  • Flex: Prevent multiple slices from being in FreeDV mode. (#1270)
  • FreeDV Reporter: Add ability to filter based on individual columns. (#1285)
  • Add green frequency indicator for RADE. (#1283)
  • Implement proposed fixes to reduce dropouts. (#1287)
  • Refactor sample rate logic so that it’s in only one location. (#1286)
  • FreeDV Reporter: Fix inability to use mouse wheel on Msg column. (#1289)
  • Log heard callsigns to a CSV file. (#1290)
  • Fix sudden compilation errors related to Opus. (#1299)
  • Add ability to load and save different FreeDV configurations (#1296)
  • Reenable Windows on ARM builds for FreeDV. (#1297)
  • Ensure that CSV file logging feature uses XDG paths. (#1293)
  • Logging: fix incorrect time when using UTC due to DST.
  • Windows: Fix test failures (#1300)
  • Easy Setup: Also emit audio tone through speakers. (#1303)
  • Ensure that PTT is actually off when opening Hamlib connection. (#1308)
  • Easy Setup: Prepare for SmartSDR 4.2. (#1306)
  • Use r8brain for audio resampling to improve performance. (#1307)
  • Update FlexRadio waveform documentation for SmartSDR 4.2. (#1311)
  • Hamlib: Add options to force RTS and DTR on. (#1292)
  • Enable use of remote USB token for signing automated Windows builds. (#1312)
  • Update Hamlib to 4.7.1. (#1314)

I didn’t get to spend a lot of time on FreeDV development this month, but as with other members of the team, I tried out Claude Code for some of the new features being added and it’s definitely been a help in at least getting the basics going for a feature. I’d say it probably gets around 80-90% of the way there on its own and needs my help for the last 10-20%, if nothing else to make sure what it generated is sufficient before merging.

One big thing I worked on near the end of the month was automating the generation of signed Windows builds. This was done by setting up a SSH tunnel to a server here with the USB token we received from the certificate authority and using a tool called pkcs11-proxy to expose it over the tunnel. A big advantage of this is that it allowed us to continue using the same tools for actual code signing as before (mainly osslsigncode) versus switching to something such as Azure Artifact Signing. We’ll likely end up going that route or something similar at some point due to changes in how code signing works on Windows, but we have a few years before we have to start moving in that direction.

Another huge thing that’s happened is that FlexRadio released SmartSDR 4.2, finally enabling the ability to effectively embed FreeDV into compatible Flex 8000 and Aurora series radios. Several early testers are now using this with great results and we hope to be able to get this out to the wider community soon with FreeDV 2.3.0’s upcoming release. Stay tuned!

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

Mooneer’s FreeDV Update – March 2026

My work this month has focused primarily on QA of the C port of RADEv1 as well as updating the official FreeDV application to use it instead of the previous hybrid Python/C implementation of RADE. The recent C port of RADE, as mentioned here, has been a gamechanger for many reasons. One significant improvement users will see immediately is a reduction in the file download size. For example, the Linux AppImage for 2.2.1 is over 600 MB in size, while the most recent versions our CI system have been generating are only 69 MB (a nearly 90% improvement!)

Another improvement is in performance, both on startup and during regular use. With the Python implementation, for instance, it would take up to 30 seconds after pushing the Start button for my 2019 MacBook Pro to begin decoding OTA signals, while the most recent builds only take around a second or two. CPU usage is also dramatically reduced, particularly for more constrained systems; the FlexRadio waveform, for instance, only uses around 30% of a single core of a Raspberry Pi 4 now when not actively decoding a signal (whereas that would have been closer to 80%+ with the Python implementation).

In the latter half of the month, I’ve also been working on chipping away at our pending feature request backlog. In particular, these features have been implemented and are slated for release in 2.3.0:

For this month, I’ll continue supporting feature requests and any work required to improve the C port of RADEv1 / move RADEv2 forward.

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

Mooneer’s FreeDV Update – February 2026

This past month was spent working on the release of version 2.2.1, which primarily consisted of bug fixes discovered after the release of 2.2.0. A few additional bug fixes and performance improvements after 2.2.1’s release also got in.

Besides the work on the FreeDV application, most of my effort this month was spent preparing for Orlando HamCation (more information on how that went here). This consisted of preparing the slides for the talk as well as booth setup/teardown and manning the booth itself, where I (along with Walter K5WH and Mel K0PFX) answered questions from people interested about FreeDV.

For this following month (March), I hope to make some additional progress on any features that are approved during our upcoming meeting. There have actually been a large number submitted since our last meeting (in January since it was cancelled last month), so thank you guys for that! Time permitting, I also hope to investigate Peter’s work on the C implementation of RADEV1 to see what gaps still remain with it.

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