You can find the companion video here: https://youtu.be/CABVvD_mOE8
Getting on FT8 with these older rigs is much harder than just tapping the "FT8" button and plugging in a USB cable. In this video I break it down step-by-step along with a TON of background information about how FT8 works and how to get the most out of the mode.
In particular, the Raspberry Pi's New OS: Trixie has complicated things even further with the way they've changed up the sound system. I've got a script for you in this post that gives you the answers you need to get to the bottom of this new mystery.
Let's get started with a fresh Pi install and the terminal:
sudo apt update
sudo apt install wsjtx -y
lxpanelctl-pi restart
These three commands will update the application repository database - the catalog of softare for your Pi - and collate all the dependencies, install WSJTX and refresh the "start" menu for us impatient types.
From there, we'll need to tell the PI to ignore the "media keys" - Hayden, VK7HH and I went through a lot of trouble to expose the GPIO pins present on the CM108 sound chip. These make it super easy to access them for your radio and tools like Allstar that need them... but they get in the way of things like a desktop environment. Those "media keys" are things like Volume Control, Start, Stop, Balance, etc - and we use one of them for PTT (push to talk) and another for COS (carrier operated squelch). I think its this COS signal that brings our Pi to a halt - the Pi thinks you're constantly pressing the volume down button, when in reality its the radio saying "squelch is open". Since we don't need the desktop environment to respond, and since this is Linux... we can turn it off like this:
#Create /etc/udev/hwdb.d/50-TOADsDI-ignore-media-keys.hwdb
sudo -i
cat >/etc/udev/hwdb.d/90-TOADsDI-ignore-media-keys.hwdb <<'HWDB'
# Silence CM108/CM119 media-key events but keep HID/GPIO available.
# Name-based match so it works across ports, event numbers, and many clones.
evdev:name:*C-Media*USB*Sound*Device*:*
KEYBOARD_KEY_c00ea=reserved # Volume Down
KEYBOARD_KEY_c00e9=reserved # Volume Up
KEYBOARD_KEY_c00e2=reserved # Mute (some variants)
# Some clones report different names—add a couple safe fallbacks:
evdev:name:*USB*PnP*Sound*Device*:*
KEYBOARD_KEY_c00ea=reserved
KEYBOARD_KEY_c00e9=reserved
KEYBOARD_KEY_c00e2=reserved
evdev:name:*USB*Audio*Device*:*
KEYBOARD_KEY_c00ea=reserved
KEYBOARD_KEY_c00e9=reserved
KEYBOARD_KEY_c00e2=reserved
HWDB
# Rebuild the hwdb
systemd-hwdb update
# Re-apply to input devices and print a quick status
udevadm trigger -s input
# Stop being Root
exit
Be sure to copy from the "cat" command all the way to the last of the "HWDB" (in all caps) line. This is the "heredoc" I explain in the video... neat trick for multi-line copy/paste!
Now that we've tamed the desktop environment to our liking, we can use that same heredoc trick to create a script that will ferret out the new sound card device name for WSJTX under Trixie and run it:
cat >toads-audio-helper.sh<<'TOADS'
#!/usr/bin/env bash
set -e
card_block=$(arecord -l 2>/dev/null | awk '
/card [0-9]+:/ {line=$0}
/USB Audio/ {print line ORS $0; exit}
')
if [ -z "$card_block" ]; then
echo "No 'USB Audio' capture device found in arecord -l output."
echo "Is the CM108 plugged in and recognized?"
exit 1
fi
card_num=$(grep -oE 'card [0-9]+' <<< "$card_block" | awk '{print $2}')
card_id=$(grep -oE 'card [0-9]+: [^ ]+' <<< "$card_block" | awk -F': ' '{print $2}')
out_sys="sysdefault:CARD=${card_id}"
out_sys=$(echo "$out_sys" | head -n 1)
out_plug="plughw:CARD=${card_id},DEV=0"
in_hw="hw:${card_num},0"
in_plug="plughw:CARD=${card_id},DEV=0"
echo "Detected USB audio capture device!"
echo
echo "Use this device in WSJT-X → Settings → Audio:"
echo " ${out_sys}"
echo
TOADS
bash toads-audio-helper.sh
Same thing this time too - copy from "cat" to "TOADS" as one command, then run it. This will tell you the audio device. Mine was called "sysdefault:CARD:device" - simple, right?
Let's get the radio all setup with its fun menu settings, yay Yaesu!
Shallow F Menu Settings:
AGC = Off
Deep F Menu Settings:
| Menu Number | Name | FT8 Setting | Your Setting |
| 1 | EXT MENU | ON | |
| 36 | DIG DISP | 0Hz | |
| 37 | DIG GAIN | Start @ 50, Check ALC | |
| 38 | DIG MODE | USER-U | |
| 39 | DIG SHIFT | 0hz | |
| 40 | DIG VOX | 0 | |
| 45 | DSP BPF WIDTH | 240hz | |
| 46 | DSP HPF CUTOFF | 100Hz | |
| 47 | DSP LPF CUTOFF | 6000Hz | |
| 48 | DSP MIC EQ | OFF | |
| 49 | DSP NR LEVEL | 1 | |
| 59 | MIC SEL | NOR | |
| 74 | PROC LEVEL | 0 | |
| 75 | RF POWER SET | (Set for heat control) | |
| 80 | SQL/RF GAIN | RF GAIN |
For reference, here are the parts I used to build and test out my station for this video:
Today's Station:
👉 Yaesu FT-857D (Used): https://geni.us/JMtH7q
👉 TOADs Digital Interface: https://temporarilyoffline.com
👉 TOADs DI6 6-Pin Daughter Board: https://temporarilyoffline.com
👉 Raspberry Pi 5: https://geni.us/l0w2hPy
👉 Raspberry Pi 5 Case: https://geni.us/3cmIdT
👉 SD Card: https://geni.us/udB0kKB
👉 Yaesu 8-Pin Cat Cable: https://geni.us/31RrSB
👉 Mini Din 6 Cable: https://geni.us/mKzF
👉 Toroids for RFI: https://geni.us/AVbIA
👉 Ham Radio Crusader TOADs Shell: http://hamradiolife.org/
👉 ATU 100: https://geni.us/EkazAV
👉 Carbon Fiber Antenna: https://geni.us/MtFjQm
Here are some links that I mentioned in the video as well.
Links:
👉 WSJT-X: https://wsjt.sourceforge.io/wsjtx.html
👉 Time Tester: https://time.is
👉 Maidenhead Grid Square Lookup: https://www.levinecentral.com/ham/grid_square.php
👉 Map Signal Reporting: pskreporter.info
0 comments