freedv-gui/USER_MANUAL.html

1430 lines
68 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<h1 data-number="1" id="introduction"><span
class="header-section-number">1</span> Introduction</h1>
<p>FreeDV GUI (or just FreeDV) is a GUI program for Linux, Windows, and
macOS for running FreeDV on a desktop PC or laptop.</p>
<p>This is a live document. Notes on new FreeDV features are being added
as they are developed.</p>
<h1 data-number="2" id="getting-started"><span
class="header-section-number">2</span> Getting Started</h1>
<p>This section contains instructions to help you get started.</p>
<h2 data-number="2.1" id="system-requirements"><span
class="header-section-number">2.1</span> System Requirements</h2>
<p>FreeDV is officially supported on the following operating systems and
versions:</p>
<ul>
<li>Windows: Windows 10 and later</li>
<li>macOS: macOS Big Sur (11.0) and later (ARM and Intel)</li>
<li>Linux: Ubuntu 22.04 LTS and later, Fedora 42 and later</li>
</ul>
<p>While it may be possible to execute FreeDV on additional platforms
and distributions (especially ones similar to ones currently supported),
this is not guaranteed. Any bugfixes required for an unsupported
platform may be deferred or rejected, especially if there is impact to
supported platforms. Requests for official support of new platforms
should go through our existing <a
href="https://github.com/drowe67/freedv-gui/issues/new?template=feature_request.yml">Feature
Request process</a>.</p>
<h2 data-number="2.2" id="easy-setup"><span
class="header-section-number">2.2</span> Easy Setup</h2>
<p>Upon starting FreeDV for the first time, the Easy Setup dialog will
appear. This is a streamlined setup process for FreeDV optimized for
hardware commonly used by amateur radio operators and is divided into
three sections:</p>
<ol type="1">
<li>Sound card configuration,</li>
<li>CAT/PTT control, and</li>
<li>Reporting.</li>
</ol>
<p>These sections are shown below:</p>
<figure>
<img src="contrib/easy_setup.png" alt="Easy Setup dialog" />
<figcaption aria-hidden="true">Easy Setup dialog</figcaption>
</figure>
<p>Note that you can always return to this dialog by going to <em>Tools
- Easy Setup</em>.</p>
<h3 data-number="2.2.1" id="sound-card-configuration"><span
class="header-section-number">2.2.1</span> Sound Card Configuration</h3>
<p>To configure your sound card(s) using Easy Setup, simply select the
sound device associated with your radio and the microphone and speaker
devices you wish to use to hear decoded audio as well as to transmit
audio. If youre setting up a receive-only station, you can choose
“None” for the transmit audio device.</p>
<p>Additionally, if you are using a Flex 6000 series radio on the
Windows platform, FreeDV will automatically select the DAX TX sound
device. It is necessary only to select the correct “slice” for the radio
sound device and the two devices to use for analog receive and transmit
(e.g. your computers built in microphone and speaker devices).</p>
<p>Note that some configurations (for example, SDR setups involving
multiple radio sound devices) may not be able to be configured with Easy
Setup. For those, you can choose the “Advanced” button and proceed to
“Advanced Setup” below.</p>
<h3 data-number="2.2.2" id="catptt-control"><span
class="header-section-number">2.2.2</span> CAT/PTT control</h3>
<p>Easy Setup supports three methods of radio control:</p>
<ol type="1">
<li>No radio control (e.g. using a VOX audio device such as
SignaLink),</li>
<li>Hamlib or OmniRig CAT control, and</li>
<li>Serial port PTT control.</li>
</ol>
<p>Simply select the option that matches your radio setup and the
required fields will appear. For Hamlib, these are typically the type of
radio youre using as well as the serial port its connected to (or
TCP/IP hostname:port). Serial port PTT control requires the serial port
your radio is using as well as whether your radios PTT is triggered via
the RTS or DTR pin (and the required polarity for either).</p>
<p>If required, the “Advanced” button in this section will allow you to
configure PTT input (e.g. for a footswitch) and additional VOX related
options. The “Test” button will emit a constant carrier on the selected
radio sound device as well as enable PTT to allow you to adjust your
radio sound levels (see “Sound Card Levels” below).</p>
<h3 data-number="2.2.3" id="reporting"><span
class="header-section-number">2.2.3</span> Reporting</h3>
<p>While not required, it is recommended to enable reporting so that
others can see who is currently receiving them. This also allows the
FreeDV application to control the radios frequency and mode. Both sides
of a contact must have this enabled in order for contacts to be
reported. To configure reporting, simply enable the feature here and
enter your callsign and current grid square/locator.</p>
<p>For more information about the reporting feature, see the “FreeDV
Reporting” section below.</p>
<h2 data-number="2.3" id="advanced-setup"><span
class="header-section-number">2.3</span> Advanced Setup</h2>
<h3 data-number="2.3.1" id="sound-card-configuration-1"><span
class="header-section-number">2.3.1</span> Sound Card Configuration</h3>
<h4 data-number="2.3.1.1" id="receive-only-one-sound-card"><span
class="header-section-number">2.3.1.1</span> Receive Only (One Sound
Card)</h4>
<p>For this setup, you just need the basic sound hardware in your
computer, for example a microphone/speaker on your computer.</p>
<ol type="1">
<li>Open the <em>Tools - Audio Config</em> Dialog</li>
<li>At the bottom select <em>Receive</em> Tab</li>
<li>In <em>Input To Computer From Radio</em> select your default sound
input device (usually at the top)</li>
<li>In the <em>Output From Computer To Speaker/Headphones</em> window
select your default sound output device (usually at the top)</li>
<li>At the bottom select <em>Transmit</em> Tab</li>
<li>In <em>Input From Microphone To Computer</em> window select
<em>none</em></li>
<li>In <em>Output From Computer To Radio</em> window select
<em>none</em></li>
<li>Press OK to close the dialog</li>
</ol>
<p>When you press Start FreeDV will start decoding any incoming signals
on the microphone input, playing the decoded audio out of your speaker.
If no valid FreeDV signals are received, no audio will be played.</p>
<p>If you connect the microphone input on your computer to your radio
receiver, you can decode off air signals. If you have a rig interface,
try configuring that as the <em>From Radio To Computer</em> device, with
your computers sound card as the <em>From Computer To
Speaker/Headphone</em> device.</p>
<p>If you dont have anyone to transmit FreeDV signals to you, try the
test wave files in the next section.</p>
<h4 data-number="2.3.1.2" id="transmitreceive-two-sound-cards"><span
class="header-section-number">2.3.1.2</span> Transmit/Receive (Two Sound
Cards)</h4>
<p>For TX/RX operation you need to configure two sound cards, by setting
up Tools - Audio Config <em>Transmit</em> and <em>Receive</em> Tabs.</p>
<p>When receiving, FreeDV off-air signals <strong>from</strong> your
radio are decoded by your computer and sent <strong>to</strong> your
speaker/headphones, where you can listen to them.</p>
<p>When transmitting, FreeDV takes your voice <strong>from</strong> the
microphone, and encodes it to a FreeDV signal in you computer which is
sent <strong>to</strong> your radio for transmission over the air.</p>
<table>
<colgroup>
<col style="width: 14%" />
<col style="width: 42%" />
<col style="width: 42%" />
</colgroup>
<thead>
<tr class="header">
<th>Tab</th>
<th>Sound Device</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Receive Tab</td>
<td>Input To Computer From Radio</td>
<td>The off air FreeDV signal <strong>from</strong> your radio rig
interface to your computer</td>
</tr>
<tr class="even">
<td>Receive Tab</td>
<td>Output From Computer To Speaker/Headphones</td>
<td>The decoded audio from your computer to your Speaker/Headphones</td>
</tr>
<tr class="odd">
<td>Transmit Tab</td>
<td>Input From Microphone To Computer</td>
<td>Your voice from the microphone to your computer</td>
</tr>
<tr class="even">
<td>Transmit Tab</td>
<td>Output From Computer To Radio</td>
<td>The FreeDV signal from your computer sent <strong>to</strong> your
rig interface for TX</td>
</tr>
</tbody>
</table>
<h4 data-number="2.3.1.3" id="changing-audio-devices"><span
class="header-section-number">2.3.1.3</span> Changing Audio Devices</h4>
<p>If you change audio devices (e.g. add or remove sound cards, USB
hardware), its a good idea to check the Tools/Audio Config dialog
before pressing <strong>Start</strong>, to verify the audio devices are
as expected. This is particularly important if any audio devices
e.g. Headsets, USB Sound Cards, or Virtual Cables have been disconnected
since the last time FreeDV was used.</p>
<p>Hitting <strong>Refresh</strong> in the lower left hand corner of the
Tools/Audio Config will normally update the audio devices list. Keeping
a screen shot of a known working configuration will be useful for new
users. Unexpected audio configuration changes may also occur following a
Windows updates.</p>
<p>Another solution is to re-start FreeDV and check Tools/Audio Config
again after changing any audio hardware.</p>
<h3 data-number="2.3.2" id="catptt-configuration"><span
class="header-section-number">2.3.2</span> CAT/PTT Configuration</h3>
<p>The Tools-&gt;CAT and PTT Config dialog supports three different ways
to control PTT on your radio:</p>
<ul>
<li>VOX: sends a tone to the left channel of the Transmit/To Radio sound
card</li>
<li>Hamlib: support for many different radios via the Hamlib library and
a serial port (or via TCP/IP for some devices, e.g. SDRs or
FLrig/rigctld).</li>
<li>Serial Port: direct access to the serial port pins</li>
</ul>
<p>You may also optionally configure an additional serial port for PTT
input. This can be useful for interfacing devices like foot switches to
FreeDV. If configured, FreeDV will switch into transmit mode (including
sending the needed Hamlib or serial commands to initiate PTT) when it
detects the configured signal.</p>
<p>Once you have configured PTT, try the <strong>Test</strong>
button.</p>
<p>Serial PTT support is complex. We get many reports that FreeDV PTT
doesnt work on a particular radio, but may work fine with other
programs such as Fldigi. This is often a mismatch between the serial
parameters Hamlib is using with FreeDV and your radio. For example you
may have changed the default serial rate on your radio. Carefully check
the serial parameters on your radio match those used by FreeDV in the
PTT Dialog.</p>
<p>Also see <a href="#common-problems">Common Problems</a> section of
this manual.</p>
<h4 data-number="2.3.2.1" id="hamlib"><span
class="header-section-number">2.3.2.1</span> Hamlib</h4>
<p>Hamlib comes with a default serial rate for each radio. If your radio
has a different serial rate change the Serial Rate drop down box to
match your radio.</p>
<p>When <strong>Test</strong> is pressed, the “Serial Params” field is
populated and displayed. This will help track down any mismatches
between Hamlib and your radio.</p>
<p>If you are really stuck, download Hamlib and test your radios PTT
using the command line <code>rigctl</code> program.</p>
<h4 data-number="2.3.2.2" id="icom-radio-configuration"><span
class="header-section-number">2.3.2.2</span> Icom Radio
Configuration</h4>
<p>If using an Icom radio, Hamlib will use the radios default CI-V
address when connecting. If this has been changed, you can specify the
correct address in the “Radio Address” field (valid values are 00
through FF in hexadecimal).</p>
<p>Note that “00” is the “wildcard” CI-V address. Your radio must have
the “CI-V Transceive” option enabled in order for it to respond to
commands to that address. Otherwise, FreeDV must be configured to use
the same CI-V address as configured in the radio. For best results,
ensure that there are no other Icom/CI-V capable devices in the chain if
“00”/“CI-V Transceive” is used.</p>
<h4 data-number="2.3.2.3" id="changing-com-port-on-windows"><span
class="header-section-number">2.3.2.3</span> Changing COM Port On
Windows</h4>
<p>If you change the COM port of a USB-Serial device in Device Manager,
please unplug and plug back in the USB device. Windows/FreeDV wont
recognize the device on the new COM Port until it has been
unplugged/plugged.</p>
<h2 data-number="2.4" id="test-wave-files"><span
class="header-section-number">2.4</span> Test Wave Files</h2>
<p>In the installation are audio files containing off-air FreeDV modem
signals. There is one file per FreeDV mode and are in the following
locations depending on platform:</p>
<table>
<colgroup>
<col style="width: 13%" />
<col style="width: 86%" />
</colgroup>
<thead>
<tr class="header">
<th>Platform</th>
<th>Typical Location</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Windows</td>
<td>C:\Program Files\FreeDV [version]\share\freedv-gui\wav</td>
</tr>
<tr class="even">
<td>Linux</td>
<td>/usr/share/freedv-gui/wav or /usr/local/share/freedv-gui/wav</td>
</tr>
<tr class="odd">
<td>macOS</td>
<td>See https://github.com/drowe67/freedv-gui/tree/master/wav</td>
</tr>
</tbody>
</table>
<p>To play these files, first select a FreeDV mode and press Start. Then
choose a file using “Tools - Start/Stop Play File From Radio”. You
should then hear decoded FreeDV speech.</p>
<p>These files will give you a feel for what FreeDV signals sound like,
and for the basic operation of the FreeDV software.</p>
<h2 data-number="2.5" id="sound-card-levels"><span
class="header-section-number">2.5</span> Sound Card Levels</h2>
<p>Sound card levels are generally adjusted in the computers Control
Panel or Settings, or in some cases via controls on your rig interface
hardware or menus on your radio. In-app adjustments can also be done
using the <strong>TX Attenuation</strong> control on the right-hand side
of the main window. The <code>&lt;&lt;</code> and <code>&gt;&gt;</code>
buttons adjust by 1.0 dB and the <code>&lt;</code> and <code>&gt;</code>
buttons adjust by 0.2 dB; the mouse scroll wheel can also be used to
generate 0.2dB steps whilst hovering anywhere over the TX Attenuation
control area. Values below 0 dB attenuate the transmit signal.</p>
<p>When FreeDV is running, you can observe the sound card signals in the
main window tabs (From Radio, From Mic, To Speaker).</p>
<ol type="1">
<li><p>On receive, FreeDV is not very sensitive to the <strong>From
Radio</strong> level, adjust so it is mid-range and not clipping. FreeDV
uses phase shift keying (PSK) so is not sensitive to amplitude.</p></li>
<li><p>The transmit level from your computer to your radio is important.
On transmit, adjust your level so that the ALC is <strong>just</strong>
being nudged. More <strong>is not better</strong> with the FreeDV
transmit signal. Overdriving your transmitter will lead to a distorted
transmit signal, and a poor SNR at the receiver. This is a very common
problem.</p>
<p>Right-clicking on the <strong>TX Attenuation</strong> control top row
opens a context menu with the following options for the currently active
amateur band:</p>
<ul>
<li><strong>Enable auto-save of TX atten for [band]</strong> — saves the
current level for that band and enables automatic saving whenever the
band is left or the program is closed. The menu item changes to
<strong>Disable auto-save of TX atten for [band]</strong> once enabled,
which removes the saved value and stops auto-saving.</li>
<li><strong>Restore TX atten level for [band]</strong> — reverts the
attenuation to the last auto-saved value for that band, useful for
recovering a known good level after experimenting during a session.</li>
</ul>
<p>The <strong>Control</strong> panel (right-hand side) contains a
<strong>Tune</strong> button which outputs a continuous 1500 Hz carrier
for antenna matching, netting etc. While Tune is active the TX
Attenuation controls adjust the tune signal level rather than the normal
transmit level.</p>
<p>Right-clicking the Tune button opens a context menu with the
following options:</p>
<ul>
<li><strong>Set tune output to minimum (-30 dB)</strong> — immediately
sets the tune attenuation to its lowest output level without
transmitting, useful for safe low-power antenna tuner testing.</li>
<li>Per-band <strong>Enable/Disable auto-save</strong> and
<strong>Restore</strong> options, similar to those described above for
TX attenuation (shown only when a band is known).</li>
</ul>
<p>FreeDV will automatically detect band changes (via Hamlib or OmniRig
CAT, or manual frequency entry) and load any saved attenuation value for
the new band. When a band is left the current values for that band are
saved immediately.</p></li>
<li><p>FreeDV 700D and 700E can drive your transmitter at an average
power of 40% of its peak power rating. For example 40W RMS for a 100W
PEP radio. Make sure your transmitter can handle continuous power output
at these levels, and reduce the power if necessary.</p></li>
<li><p>Adjust the microphone audio so the peaks are not clipping, and
the average is about half the maximum.</p></li>
</ol>
<h2 data-number="2.6" id="audio-processing"><span
class="header-section-number">2.6</span> Audio Processing</h2>
<p>FreeDV likes a clean path through your radio. Turn all audio
processing <strong>OFF</strong> on transmit and receive:</p>
<ul>
<li><p>On receive, DSP noise reduction should be off.</p></li>
<li><p>On transmit, speech compression should be off.</p></li>
<li><p>Keep the receive audio path as “flat” as possible, no special
filters.</p></li>
<li><p>FreeDV will not work any better if you band pass filter the off
air received signals. It has its own, very tight filters in the
demodulator.</p></li>
</ul>
<h2 data-number="2.7" id="usb-or-lsb"><span
class="header-section-number">2.7</span> USB or LSB?</h2>
<p>FreeDV currently follows the same conventions for upper and lower
sideband as are used for amateur SSB. As an aid to this, FreeDV will
show the current mode on the bottom of the window upon pressing the
Start button if Hamlib is enabled and your radio supports retrieving
frequency and mode information over CAT. If your radio is using an
unexpected mode (e.g. LSB on 20 meters), it will display that mode on
the bottom of the window next to the Clear button in red letters. When a
session is not active, Hamlib isnt enabled, or if your radio doesnt
support retrieving frequency and mode over CAT, it will remain grayed
out with “unk” displaying instead of the mode (for “unknown”). ##
Transceiver Filters</p>
<p>For most FreeDV use, your radios receive and transmit filters should
be set to the widest possible (typically around 3 kHz). This allows easy
switching between analog mode as well as the various FreeDV modes. There
has not been any testing done to definitively confirm whether narrower
bandwidths help with reception of FreeDV. Additionally, FreeDV already
performs its own transmit filtering, so using additional narrow
filtering on the radio will likely have little benefit (again,
untested).</p>
<p>For reference, the channel widths of the currently supported modes
are below:</p>
<table>
<thead>
<tr class="header">
<th>Mode</th>
<th>Width (kHz)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>1600</td>
<td>1.125</td>
</tr>
<tr class="even">
<td>700D</td>
<td>1.000</td>
</tr>
<tr class="odd">
<td>700E</td>
<td>1.500</td>
</tr>
<tr class="even">
<td>RADEV1</td>
<td>1.500</td>
</tr>
</tbody>
</table>
<h1 data-number="3" id="voice-keyer"><span
class="header-section-number">3</span> Voice Keyer</h1>
<p>The Voice Keyer Button on the front page puts FreeDV and your radio
into transmit, reads a wave file of your voice to call CQ, and then
switches to receive to see if anyone is replying. If you press the space
bar or click the XMIT button, the voice keyer stops. If a signal with a
valid sync is received for a few seconds the voice keyer also stops.</p>
<p>The Audio tab inside Tools-Options can be used to select the wave
file, set the RX delay, and number of times the TX/RX cycle repeats.</p>
<p>Additional options are also available if you right-click on the Voice
Keyer button:</p>
<ul>
<li>“Use another voice keyer file”: Allows you to trigger the voice
keyer using a different file from the one configured in
Tools-&gt;Options.</li>
<li>“Record new voice keyer file”: Triggers transmit and records your
microphone audio to a file that you select. Pushing the Voice Keyer
button will stop recording.</li>
<li>“Monitor transmitted audio”: Allows monitoring of audio while
transmitting the voice keyer file. If enabled, a checkmark will appear
next to this option.</li>
</ul>
<h1 data-number="4" id="monitoring-tx-audio"><span
class="header-section-number">4</span> Monitoring TX Audio</h1>
<p>FreeDV has the ability to monitor transmit audio. This can be useful
for adjusting microphone filters when your radio is plugged into a dummy
load. To enable this, right-click on the XMIT button and choose “Monitor
transmitted audio”. A checkmark will appear next to this menu option
when enabled.</p>
<h1 data-number="5" id="quick-record"><span
class="header-section-number">5</span> Quick Record</h1>
<p>To quickly record incoming signals from the radio, a Record button
is provided in the main window. Clicking this button will create a file
beginning with the name “FreeDV_FromRadio” and containing the current
date and time. Clicking Record again will stop recording.</p>
<p>The Audio tab inside Tools-Options allows control of where these
recordings are saved. By default, this is inside the current users
Documents folder.</p>
<h1 data-number="6" id="multiple-configurations"><span
class="header-section-number">6</span> Multiple Configurations</h1>
<p>By default, FreeDV uses the following locations to store
configuration:</p>
<ul>
<li>Linux: $XDG_CONFIG_HOME/freedv/freedv.conf (see below)</li>
<li>macOS: ~/Library/Preferences/FreeDV Preferences</li>
<li>Windows: Registry (HKEY_CURRENT_USER\SOFTWARE\freedv)</li>
</ul>
<p>On Linux, XDG_CONFIG_HOME defaults to ~/.config if not explicitly
overridden. Note that if you are not running the AppImage, the behavior
is different if your distro does not include wxWidgets 3.3 or newer. In
those cases, the default configuration file location is ~/.freedv, which
is the same as in prior versions of FreeDV.</p>
<p>If youd like to store the configuration in another location (or
store multiple configurations), FreeDV accepts the -f (or config)
command line arguments to provide an alternate location. An absolute
path is recommended here; however, if only a relative path is provided,
it will be relative to the following locations:</p>
<ul>
<li>Linux: ~/</li>
<li>macOS: ~/Library/Preferences/</li>
<li>Windows: C:\Users\[username]\AppData\Roaming</li>
</ul>
<p>You can also save and restore different configuration files by using
the Tools-&gt;Export Configuration and Use Configuration menu items.
These menu options allow for switching of configurations without
restarting FreeDV. Note that restoring a configuration file does not
modify the default configuration. However, the last restored
configuration file will be loaded the next time FreeDV starts, unless
you choose Tools-&gt;Load Default Configuration or restore a different
configuration file.</p>
<h2 data-number="6.1"
id="executing-freedv-with-a-different-configuration-windows"><span
class="header-section-number">6.1</span> Executing FreeDV With a
Different Configuration (Windows)</h2>
<p>On Windows, you can create shortcuts to FreeDV with different file
names for the “-f” command line option as described above. To create a
shortcut, right-click on the Desktop or in File Explorer and choose
New-&gt;Shortcut. Click on Browse and navigate to one of the following
paths:</p>
<ul>
<li>C:\Program Files\FreeDV [version]\bin\freedv.exe</li>
<li>C:\Program Files (x86)\FreeDV [version]\bin\freedv.exe (if the 32
bit version is installed on a 64 bit machine)</li>
</ul>
<p>Click Next and give the shortcut a unique description (e.g. “FreeDV
IC-7300”). Then push Finish to create the shortcut.</p>
<p>Once the shortcut has been created, right-click it and choose
Properties. Find the Shortcut tab in the resulting dialog box and add
“-f” followed by the desired filename to the end of the text in the
Target field. Do not add any other quote marks.</p>
<p>For example, to use a file called IC7300.conf stored in the Hamradio
directory on the C drive the Target field should appear as follows:</p>
<p>“C:\Program Files\FreeDV [version]\bin\freedv.exe” -f
C:\Hamradio\IC7300.conf</p>
<h1 data-number="7" id="freedv-reporting"><span
class="header-section-number">7</span> FreeDV Reporting</h1>
<p>FreeDV has the ability to send FreeDV signal reports to various
online spotting services by enabling the option in Tools-Options (in the
Reporting tab) and specifying your callsign and Maidenhead grid square.
When enabled, this causes FreeDV to disable the free form <strong>Txt
Msg</strong> field and only transmit the <strong>Callsign</strong>
field. As this uses a different encoding format from the free-form text
field, both sides of the contact must have this enabled for the contact
to be reported.</p>
<p>FreeDV validates the received information before submitting a
position report. This is to ensure that FreeDV does not report invalid
callsigns to the service (e.g. ones that dont exist or that correspond
to real non-FreeDV users). However, if the reporting function is
disabled, all received text will display in the main window even if it
has errors.</p>
<p>The following services are currently supported and can be
individually enabled or disabled along with the reporting feature as a
whole:</p>
<ul>
<li><a href="https://pskreporter.info/">PSK Reporter</a> (using the
“FREEDV” mode)</li>
<li><a href="https://qso.freedv.org/">FreeDV Reporter</a> also
accessible via the Tools-&gt;FreeDV Reporter menu option.</li>
</ul>
<p>The frequency that FreeDV reports is set by changing the “Report
Frequency” drop down box in the main window. This is either in kilohertz
(kHz) or megahertz (MHz) (configurable by going to
Tools-&gt;Options-&gt;Rig Control and checking or unchecking “Frequency
entry in kHz”) and will turn red if the entered value is invalid. If
Hamlib support is also enabled, this frequency will automatically remain
in sync with the current VFO on the radio (i.e. if the frequency is
changed in the application, the radio will also change its frequency).
Double-clicking on users in the Tools-&gt;FreeDV Reporter window will
also cause this frequency to change to match the other user.</p>
<p><em>Note: in some setups (such as when using ALE), it is not
preferred to have the reporting frequency automatically be in sync with
the radio. For example, in the case of ALE, the radios frequency
changes multiple times per second while waiting for a contact, which is
faster than FreeDV can pull the latest from the radio (every five
seconds). This can be disabled by enabling “Manual Frequency Reporting”
in Tools-&gt;Options.</em></p>
<p>The FreeDV Reporter window includes a <strong>Message:</strong> field
that allows you to broadcast a short status message (such as your
location, antenna, or current activity) to other FreeDV Reporter users.
Type a message and click <strong>Send</strong> to broadcast it, or
<strong>Clear</strong> to remove the current message.</p>
<p><em>Note: messages are only broadcast when reporting is enabled in
Tools-&gt;Options-&gt;Reporting and the <strong>Reporting</strong>
toggle button in the main window is on.</em></p>
<p>Messages are not saved automatically. To save a message for later
reuse, right-click the <strong>Send</strong> button to open a context
menu with the following options:</p>
<ul>
<li><strong>Send and save message</strong> — broadcasts the message and
adds it to the saved list</li>
<li><strong>Only save message</strong> — adds the message to the saved
list without sending it</li>
</ul>
<p>Saved messages are kept in a drop-down list of up to 15 entries,
sorted alphabetically. Click the arrow on the <strong>Message:</strong>
field to view and select from saved messages. Right-clicking on any
entry in the list opens a context menu with options to:</p>
<ul>
<li><strong>Add</strong> a new message to the list</li>
<li><strong>Edit</strong> the selected message</li>
<li><strong>Delete</strong> the selected message from the list</li>
</ul>
<p>FreeDV will also show the callsigns of previously received signals.
To view those, click on the arrow next to the last received callsign at
the bottom of the window. These are in descending order by time of
receipt (i.e. the most recently received callsign will appear at the top
of the list).</p>
<h1 data-number="8" id="qso-logging"><span
class="header-section-number">8</span> QSO Logging</h1>
<p>FreeDV supports integration with external logging utilities that
support the WSJT-X logging protocol (for example, <a
href="https://github.com/ea4k/klog">KLog</a>. This can be enabled by
going to Tools-&gt;Options-&gt;Reporting and enabling the “Enable QSO
Logging” option. By default, it sends packets to “localhost” (127.0.0.1)
port 2237, but this can be changed if the logging computer is elsewhere
on the network.</p>
<p>Once FreeDV decodes a callsign, it will appear in the drop-down list
on the bottom of the main window. To log this contact (or any other
contact received by the application), simply choose that callsign from
the list and click the “Log QSO” button on the left side of the window.
You will then see a dialog box that will let you enter any additional
information about the contact. Upon clicking the OK button, this
information will be transmitted to your logging tool.</p>
<p>You can also log a contact if theyre using FreeDV Reporter. Simply
left-click on a row in the FreeDV Reporter window and then click on the
Log QSO button. This will autofill the callsign, grid square/locator and
frequency from the FreeDV Reporter servers in the dialog box.</p>
<p>The last selected logging source (either the FreeDV Reporter window
or the drop-down callsign list at the bottom of the main window) is used
for auto-filling of logging data. This is to avoid confusion (for
instance, if a row in the main window is selected but its intended to
log from FreeDV Reporter instead).</p>
<h1 data-number="9" id="time-out-timer-tot"><span
class="header-section-number">9</span> Time-Out Timer (TOT)</h1>
<p>FreeDV contains a built-in time-out timer (TOT) that prevents the
radio from transmitting for longer than the configured period. By
default, this is enabled and set to 180 seconds (3 minutes). Fifteen
seconds prior to the timeout firing, a window will appear along with a
beep in your configured speakers or headset to allow you to either reset
the timer or finish up your transmission.</p>
<p>If you desire a different timeout or want to disable the TOT, you can
do so by going to Tools-&gt;Options-&gt;Rig Control and changing the TOT
related options in that tab.</p>
<h1 data-number="10" id="freedv-modes"><span
class="header-section-number">10</span> FreeDV Modes</h1>
<p>The following table is a guide to the different modes, using analog
SSB and Skype as anchors for a rough guide to audio quality:</p>
<table>
<thead>
<tr class="header">
<th>Mode</th>
<th style="text-align: center;">Min SNR</th>
<th style="text-align: center;">Fading</th>
<th style="text-align: center;">Latency</th>
<th style="text-align: center;">Speech Bandwidth</th>
<th style="text-align: center;">Speech Quality</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>SSB</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">8/10</td>
<td style="text-align: center;">low</td>
<td style="text-align: center;">2600</td>
<td style="text-align: center;">5/10</td>
</tr>
<tr class="even">
<td>1600 (*)</td>
<td style="text-align: center;">4</td>
<td style="text-align: center;">3/10</td>
<td style="text-align: center;">low</td>
<td style="text-align: center;">4000</td>
<td style="text-align: center;">4/10</td>
</tr>
<tr class="odd">
<td>700D (*)</td>
<td style="text-align: center;">-2</td>
<td style="text-align: center;">4/10</td>
<td style="text-align: center;">high</td>
<td style="text-align: center;">4000</td>
<td style="text-align: center;">3/10</td>
</tr>
<tr class="even">
<td>700E (*)</td>
<td style="text-align: center;">1</td>
<td style="text-align: center;">7/10</td>
<td style="text-align: center;">medium</td>
<td style="text-align: center;">4000</td>
<td style="text-align: center;">3/10</td>
</tr>
<tr class="odd">
<td>RADEV1</td>
<td style="text-align: center;">-2</td>
<td style="text-align: center;">8/10</td>
<td style="text-align: center;">medium</td>
<td style="text-align: center;">8000</td>
<td style="text-align: center;">7/10</td>
</tr>
<tr class="even">
<td>Skype</td>
<td style="text-align: center;">-</td>
<td style="text-align: center;">-</td>
<td style="text-align: center;">medium</td>
<td style="text-align: center;">8000</td>
<td style="text-align: center;">8/10</td>
</tr>
</tbody>
</table>
<p>(Note: Modes denoted by (*) above are considered “legacy” modes.
These modes are hidden by default and RADEV1 automatically selected as
RADEV1s speech quality and resillence to band conditions are superior
to the other modes. However, usage of the legacy modes is still possible
by going to Tools-&gt;Options-&gt;Modem and selecting “Enable Legacy
Modes.)</p>
<p>The Min SNR is roughly the SNR where you cannot converse without
repeating yourself. The numbers above are on channels without fading
(AWGN channels like VHF radio). For fading channels the minimum SNR is a
few dB higher. The Fading column shows how robust the mode is to HF
Fading channels, higher is more robust.</p>
<p>The more advanced 700D and 2020 modes have a high latency due to the
use of large Forward Error Correction (FEC) codes. They buffer many
frames of speech, which combined with PC sound card buffering results in
end-to-end latencies of 1-2 seconds. They may take a few seconds to sync
at the start of an over, especially in fading channels.</p>
<h2 data-number="10.1" id="multiple-mode-support"><span
class="header-section-number">10.1</span> Multiple Mode Support</h2>
<p>FreeDV can simultaneously decode the following modes when selected
prior to pushing “Start”:</p>
<ul>
<li>700D</li>
<li>700E</li>
<li>1600</li>
</ul>
<p>In addition, FreeDV can allow the user to switch between the above
modes for transmit without having to push “Stop” first. These features
can be enabled by going to Tools-&gt;Options-&gt;Modem and checking the
“Simultaneously Decode All HF Modes” option. Note that this may consume
significant additional CPU resources, which can cause decode
problems.</p>
<p>By default, FreeDV will use as many threads/cores in parallel as
required to decode all supported HF modes. On some slower systems, it
may be necessary to enable the “Use single thread for multiple RX
operation” option as well. This results in FreeDV decoding each mode in
series and additionally short circuits the list of modes to be checked
when in sync.</p>
<p>Additionally, the squelch setting with simultaneous decode enabled is
relative to the mode that supports the weakest signals (currently 700D).
The squelch for other modes will be set to a value higher than the
slider (which is calculated by adding the difference between the “Min
SNR” of 700D and the mode in question; see “FreeDV Modes” below). For
example, the squelch for 700E when the squelch slider is set to -2.0
becomes 1.0dB. This is designed to reduce undesired pops and clicks due
to false decodes.</p>
<h2 data-number="10.2" id="freedv-700d"><span
class="header-section-number">10.2</span> FreeDV 700D</h2>
<p>In mid 2018 FreeDV 700D was released, with a new OFDM modem, powerful
Forward Error Correction (FEC) and optional interleaving. It uses the
same 700 bit/s speech codec as the deprecated 700C mode. It operates at
SNRs as low as -2dB, and has good HF channel performance. It is around
10dB better than FreeDV 1600 on fading channels, and is competitive with
SSB at low SNRs. The FEC provides some protection from urban HF
noise.</p>
<p>FreeDV 700D is sensitive to tuning. To obtain sync you must be within
+/- 60Hz of the transmit frequency. This is straightforward with modern
radios which are generally accurate to +/-1 Hz, but requires skill and
practice when used with older, VFO based radios.</p>
<h2 data-number="10.3" id="freedv-700e"><span
class="header-section-number">10.3</span> FreeDV 700E</h2>
<p>FreeDV 700E was developed in December 2020 using lessons learned from
on air operation of 700C and 700D. A variant of 700D, it uses a shorter
frame size (80ms) to reduce latency and sync time. It is optimized for
fast fading channels channels with up to 4Hz Doppler spread and 6ms
delay spread. FreeDV 7000E uses the same 700 bit/s codec as FreeDV 700D.
It requires about 3dB more power than 700D, but can operate reliably on
fast fading channels.</p>
<p>The 700E release also includes optional compression (clipping) of the
700D and 700E transmit waveforms to reduce the Peak to Average Power
Ratio to about 4dB. For example a 100W PEP transmitter can be driven to
about 40W RMS. This is an improvement of 6dB over previous releases of
FreeDV 700D. Before enabling the clipper make sure your transmitter is
capable of handling sustained high average power without damage.</p>
<p>Clipping can be enabled via Tools-Options.</p>
<p>On good channels with high SNR clipping may actually reduce the SNR
of the received signal. This is intentional - we are adding some
pre-distortion in order to increase the RMS power. Forward error
correction (FEC) will clean up any errors introduced by clipping, and on
poor channels the benefits of increased signal power outweigh the slight
reduction in SNR on good channels.</p>
<h2 data-number="10.4" id="freedv-radev1"><span
class="header-section-number">10.4</span> FreeDV RADEV1</h2>
<p>RADE is a new mode with state-of-the-art performance, it is a
contraction of Radio AutoencoDEr so-named because the modulation
encoding uses a Machine-Learning method where the modulation and
demodulation are achieved by training on a large number of speech
samples over a modelled radio channel with typical propagation
disturbances in phase and amplitude as found in HF radio. The speech is
synthesised using the FARGAN neural vocoder (Frame-wise Auto-Regressive
GAN) where GAN is a Generative Adversarial Network).</p>
<p>Unlike the previous FreeDV modes which all use QPSK modulation, the
RADEV1 modulation produces an analog phase-amplitude output without
defined constellation points. It has been chosen as it offers a
combination of high speech quality together with reduced RF bandwidth
and good resistance to fading and multipath HF radio channels.</p>
<p>When using RADEV1, the squelch settings in the main window are
ignored. Instead, FreeDV only passes decoded audio if its able to
synchronize with the incoming signal.</p>
<h1 data-number="11" id="tools-menu"><span
class="header-section-number">11</span> Tools Menu</h1>
<h2 data-number="11.1" id="tools---filter"><span
class="header-section-number">11.1</span> Tools - Filter</h2>
<p>This section describes features on Tools-Filter.</p>
<table>
<colgroup>
<col style="width: 26%" />
<col style="width: 73%" />
</colgroup>
<thead>
<tr class="header">
<th>Control</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Noise Suppression</td>
<td>Enable noise suppression, de-reverberation, AGC of mic signal using
the Speex pre-processor</td>
</tr>
<tr class="even">
<td>700D Auto EQ</td>
<td>Automatic equalization for FreeDV 700D/E Codec input audio</td>
</tr>
</tbody>
</table>
<p>Auto EQ (Automatic Equalization) adjusts the input speech spectrum to
best fit the speech codec. It can remove annoying bass artifacts and
make the codec speech easier to understand.</p>
<p>Bass/Mid/Treble (for both microphone and speaker) can also be
adjusted here, either with the arrow keys or your mouse. A graph
displaying the frequency response of the signal based on your current
settings will display in this window as well.</p>
<ul>
<li><a href="http://www.rowetel.com/?p=6778">Blog Post on Auto EQ Part
1</a></li>
<li><a href="http://www.rowetel.com/?p=6860">Blog Post on Auto EQ Part
2</a></li>
</ul>
<h2 data-number="11.2" id="tools---options"><span
class="header-section-number">11.2</span> Tools - Options</h2>
<h3 data-number="11.2.1" id="modem-options"><span
class="header-section-number">11.2.1</span> Modem Options</h3>
<table>
<colgroup>
<col style="width: 28%" />
<col style="width: 71%" />
</colgroup>
<thead>
<tr class="header">
<th>Control</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Clipping</td>
<td>Increases the average power. Ensure your transmitter can handle high
RMS powers before using!</td>
</tr>
<tr class="even">
<td>TX Band Pass Filter</td>
<td>Reduces TX spectrum bandwidth</td>
</tr>
</tbody>
</table>
<h1 data-number="12" id="helping-improve-freedv"><span
class="header-section-number">12</span> Helping Improve FreeDV</h1>
<p>If you have an interesting test case, for example:</p>
<ol type="1">
<li>FreeDV working poorly with a particular person or microphone.</li>
<li>Poor over the air performance on a fast fading channel.</li>
<li>Problems with sync on strong signals.</li>
<li>A comparison with SSB.</li>
</ol>
<p>Please send the developers an off air recording of the signal. FreeDV
can record files from your radio using Tools-Record File from Radio. A
recording of 30 to 60 seconds is most useful.</p>
<p>With a recording we can reproduce your exact problem. If we can
reproduce it we can fix it. Recordings are much more useful than
anecdotes or subjective reports like “FreeDV doesnt work”, “SSB is
better”, or “On 23 December it didnt work well on grid location XYZ”.
With subjective reports problems are impossible to reproduce, cannot be
fixed, and you are unlikely to get the attention of the developers.</p>
<h1 data-number="13" id="multiple-panes-in-gui-window"><span
class="header-section-number">13</span> Multiple Panes in GUI
window</h1>
<p>It is possible to have multiple panes opened within the GUI window
for example, to observe both the Waterfall and Spectrum Tabs. New panes
may be added above, below, left or right of existing panes.</p>
<p>A new visible pane is created by hovering the cursor over the
required Tab, click and hold the left mouse button and drag the Tab to
the required position and releasing the mouse button. If currently two
panes are stacked vertically a third pane may be added either beside
either pane or to the left/right of both panes. If the Tab is required
adjacent to both panes then it must be dragged to the left/right of the
junction of the existing Tabs.</p>
<p>As the Tab is dragged into position a faint blue/gray image will show
the position to be occupied by the pane. Panes may be relocated back to
the menu bar by a similar process.</p>
<p>Tabs can be resized as required by hovering the cursor over the
border and clicking and holding the left mouse button and dragging to
required size.</p>
<p>By default, the tab layout is not saved. However, by enabling
experimental features (see “Advanced/Developer Features”), experimental
support for saving and restoring the tab layout will be enabled. This
has not been well tested and may have hidden bugs or other issues.</p>
<figure>
<img src="contrib/multiple_panes.png" alt="Multiple Panes" />
<figcaption aria-hidden="true">Multiple Panes</figcaption>
</figure>
<h1 data-number="14" id="advanceddeveloper-features"><span
class="header-section-number">14</span> Advanced/Developer Features</h1>
<h2 data-number="14.1" id="stats-window"><span
class="header-section-number">14.1</span> Stats Window</h2>
<p>Located on the lower left hand side of the main screen.</p>
<table>
<thead>
<tr class="header">
<th>Term</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Bits</td>
<td>Number of bits demodulated</td>
</tr>
<tr class="even">
<td>Errs</td>
<td>Number of bit errors detected</td>
</tr>
<tr class="odd">
<td>Resyncs</td>
<td>Number of times the demodulator has resynced</td>
</tr>
<tr class="even">
<td>ClkOff</td>
<td>Estimated sample clock offset in parts per million</td>
</tr>
<tr class="odd">
<td>FreqOff</td>
<td>Estimated frequency offset in Hz</td>
</tr>
<tr class="even">
<td>Sync</td>
<td>Sync metric (OFDM modes like 700D/E)</td>
</tr>
<tr class="odd">
<td>Var</td>
<td>Speech encoder distortion for 700D (see Auto EQ)</td>
</tr>
</tbody>
</table>
<p>The sample clock offset is the estimated difference between the
modulator (TX) and demodulator (RX) sample clocks. For example if the
transmit station sound card is sampling at 44000 Hz and the receive
station sound card 44001 Hz, the sample clock offset would be
((44000-44001)/44000)*1E6 = 22.7 ppm.</p>
<h2 data-number="14.2" id="timing-delta-tab"><span
class="header-section-number">14.2</span> Timing Delta Tab</h2>
<p>This indicates the symbol timing estimate of the demodulator, in the
range of +/- 0.5 of a symbol. With off air signals this will have a
sawtooth appearance, as the demod tracks the modulator sample clock. The
steeper the slope, the greater the sample clock offset.</p>
<ul>
<li><a href="http://www.rowetel.com/?p=6041">FreeDV 1600 Sample Clock
Offset Bug</a></li>
<li><a href="http://www.rowetel.com/?p=2433">Testing a FDMDV
Modem</a></li>
</ul>
<h2 data-number="14.3" id="sound-card-debug"><span
class="header-section-number">14.3</span> Sound Card Debug</h2>
<p>These features were added for FreeDV 700D, to help diagnose sound
card issues during development.</p>
<h3 data-number="14.3.1" id="tools---options-dialog"><span
class="header-section-number">14.3.1</span> Tools - Options dialog:</h3>
<p>Debug FIFO and PortAudio counters: used for debugging audio problems
on 700D. During beta testing there were problems with break up in the
700D TX and RX audio on Windows.</p>
<p>The PortAudio counters (PortAudio1 and PortAudio2) should not
increment when running in TX or RX, as this indicates samples are being
lost by the sound driver which will lead to sync problems.</p>
<p>The Fifo counter outempty1 counter should not increment during TX, as
this indicates FreeDV is not supplying samples fast enough to the
PortAudio drivers. The results will be resyncs at the receiver.</p>
<p>Check these counters by pressing Start, then Reset them and observe
the counters for 30 seconds.</p>
<p>If the PortAudio counters are incrementing on receive try:</p>
<ol type="1">
<li><p>Adjusting framesPerBuffer; try 0, 128, 256, 512, 1024.</p></li>
<li><p>Shut down other applications that might be using audio, such as
Skype or your web browser.</p></li>
<li><p>A different sound card rate such as 44.1kHz instead of
48kHz.</p></li>
</ol>
<p>If the outempty1 counter is incrementing on transmit try increasing
the FifoSize.</p>
<p>The txThreadPriority checkbox reduces the priority of the main txRX
thread in FreeDV which may help the sound driver thread process
samples.</p>
<p>The txRXDumpTiming check box dumps timing information to a console
that is used for debugging the RX break up problem on 700D. Each number
is how many ms the txRXThread took to run.</p>
<p>The txRXDumpTiming check box dumps the number of samples free in the
TX FIFO sending samples to the TX. If this hits zero, your TX audio will
break up and the RX will lose sync. TX audio break up will also occur if
you see “outfifo1” being incremented on the “Fifo” line during TX. Try
increasing the FifoSize.</p>
<h2 data-number="14.4" id="full-duplex-testing-with-loopback"><span
class="header-section-number">14.4</span> Full Duplex Testing with
loopback</h2>
<p>Tools - Options - Half Duplex check box</p>
<p>FreeDV GUI can operate in full duplex mode which is useful for
development or listening to your own FreeDV signal as only one PC is
required. Normal operation is half duplex.</p>
<p>TX and RX signals can be looped back via an analog connection between
the sound cards.</p>
<p>On Linux, using the ALSA loopback module:</p>
<pre><code> $ sudo modprobe snd-aloop
$ ./freedv
In Tools - Audio Config - Receive Tab - From Radio select -&gt; Loopback: Loopback PCM (hw:1,0)
- Transmit Tab - To Radio select -&gt; Loopback: Loopback PCM (hw:1,1)</code></pre>
<h2 data-number="14.5" id="experimental-features"><span
class="header-section-number">14.5</span> Experimental Features</h2>
<p>Occasionally there are some features that may be unstable or
otherwise not ready to officially be released. To experiment with these
features, you can go to Tools-&gt;Options-&gt;Debugging and enable
“Enable Experimental Features”. Note that if you have problems after
enabling this setting, it is recommended to disable it again to verify
that an experimental feature is not causing trouble. (Additionally, if
youre able to confirm that an experimental feature is causing problems,
please file a bug report!)</p>
<h1 data-number="15" id="tips"><span
class="header-section-number">15</span> Tips</h1>
<ol type="1">
<li>The space bar can be used to toggle PTT.</li>
<li>For modes other than RADEV1, you can left click on the main window
to adjust tuning. The vertical red line on the frequency scale will show
the current center frequency and FreeDV will automatically track any
drift once it syncs.</li>
</ol>
<h1 data-number="16" id="common-problems"><span
class="header-section-number">16</span> Common Problems</h1>
<h2 data-number="16.1" id="freedv-sets-radio-to-wrong-mode"><span
class="header-section-number">16.1</span> FreeDV Sets Radio To Wrong
Mode</h2>
<p>By default, FreeDV attempts to set the radios mode to DIGU/USB-D (or
LSB equivalent for 40 meters and below). Some radios do not support data
modes and only have USB and LSB. For these, you can go to
Tools-&gt;Options-&gt;Rig Control and check the “Use USB/LSB instead of
DIGU/DIGL” option. This will cause FreeDV to use the standard USB and
LSB modes for rig control instead.</p>
<p>Note that for best results, your radio should have all processing
disabled if youre using the standard USB/LSB modes. This disabling of
processing typically takes place when using data mode.</p>
<h2 data-number="16.2" id="overdriving-transmit-level"><span
class="header-section-number">16.2</span> Overdriving Transmit
Level</h2>
<p>This is a very common problem for first time FreeDV users. Adjust
your transmit levels so the ALC is just being nudged. More power is not
better with FreeDV. An overdriven signal will have poor SNR at the
receiver. For FreeDV 700D/700E operation with the clipper, make sure
your transmitter can sustain high average power levels without damage
(e.g. 40W RMS on a 100W PEP radio).</p>
<h2 data-number="16.3"
id="i-cant-set-up-freedv-especially-the-sound-cards"><span
class="header-section-number">16.3</span> I cant set up FreeDV,
especially the Sound Cards</h2>
<p>This can be challenging the first time around:</p>
<ol type="1">
<li><p>Try a receive only (one audio card) set up first.</p></li>
<li><p>Ask someone who already runs FreeDV for help.</p></li>
<li><p>If you dont know anyone local, ask for help on the digital voice
mailing list. Be specific about the hardware you have and the exact
nature of your problem.</p></li>
</ol>
<h2 data-number="16.4"
id="hamlib-does-not-work-with-my-icom-radio"><span
class="header-section-number">16.4</span> Hamlib does not work with my
Icom radio</h2>
<p>The most common issue with Icom radios is that the CI-V address
configured in FreeDV does not match the address configured in the radio.
Ensure that the CI-V address in both FreeDV and on the radio are the
same. If “00” is used on the FreeDV side, ensure that the “CI-V
Transceive” option is enabled on the radio or else the radio will not
respond to requests directed to that address.</p>
<p>On newer radios (e.g. 7300, 7610), you may also need to set “CI-V USB
Echo Back” to ON as this may be set to OFF by default.</p>
<h2 data-number="16.5"
id="hamlib-seems-not-reliable-on-my-linux-machine"><span
class="header-section-number">16.5</span> Hamlib seems not reliable on
my Linux machine</h2>
<p>Some Linux distributions come with pre-installed software that may
try to use serial ports that your radio creates. You may have problems
initialising your radio or CAT control via hamlib may seem unreliable or
time out.</p>
<p><em>Brltty</em> is software that looks on serial ports for a Braille
device which will also upset CAT communication with your radio.
Typically this is seen as a timeout error windw from hamlib.</p>
<p>Stop BRLTTY as follows:</p>
<pre><code>sudo systemctl stop brltty-udev.service
sudo systemctl disable brltty.service
sudo systemctl mask brltty-udev.service</code></pre>
<p>BRLTTY is the most common cause of communication problems but its
also been reported that in some cases ModemManager can give trouble.</p>
<p><em>ModemManager</em> is on some Ubuntu based distributions and it
will try to reset a modem by sending AT commands which will upset your
radio.</p>
<p>Stop ModemManager as follows:</p>
<pre><code>sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
sudo systemctl mask ModemManager</code></pre>
<h2 data-number="16.6"
id="im-using-omnirig-and-have-problems-with-rig-control"><span
class="header-section-number">16.6</span> Im using OmniRig and have
problems with rig control</h2>
<p>If youre using OmniRig and have problems getting rig control to
work, please attempt to update the INI files for OmniRig. These can be
found by going <a href="https://dxatlas.com/Download.asp">here</a> and
clicking on the “INI files for OmniRig” link. There may also be a newer
OmniRig version available at that same link which could work better if
you are running an older version.</p>
<h2 data-number="16.7"
id="i-need-help-with-my-radio-or-rig-interface"><span
class="header-section-number">16.7</span> I need help with my radio or
rig interface</h2>
<p>There are many radios, many computers, and many sound cards. It is
impossible to test them all. Many radios have intricate menus with
custom settings. It is unreasonable to expect the authors of FreeDV to
have special knowledge of your exact hardware.</p>
<p>However someone may have worked through the same problem as you. Ask
on the digital voice mailing list.</p>
<h2 data-number="16.8" id="cant-hear-anything-on-receive"><span
class="header-section-number">16.8</span> Cant hear anything on
receive</h2>
<p>Many FreeDV modes will not play any audio if there is no valid
signal. You may also have squelch set too high. In some modes the
<strong>Analog</strong> button will let you hear the received signal
from the SSB radio.</p>
<p>Try the Test Wave Files above to get a feel for what a FreeDV signal
looks and sounds like.</p>
<h2 data-number="16.9" id="hearing-myself-whenever-i-transmit"><span
class="header-section-number">16.9</span> Hearing myself whenever I
transmit</h2>
<p>Verify audio device settings in FreeDV. If your audio settings are
correct, there are a few other possibilities:</p>
<ol type="1">
<li>If on Windows, make sure all audio effects are disabled on all
devices used with FreeDV.</li>
<li>Turn off TX monitoring (right-click on XMIT button and make sure
“Monitor transmitted audio” is unchecked).</li>
</ol>
<h2 data-number="16.10"
id="the-signal-is-strong-but-freedv-wont-get-sync-and-decode"><span
class="header-section-number">16.10</span> The signal is strong but
FreeDV wont get sync and decode</h2>
<p>Do you have the correct sideband? See USB or LSB section.</p>
<p>Is it a FreeDV signal? SSTV uses similar frequencies. To understand
what FreeDV sounds like, see the Test Wave Files section.</p>
<h2 data-number="16.11" id="trouble-getting-sync-with-700d"><span
class="header-section-number">16.11</span> Trouble getting Sync with
700D</h2>
<p>You need to be within +/- 60 Hz on the transmit signal. It helps if
both the TX and RX stations tune to known, exact frequencies such as
exactly 7.177MHz. On channels with fast fading sync may take a few
seconds.</p>
<h2 data-number="16.12"
id="ptt-doesnt-work.-it-works-with-fldigi-and-other-hamlib-applications."><span
class="header-section-number">16.12</span> PTT doesnt work. It works
with Fldigi and other Hamlib applications.</h2>
<p>Many people struggle with initial CAT control and PTT setup:</p>
<ol type="1">
<li><p>Read the “CAT/PTT Configuration” section above.</p></li>
<li><p>Try the “Test PTT” button inside Tools-&gt;CAT and PTT
Config.</p></li>
<li><p>Check your rig serial settings. Did you change them from defaults
for another program?</p></li>
<li><p>Linux version: do you have permissions for the serial port? Are
you a member of the <code>dialout</code> group?</p></li>
<li><p>Ask someone who already uses FreeDV to help.</p></li>
<li><p>Contact the digital voice mailing list. Be specific about your
hardware, what you have tried, and the exact nature of the
problem.</p></li>
</ol>
<h2 data-number="16.13"
id="im-on-windows-and-serial-port-ptt-doesnt-work-with-my-usb-to-serial-adapter."><span
class="header-section-number">16.13</span> Im on Windows and serial
port PTT doesnt work with my USB to serial adapter.</h2>
<p>Please verify that you are running the correct drivers for the USB to
serial adapter that youre using. Information and download links for the
drivers used by the most common devices can be found <a
href="https://www.miklor.com/COM/UV_Drivers.php">here</a>.</p>
<p>While it is preferred to use devices that use authorized/original
versions of the various USB to serial chipsets, it is possible to use
some cloned devices with older drivers. When doing this, you may also
need to force Windows to use an older version of a driver instead of
automatically updating the driver on reboot. See <a
href="https://wethegeek.com/how-to-disable-automatic-driver-updates-in-windows-10/">here</a>
for instructions on doing so in Windows 10. For Windows 8:</p>
<ol type="1">
<li>Search for “Change device” in the Windows 8 Start menu.</li>
<li>Click on where it says “Change device installation settings”.</li>
<li>Select the “No, let me choose what to do” option.</li>
<li>Check the “automatically get the device app” option, then click Save
changes to save the settings you just chose.</li>
</ol>
<h2 data-number="16.14"
id="i-installed-a-new-version-and-freedv-stopped-working"><span
class="header-section-number">16.14</span> I installed a new version and
FreeDV stopped working</h2>
<p>You may need to clean out the previous configuration. Try Tools -
Restore Defaults. Set up your sound cards again with Tools - Audio
Config.</p>
<h2 data-number="16.15" id="freedv-crashes-when-i-press-start"><span
class="header-section-number">16.15</span> FreeDV crashes when I press
Start</h2>
<p>Have you removed/changed USB audio devices? If you remove/change USB
audio devices without pressing Tools - Audio Config, FreeDV may crash.
See Changing Audio Devices above.</p>
<h2 data-number="16.16"
id="freedv-cant-be-opened-on-macos-because-the-developer-cannot-be-verified"><span
class="header-section-number">16.16</span> FreeDV cant be opened on
macOS because the developer cannot be verified</h2>
<p>From January 2020 Apple is enforcing notarization for all macOS
applications. While official releases of FreeDV are signed, other types
of builds may not be. This may result in a dialog box similar to the
below:</p>
<figure>
<img src="contrib/osx_notarization1.png" alt="Notarization Error" />
<figcaption aria-hidden="true">Notarization Error</figcaption>
</figure>
<p>(or on later releases of macOS) a message indicating that the FreeDV
binary is “corrupt”. To override the notarization requirement and
execute FreeDV, run the following from Terminal:</p>
<pre><code>xattr -d com.apple.quarantine FreeDV.app</code></pre>
<p>or</p>
<pre><code>xattr -d -r com.apple.quarantine FreeDV.app</code></pre>
<h2 data-number="16.17"
id="im-on-a-mac-and-my-preferred-audio-device-isnt-appearing"><span
class="header-section-number">16.17</span> Im on a Mac and my preferred
audio device isnt appearing</h2>
<p>macOS has a longstanding issue that prevents certain audio devices
from appearing. More info <a
href="http://www.w1hkj.com/files/fldigi/AppleAudioCodec.html">here</a>.</p>
<h2 data-number="16.18"
id="freedv-doesnt-preserve-window-positions-on-linux"><span
class="header-section-number">16.18</span> FreeDV doesnt preserve
window positions on Linux</h2>
<p>Many Linux distributions are switching away from X11 and towards a
new GUI system known as Wayland. Wayland explicitly does not support
window positioning by applications, instead leaving it to the users
compositor to control window positioning. You can force use of X11 via
the Xwayland compatibility layer by adding <code>GDK_BACKEND=x11</code>
to your environment to regain the ability to preserve window positioning
if desired.</p>
<h1 data-number="17" id="converting-this-document-to-pdf"><span
class="header-section-number">17</span> Converting this document to
PDF</h1>
<p>For the Linux inclined:</p>
<pre><code>$ pandoc USER_MANUAL.md -o USER_MANUAL.pdf &quot;-fmarkdown-implicit_figures -o&quot; \
--from=markdown -V geometry:margin=.4in --toc --highlight-style=espresso</code></pre>
<h1 data-number="18" id="glossary"><span
class="header-section-number">18</span> Glossary</h1>
<table>
<colgroup>
<col style="width: 7%" />
<col style="width: 93%" />
</colgroup>
<thead>
<tr class="header">
<th>Term</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>AWGN</td>
<td>Additive White Gaussian Noise - a channel with just noise and no
fading (like VHF)</td>
</tr>
<tr class="even">
<td>FEC</td>
<td>Forward Error Correction - extra bits to we send to protect the
speech codec bits</td>
</tr>
<tr class="odd">
<td>LDPC</td>
<td>Low Density Parity Check Codes - a family of powerful FEC codes</td>
</tr>
</tbody>
</table>
<h1 data-number="19" id="release-notes"><span
class="header-section-number">19</span> Release Notes</h1>
<h2 data-number="19.1" id="v2.4.1-tbd-2026"><span
class="header-section-number">19.1</span> V2.4.1 TBD 2026</h2>
<ol type="1">
<li>Bugfixes:
<ul>
<li>Add logic to prevent FIFO sizes that are too small to allow TX
thread to function. (PR #1474)</li>
<li>Fix RX/TX level-meter gauge contamination. (PR #1475) - thanks <span
class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Fix Hamlib-related build failure with Hamlib 5.0~git. (PR
#1477)</li>
<li>macOS: Fix dyld error on startup when enabling sanitizers in build.
(PR #1478)</li>
<li>Fix potential equalizer bug that could introduce corrupted audio.
(PR #1480)</li>
<li>Fix uninitialized value read during waterfall plot render. (PR
#1481)</li>
<li>Match std::atomic memory ordering to what each atomic actually
synchronises. (PR #1482)</li>
<li>Remove use of mutexes in audio path during callsign decode. (PR
#1486)</li>
</ul></li>
<li>Build system:
<ul>
<li>Windows versions are now built with llvm-mingw 20260908 (PR
#1489)</li>
</ul></li>
<li>Other:
<ul>
<li>Waterfall and other plot performance improvements. (PR #1481)</li>
<li>Windows audio thread timing improvements. (PR #1488)</li>
</ul></li>
</ol>
<h2 data-number="19.2" id="v2.4.0-august-2026"><span
class="header-section-number">19.2</span> V2.4.0 August 2026</h2>
<ol type="1">
<li>Bugfixes:
<ul>
<li>Hamlib: Allow two timeouts during connection process to allow Icom
marine radios to behave better. (PR #1369, #1388)</li>
<li>Rename sanitizers.h-&gt;freedv_sanitizers.h due to name conflicts.
(PR #1372)</li>
<li>Fix intermittent non-response to short PTT clicks to stop TX. (PR
#1375) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Revert to libsamplerate library to fix remaining audio quality
issues. (PR #1379)</li>
<li>Right-justify SNR column in FreeDV Reporter to improve appearance.
(PR #1387) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Hamlib: Set frequency again on mode changes. (PR #1395)</li>
<li>Consolidate EOO length calculation in freedv-backend to improve
callsign decode reliability. (PR #1402)</li>
<li>Hamlib: Switch off memory channel before setting frequency/mode. (PR
#1403) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Hamlib/OmniRig: Round received frequency to nearest 100 Hz. (PR
#1373)</li>
<li>Tighten remaining audio settings to improve audio drops. (PR
#1412)</li>
<li>Fix corruption of string config arrays containing commas. (PR #1417)
- thanks <span class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Suppress button flicker in Linux light themes. (PR #1419, PR #1421)
- thanks <span class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Only preserve previously selected tab on TX if its in the same
group as From Mic. (PR #1428)</li>
<li>Scalar plot label alignment fix for Y axis of Frm Decoder/Mic/Radio,
SNR and Spectrum plots. (PR #1429) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Fix window position restore under KWin and labwc (main window +
FreeDV Reporter window). (PR #1431, #1433, #1449, #1450) - thanks <span
class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Harden experimental tab layout persistence. (PR #1434) - thanks
<span class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Fix right-click context menus dismissing before they can be read
(GTK) (PR #1437) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Unconditionally add new station to Heard Station list if first
heard. (PR #1444)</li>
<li>Fix heard-stations callsign combo stuck-highlight, right-click
behaviour, and a stale-index crash (PR #1448) - thanks <span
class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Fix crash and long hang on main window close with an unresponsive
rig (PR #1452) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Fix Radio Frequency coloring on dark/light mode transition. (PR
#1453)</li>
<li>Fix FreeDV Reporter column-order corruption and Last TX column
width. (PR #1458) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Fix waterfall/spectrum filling solid colour during half-duplex TX.
(PR #1462) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Windows/macOS: Zero audio on startup. (PR #1463)</li>
<li>Fix issue causing TX thread to use more CPU time than expected with
no audio available. (PR #1465)</li>
</ul></li>
<li>Enhancements:
<ul>
<li>Add UDP broadcast of received callsigns. (PR #1367)</li>
<li>Add Time-Out Timer (TOT) capability to FreeDV. (PR #1366, #1398,
#1405) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Load last-used config file on restarts. (PR #1365, #1371)</li>
<li>Add “Set tune output to minimum” to Tune button context menu for
safety. (PR #1378) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Move Tune button into Control widget for improved usability. (PR
#1377) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Restore heard station list on launch. (PR #1358) - thanks <span
class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Add momentary PTT option to FreeDV. (PR #1393)</li>
<li>Allow 8k sample rate for radio devices. (PR #1416)</li>
<li>FreeDV Reporter: Connect to server via TLS by default. (PR #1422,
#1427)</li>
<li>Block special characters in recording file name suffixes and default
the voice keyer file selector to show .wav and .mp3. (PR #1424) - thanks
<span class="citation" data-cites="barjac">@barjac</span>!</li>
<li>Fix Voice Keyer/PTT context menu positioning under native Wayland.
(PR #1438) - thanks <span class="citation"
data-cites="barjac">@barjac</span>!</li>
<li>Automatically start decoding on FreeDV startup. (PR #1436)</li>
<li>Remove “Clip” indicator from main window to reduce confusion. (PR
#1461)</li>
</ul></li>
<li>Build system:
<ul>
<li>Clear CMake deprecation warnings in FreeDV. (PR #1383, #1386)</li>
<li>Upgrade Hamlib to 4.7.2. (PR #1413)</li>
<li>Update wxWidgets to 3.3.3. (PR #1439)</li>
<li>Require C++20 to build FreeDV. (PR #1440)</li>
<li>Enable LTO/PGO for macOS .app build. (PR #1456)</li>
<li>Enable PGO for Windows builds. (PR #1457)</li>
<li>Add support for CCache. (PR #1328)</li>
</ul></li>
<li>Other:
<ul>
<li>FlexRadio/KA9Q integrations moved to freedv-integrations repo. (PR
#1368)</li>
<li>Improve tab save/load behavior on systems with wxWidgets 3.3+. (PR
#1435)</li>
</ul></li>
</ol>
<h2 data-number="19.3" id="earlier-than-v2.3.0"><span
class="header-section-number">19.3</span> Earlier than V2.3.0</h2>
<p>See <a
href="https://github.com/drowe67/codec2/blob/master/CHANGELOG_OLD.md">this</a>
for more information about changes in versions prior to 2.3.0.</p>
<h1 data-number="20" id="references"><span
class="header-section-number">20</span> References</h1>
<ul>
<li><a href="http://freedv.org">FreeDV Web site</a></li>
<li><a
href="https://github.com/drowe67/codec2/blob/master/README_freedv.md">FreeDV
Technology Overview</a></li>
<li><a
href="https://groups.google.com/forum/#!forum/digitalvoice">Digitalvoice
mailing list</a></li>
</ul>