AMATEUR RADIO • LINUX
Yaesu FT-710 Configuration Files for Linux
A working Linux configuration for stable CAT and audio
device names, Hamlib rig control, and Dire Wolf packet operation.
These are the configuration files and settings I use to
integrate my Yaesu FT-710 with a Linux amateur-radio station.
The goal is to give the radio predictable device names and
then use those names with Hamlib and Dire Wolf.
This is a working configuration, not a universal recipe.
These settings work with my current Ubuntu Linux installation
and hardware configuration. USB topology, sound-device
identification, software versions and radio settings can
differ between systems.
Use this as an example and adjust the device identifiers,
paths, ports and radio settings for your own installation.
I am not presenting this as the only way to configure an FT-710
under Linux. This is the way I have mine working. If you find
an error or a better way to accomplish something, I am always
interested in learning about it.
What We Are Configuring
There are three basic pieces to this configuration.
1
Stable USB Device Names
Linux normally assigns names such as
/dev/ttyUSB0. Those assignments can
change. udev rules give the radio predictable names
that applications can use.
2
Stable Audio Device Name
The FT-710 USB audio interface also needs a predictable
ALSA identifier so Dire Wolf does not depend on a
changing sound-card number.
3
Rig Control & Packet
Hamlib’s rigctld provides CAT/PTT control,
while Dire Wolf uses the radio’s USB audio interface
for packet operation.
→
udev / ALSA
→
rigctld
→
Dire Wolf
→
BPQ32 / Applications
STEP 1
Create Stable USB Serial Device Names
The first problem I wanted to eliminate was changing USB
serial-port names.
Rather than configure software against whatever
/dev/ttyUSBx name Linux happens to assign,
I create persistent symbolic names with udev.
My serial-device rules are stored in:
My file contains rules for several pieces of station equipment.
The two important FT-710 rules are:
SUBSYSTEM=="tty", KERNELS=="3-2.1:1.0", SYMLINK+="FT-710-CAT-1"
SUBSYSTEM=="tty", KERNELS=="3-2.1:1.1", SYMLINK+="FT-710-CAT-2"
This gives me two predictable device names:
/dev/FT-710-CAT-1
/dev/FT-710-CAT-2
Do not blindly copy the KERNELS values.
The values above describe where the FT-710 appears in
my USB topology. Your system may be different.
My Complete Serial udev File
For reference, this is the larger rule set I use for several
devices in the station:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", SYMLINK+="FT-840-CAT"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="FT-818-CAT"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", SYMLINK+="FT-150"
SUBSYSTEM=="tty", KERNELS=="3-2.1:1.0", SYMLINK+="FT-710-CAT-1"
SUBSYSTEM=="tty", KERNELS=="3-2.1:1.1", SYMLINK+="FT-710-CAT-2"
SUBSYSTEM=="tty", ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0002", SYMLINK+="UPS-APC1350"
After changing udev rules, reload them:
sudo udevadm control --reload-rules
sudo udevadm trigger
Then verify that the FT-710 links exist:
ls -l /dev/FT-710-CAT-*
STEP 2
Give the FT-710 Audio Interface a Stable ALSA Name
Serial ports are only half of the problem.
Dire Wolf also needs to know which Linux audio device belongs
to the FT-710. I do not want that configuration to depend on
the radio always being sound card 1, 2, 3 or some other number.
My audio naming rules are stored in:
SUBSYSTEM=="sound", KERNELS=="pci-0000:05:00.4-usb-0:1.3:1.0", ATTR{id}="HF_SL"
SUBSYSTEM=="sound", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0013", ATTR{id}="FT710"
The important result for this configuration is the ALSA
identifier:
That allows Dire Wolf to reference:
plughw:FT710,0
instead of depending on a numeric sound-card assignment.
Why bother doing this?
A configuration that works only because the radio happened
to become sound card 3 after boot is going to fail eventually.
Give the hardware a name and configure your applications
against the name.
STEP 3
Run Hamlib rigctld for the FT-710
I use Hamlib’s rigctld to provide network-accessible
rig control for the FT-710.
My service is:
[Unit]
Description=Hamlib rigctld for Yaesu FT-710
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/bin/rigctld -m 1049 -r /dev/FT-710-CAT-1 -t 4532 -s 38400 --set-conf=data_bits=8,stop_bits=1,serial_parity=None,serial_handshake=None -D NONE -vvv
ExecReload=/bin/kill -HUP $MAINPID
RestartSec=60
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
The important settings in my configuration are:
1049
/dev/FT-710-CAT-1
4532
38400
Enable the service so it starts automatically:
sudo systemctl enable rigctld-710.service
Then start it:
sudo systemctl start rigctld-710.service
Check its status:
systemctl status rigctld-710.service
If you are troubleshooting the service, follow its log with:
journalctl -u rigctld-710.service -f
STEP 4
Configure Dire Wolf
Once the serial and audio device names are predictable and
rigctld is running, Dire Wolf can use those
interfaces without depending on changing Linux device numbers.
My Dire Wolf configuration is based in:
The old version of this page included most of the entire
Dire Wolf configuration file. Most of that is stock documentation
and commented examples, so I have reduced it here to the settings
that actually describe my FT-710 configuration.
FT-710 Audio Device
ADEVICE1 plughw:FT710,0
FX25TX 1
ACHANNELS 2
Notice that the audio device uses the FT710
identifier created earlier rather than a numeric sound-card
number.
HF Packet Channel
CHANNEL 2
MODEM 300 900:1100 E
PTT RIG 2 localhost:4532
The PTT RIG line connects Dire Wolf’s PTT control
to the Hamlib rigctld service running on TCP
port 4532.
Virtual TNC Ports
AGWPORT 8205
KISSPORT 8100
These provide interfaces that other packet applications can
use to communicate with Dire Wolf.
Bit Error Repair
FIX_BITS 0
Other Dire Wolf Configuration
My complete Dire Wolf configuration also contains settings
for other radios and packet functions. Those settings are
station-specific and are not necessary to explain how the
FT-710 is connected.
In particular, my configuration has included VHF APRS/packet
and experimental HF packet sections in addition to the FT-710
channel.
APRS configuration
I do not handle the APRS configuration for this setup
directly in the FT-710 portion of Dire Wolf. APRS is
handled through my BPQ32 configuration.
This is why copying an entire direwolf.conf from
another station is usually not the best approach. Start with
the configuration supplied with Dire Wolf and add the pieces
required for your own radios and applications.
STEP 5
Start and Test the Configuration
I prefer testing each layer separately. If everything is
started at once and something fails, you have several possible
places to look.
Verify the USB Names
Make sure the persistent FT-710 serial-device names
were created correctly.
ls -l /dev/FT-710-CAT-*
Verify the ALSA Device
Confirm that Linux can see the FT-710 USB audio device.
aplay -l
arecord -l
Verify rigctld
Confirm that the Hamlib rig-control service is running.
systemctl status rigctld-710.service
Start Dire Wolf
Once the device names, audio interface and rig control
are working, start Dire Wolf.
sudo systemctl start direwolf
Watch the Dire Wolf Log
Follow the Dire Wolf service log while testing the
station so configuration or device errors are visible.
journalctl -u direwolf -f
Test one layer at a time.
First prove Linux can identify the radio. Then prove
rig control. Then prove audio. Then bring Dire Wolf
and the packet applications into the system.
Where I Would Look First When It Doesn’t Work
CAT Device Missing
Check whether the radio’s USB interfaces are present
and whether your udev rules match the actual hardware
and USB topology.
rigctld Won’t Start
Check the device path, permissions, serial speed,
Hamlib model number and the systemd journal.
No Audio in Dire Wolf
Verify the ALSA device name and make sure the FT-710
USB audio interface appears in the capture-device list.
Dire Wolf Can’t Key the Radio
Verify that rigctld is listening on port 4532 and that
the Dire Wolf PTT configuration points to the same port.
Configuration Summary
/etc/udev/rules.d/50-usb-serial.rules
/etc/udev/rules.d/99-my-audio-names.rules
/dev/FT-710-CAT-1
FT710
rigctld-710.service
4532
8205
8100
Why I Configure It This Way
The important part of this setup is not any one configuration
file. It is removing assumptions about which device number
Linux will assign after a reboot or hardware change.
Give the hardware predictable names first. Then configure
Hamlib, Dire Wolf and the rest of the station against those
names.
Test rig control.
Test audio.
Then start the applications.
This configuration works for my station, but amateur-radio
Linux configurations have a lot of moving pieces. If you find
an obvious error or have a cleaner solution, let me know.