1430 lines
68 KiB
HTML
1430 lines
68 KiB
HTML
<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 you’re 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 computer’s 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 you’re using as well as the serial port it’s connected to (or
|
||
TCP/IP hostname:port). Serial port PTT control requires the serial port
|
||
your radio is using as well as whether your radio’s 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 radio’s 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 computer’s sound card as the <em>From Computer To
|
||
Speaker/Headphone</em> device.</p>
|
||
<p>If you don’t 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), it’s 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->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
|
||
doesn’t 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 radio’s 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 radio’s 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 won’t
|
||
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 computer’s 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><<</code> and <code>>></code>
|
||
buttons adjust by 1.0 dB and the <code><</code> and <code>></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 isn’t enabled, or if your radio doesn’t
|
||
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 radio’s 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->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 user’s
|
||
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 you’d 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->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->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->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 don’t 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->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->Options->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->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 radio’s 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->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->Options->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->Options->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 they’re 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 it’s 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->Options->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
|
||
RADEV1’s 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->Options->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->Options->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 it’s 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 doesn’t work”, “SSB is
|
||
better”, or “On 23 December it didn’t 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 -> Loopback: Loopback PCM (hw:1,0)
|
||
- Transmit Tab - To Radio select -> 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->Options->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
|
||
you’re 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 radio’s 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->Options->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 you’re 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 can’t 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 don’t 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 it’s
|
||
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> I’m using OmniRig and have
|
||
problems with rig control</h2>
|
||
<p>If you’re 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> Can’t 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 won’t 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 doesn’t 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->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> I’m on Windows and serial
|
||
port PTT doesn’t 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 you’re 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 can’t 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> I’m on a Mac and my preferred
|
||
audio device isn’t 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 doesn’t 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 user’s
|
||
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 "-fmarkdown-implicit_figures -o" \
|
||
--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->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 it’s 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>
|