FreeDV: Digital Voice for HF
FreeDV is a GUI application for Windows, Linux and MacOS (BSD and Android in development) that allows any SSB radio to be used for low bit rate digital voice.
Speech is compressed down to 1600 bit/s then modulated onto a 1.25 kHz wide 16QPSK signal which is sent to the Mic input of a SSB radio. On receive, the signal is received by the SSB radio, then demodulated and decoded by FreeDV. Communications should be readable down to 2 dB S/N, and long-distance contacts are reported using 1-2 watts power.
FreeDV was built by an international team of Radio Amateurs working together on coding, design, user interface and testing. FreeDV is open source software, released under the GNU Public License version 2.1. The FDMDV modem and Codec 2 Speech codec used in FreeDV are also open source.
How much have you spent on Ham radio gear this year? How did it compare to FreeDV? FreeDV repesents an open and free future for digital voice over Ham Radio. Please help by donating via PayPal (which also allows credit card donations):
The FreeDV developers have donated 1000's of hours of highly skilled engineering time. Your donation will reduce the out of pocket costs of the developers for hardware, travel, and FreeDV promotion at Ham events.
Would you like a new FreeDV feature? Please consider a bounty, e.g. $100 for feature x. We'll see if we can find a developer for you.
New Upgrade as of version 0.97.0
Dec 2014: More repairs to T/R control, Options Event Processing (for future use) and Speex noise suppression on mic input. Note: Text Messaging window now requires check sum and not downward compatible with earlier releases.
Amateur Radio is transitioning from analog to digital, much as it transitioned from AM to SSB in the 1950's and 1960's. How would you feel if one or two companies owned the patents for SSB, then forced you to use their technology, made it illegal to experiment with or even understand the technology, and insisted you stay locked to it for the next 100 years? That's exactly what was happening with digital voice. But now, hams are in control of their technology again!
FreeDV is unique as it uses 100% Open Source Software, including the audio codec. No secrets, nothing proprietary! FreeDV represents a path for 21st century Amateur Radio where Hams are free to experiment and innovate, rather than a future locked into a single manufacturers closed technology.
Watch this video of a FreeDV QSO.
Here is what you need:
- A SSB receiver or transceiver
- FreeDV software, download links are below.
- A Windows or Linux PC with one (receive only) or two sound cards.
- Cables to connect your PC to your SSB radio.
Test your Transmitter Frequency Response
When you play this 10 second 1 kHz to 2 kHz sweep .wav file through your transmitter, the power level should remain constant. If not, look for filtering and processing to turn off.
Connecting Your Radio
If you are lucky enough to have a "9600" input and output on your radio, this is the best connection for every digital mode, even 1200 packet, and your audio box should be configured for 9600 or "no pre-emphasis/de-emphasis" if it has that setting. If the radio's configuration menu has a 1200/9600 setting, leave it permanently on 9600.
The "9600" and "1200" settings are misnamed. "9600" should really be called "direct connection", and "1200" should be called "pre-emphasis". The pre-emphasis that comes with the 1200 setting doesn't help any digital mode. The 9600 connection is the most direct and unprocessed path to the modulator and demodulator of your radio.
Those who don't have a special connection for digital modes can use the normal audio inputs and outputs of your radio. The same cables and hardware that you use for other digital modes that are based on PC programs will work with FreeDV, but you will need a second sound interface for the microphone and speaker connections to the FreeDV program. A USB headset of the sort used by gamers is all you need for the second sound interface.
Configuring Your Radio
Turn off as much processing as possible. In general noise blankers, DSP band limit filtering and narrow bandpass filters are more likely to hurt than help, while compression, DSP noise or carrier elimination, and voice processing are definitely wrong for Digital modes. FreeDV's HF modem does its own DSP, and in general this is true for other digital programs as well.
You can see the received effect of different settings in the S/N (signal to noise ratio) display of FreeDV. A higher S/N is better.
Drive your transmitter and amplifier so that it emits 10% to 20% of its rated power continuously. There is a 12 dB peak-to-average power ratio in our HF modem, and peak clipping in your amplifier will reduce the received S/N. Modern transmitters and amplifiers are only as linear, and only have as much headroom, as is necessary for voice SSB, thus we suggest you maintain amplifier headroom by operating well below your full power output. FreeDV is more efficient than SSB voice, and will achieve similar range to an SSB signal driven at higher levels, and better audio quality. We encourage you to ask manufacturers and reviewers to start rating transmitter and amplifier linearity and headroom for digital modes, not just SSB voice.
- Windows 32-bit Installer.
- Macintosh OSX.
- Debian package repository, Wheezy x86 and amd64.
- Repositories for Fedora, RHEL, and derivatives have moved to a Fedora COPR Repository located here.
- Android under development.
You can also build from source code, project files are in the fdmdv2 and codec2 folders. The folders with "-dev" appended are under development and not guaranteed to work. Information on how to set up read-only access to Subversion is here.
Quick Start Guide
Several start-up guides are available
USA, 14.236 MHz
Login to FreeDV QSO Finder for list of frequencies (see Links below)
Please post your questions to the "Digital Voice" Google group: digitalvoice at googlegroups.com
|Subscribe to digitalvoice|
Design & Key Features
- Codec 2 voice codec and FDMDV modem
- 50 baud 16 QPSK voice data
- 1 Center BPSK carrier with 2x power for fast and robust synchronisation.
- 1.25 kHz spectrum bandwidth (half SSB) with 75 Hz carrier spacing
- 1400 bit/s data rate with 1375 bit/s voice coding, 25 bit/s text for call sign ID, 200 bit/s FEC.
- No interleaving in time, resulting in low latency, fast synchronization and quick recovery from fades.
- 44.1 or 48kHz sample rate sound card compatible
- Cross platform, runs on Linux, Windows, MacOS, BSD, and a Java version runs on Android.
- Open source, patent free Codec and Modem that anyone can experiment with and modify
- Waterfall, spectrum, scatter and audio oscilliscope displays.
- Adjustable squelch
- Fast/slow SNR estimation
- Microphone and Speaker signal audio Equaliser
- Control of Transmitter PTT via RS232 levels
- Works with one (receive only) or two (transmit and receive) sound cards, for example a built in sound card and USB headphones.
FreeDV was coded from scratch by David Witten (GUI, architecture) and David Rowe (Codec 2, modem implementation, integration).
The FreeDV design and user interface is based on FDMDV, which was developed by Francesco Lanza, HB9TLK. Francesco received advice on modem design from Peter Martinez G3PLX, who has also advised David on the FDMDV modem used in FreeDV.
Mel Whitten, K0PFX has contibuted greatly to the design, testing and promotion of several Digital Voice systems, including FDMDV. This practical experience has led to the current design – a fast sync, no FEC, low latency system that gives a “SSB” type feel for operators. Mel and a team of alpha testers (Gerry, N4DVR; Jim, K3DCC; Rick, WA6NUT; Tony, K2MO) provided feedback on usability and design of FreeDV.
Bruce Perens has been a thought leader on open source, patent free voice codecs for Amateur Radio. He has inspired, promoted and encouraged the development of Codec 2 and FreeDV.
As development continues, a great many people are pitching in whom we have not credited on this web site, but we appreciate all of their work.
There is a free, if somewhat old, wxWidgets book that you can download here.
Google DigitalVoice group
FDMDV Digital Voice Resource Page
Codec 2 Voice Codec
Why Open Source Digital Voice Is Important
Notes for users of Tigertronics rig interfaces
K7VE's FreeDV QSO Finder
David Rowe interviewed about CODEC2
HamRadioNow.tv Episode 81 Bruce Parens and Mel Whitten interview at Dayton Hamvention 2013
Q1: Is there any way to save the screen settings when you drag the tabs to multiple windows on the main screen?
A1: No, as we can't work out how to support saving and restoring this information with wxWidgets.
1. Starting FreeDV first thing this morning resulted in a dialog with an error message:
../src/msw/bitmap.cpp(846):assert "image.IsOk()" failed in
CreateFromImage(): invalid image
Solution: manually remove all FreeDV values in the Registry.
This is obviously not a great solution. But for those who encounter this, the key to remove is:
HKEY_CURRENT_USER\Software\CODEC2-Project and everything under it in the heirarchy. It will be recreated when you reopen the program. You will have to reconfigure your sound card and PTT settings.
This is usually done using the 'regedit' command. You need to open a command window (aka a 'DOS' window). To use this command, open Start->Accessorys->Command Prompt. Then enter the command and a graphical display of your system's registry will appear. Click on HKEY_CURRENT_USERS to expand it and you will see 'Software' Expand this in the same way, and you should see CODEC2-Project. Highlight this and delete it. It and ll of its subkeys will be removed. Then close the registry editor and the Command Window. All traces of FreeDV should now be gone.
2. The Tools - Record/Play file feature doesn't work with my wave file!
Currently the "Play File - Mic In" feature only supports 8 kHz sample rate, 16 bit integer samples. Try converting your wave file to that format.
FreeDV Features TODO List
EQ way to export/import filter params as a text string for sharing
EQ Window floating such that user can toggle PTT without closing filter window
Improved click tune acquisition range
FDMDV style Waterfall option with red line indicating expected spectrum
Play File To Radio Feature
Better names for record/play file features
Record/Play files at different sample rates
Determine if new version is availble via HTML
Waterfall ID, optionally send ID signal that renders as image on waterfall display
Limit waterfall/spectrum x axis to 200-2800Hz to block of low end noise from Signal link boxes
(done)Half duplex mode to mute tx audio on Rx, un mute on PTT (v0.91)
(done)Uncheck squelch when in analog mode (v0.91)
(done)When FreeDV is in focus, space bar control of PTT (toggle of TX/RX)
Consider reducing varicode character set to reduce induced errors
(done)Speex noise suppression on mic input option
FreeDV Minor bug list
Crashes when waterfall size reduced to very small values
Blue-green-red waterfall display shows black at maximum signal, as it
does at minimum signal.
Support 96 kHz sample rates, make sure rate selection and max internal max
12kHz, the "Record 2s" button
Review receiver input level bargraph "Too High" setting
Call sign not preserved between re-starts
Setting record time on Windows
Position of loop and record time controls on play/record dialogs
Try smaller FIFO buffers to reduce latency
Try to reduce number of empty buffer events, e.g. with thread priority