Clockwork uConsole · Volume 10

Ham Radio and Digital Modes

WSJT-X, fldigi, JS8Call, pat / Winlink, hamlib, APRS, WSPR — and the portable HF station they fit into

Contents

SectionTopic
1About this Volume
2Ham Radio Licensing Primer
· 2.1Why a licence
· 2.2U.S. — Technician, General, Extra
· 2.3UK — Foundation, Intermediate, Full
· 2.4CEPT and reciprocal arrangements
· 2.5The fastest path to licensed
3The Band Landscape
· 3.1HF — propagation and modes
· 3.2VHF and UHF — local + repeater + digital
· 3.3Sub-GHz ISM — APRS, Meshtastic, LoRa
· 3.4Mode-vs-band cheat table
4The Audio-Interface Story
· 4.1Why a separate audio interface
· 4.2Tigertronics SignaLink USB
· 4.3Digirig Mobile
· 4.4DIY USB audio + isolation
· 4.5PTT control paths
5WSJT-X
· 5.1Install and configure
· 5.2The mode lineup — FT8, FT4, JT65, Q65, FST4
· 5.3Operating workflow
· 5.4WSJT-X on the uConsole — performance
· 5.5Auto-sequencing and logging integration
6fldigi
· 6.1Why fldigi (vs WSJT-X)
· 6.2Modes — RTTY, PSK31, MFSK, Olivia, Contestia
· 6.3Configure for the uConsole’s audio path
· 6.4Hellschreiber and other oddities
7JS8Call
· 7.1What it is
· 7.2Install and basic operation
· 7.3Store-and-forward messaging
8pat / Winlink
· 8.1HF email — the use case
· 8.2Install pat
· 8.3Connect to a Winlink RMS
· 8.4Forms and templates
9hamlib and rigctl
· 9.1Why CAT control matters
· 9.2Common radios — Yaesu, Icom, Kenwood, Elecraft
· 9.3rigctld daemon mode
· 9.4Integration with WSJT-X / fldigi / pat
10CW — Morse Code
· 10.1Why CW still matters
· 10.2Decoders — fldigi CW mode, cwdecoder, MultiPSK
· 10.3Encoder — keyer software, paddle interfacing
· 10.4Practice tools
11APRS — AFSK and LoRa
· 11.1APRS over AFSK on VHF
· 11.2direwolf software TNC
· 11.3LoRa-APRS
· 11.4Position beaconing and digipeating
12WSPR Beacon Operation
· 12.1What WSPR is
· 12.2WSJT-X in WSPR mode
· 12.3Reading propagation from wsprnet.org
13HF Antenna Realities
· 13.1The space problem
· 13.2End-fed half wave (EFHW)
· 13.3Random wire + 9:1 unun
· 13.4Magnetic loop
· 13.5Vertical
· 13.6The portable / POTA antenna kit
14CW Key / Paddle Interfacing
15The Portable HF Station Loadout
16Logging and QSL
· 16.1CQRLOG and KLog
· 16.2Log upload — LoTW, eQSL, QRZ, Club Log
· 16.3Backup strategy
17Vol 12 Cheatsheet Updates
18Resources
19Footnotes
20Index

1. About this Volume

Volume 9 covered software-defined radio — receive-only signal capture, decode, and analysis. This volume covers the next step: amateur radio. Where SDR is observation, ham is conversation. The uConsole pairs naturally with a small QRP rig, an audio-isolation interface, a wire antenna, and a tuner — to make a portable HF station that fits in a small backpack and runs for a weekend off batteries.

The reader of this volume is assumed to either hold or be working toward an amateur radio licence, or to be operating in an emergency-communications context where a licensed amateur is supervising. The U.S. Technician class licence (and equivalent in other jurisdictions — see §2) is the prerequisite for transmitting on amateur bands. Receive-only is generally legal without a licence (see Vol 9 §2), but most of this volume’s value is on the transmit side.

The uConsole is a remarkably good portable ham station. Not because it’s a powerful computer (it isn’t, by desktop standards) but because the form factor matches the workload: an SDR or rig + audio interface + screen + battery + keyboard add up to a self-contained station. WSJT-X workflows fit comfortably; the screen is big enough for the waterfall and the message log; the keyboard handles call-sign entry without a stand.

2. Ham Radio Licensing Primer

2.1 Why a licence

Amateur radio bands are reserved by international treaty (ITU radio regulations) for licensed operators. The licence is your authorisation to transmit on those bands. Without it, you can listen but not transmit; with it, you may operate within the band-specific power and mode limits.

The exam structure varies by country, but the basic structure is consistent: you demonstrate competence in radio theory, operating practice, and (depending on country) regulations. Pass the exam, get a callsign — your unique radio identifier — and a licence valid for ~10 years.

The exam is not hard. Anyone capable of reading a Volume 9 schematic comfortably can pass the highest U.S. licence class (Amateur Extra) with a weekend of focused study.

2.2 U.S. — Technician, General, Extra

ClassQuestion pool sizeExam questionsPassing scorePrivileges
Technician~4003526 of 35All VHF/UHF; limited HF (10m phone, some CW)
General~4503526 of 35All VHF/UHF; most HF voice + digital
Amateur Extra~7005037 of 50All amateur frequencies + privileges

Exam fee: $35 (FCC), plus $15 testing-session fee for the VEC. Scheduled by Volunteer Examiner Coordinators (ARRL, W5YI, GLAARG); search “amateur radio exam near me.” Most VECs let you take all three exams in one sitting if you pass each in sequence.

Study materials:

  • HamStudy.org — free flashcard-style practice; the question pools are public, so the practice exam is exactly the same questions as the real exam.
  • ARRL Ham Radio License Manual (book) — narrative-format study guide. Available from https://home.arrl.org/.
  • Ham Radio Crash Course (YouTube) — Josh Nass produces excellent free study videos.

Study time estimate: Technician 10-15 hours, General another 15-20, Extra another 25-30. A determined weekend gets you Tech + General; Extra is another weekend.

2.3 UK — Foundation, Intermediate, Full

LevelExam structurePrivileges
Foundation26-question multiple-choice + practicalLimited HF/VHF/UHF; 10W max output
Intermediate45-question multiple-choice + practicalMore bands; 50W max output
Full60-question multiple-choiceAll bands; 400W max

Exam fee: typically £35-50 per level, run by RSGB (https://rsgb.org/). Books and online courses available; “Foundation Now!” and “Intermediate Now!” are the standard self-study texts.

2.4 CEPT and reciprocal arrangements

The European CEPT T/R 61-01 and 61-02 recommendations let licensed amateurs operate temporarily in other CEPT countries without applying for a separate licence. The U.S. is a CEPT participant via FCC; UK Full licence has CEPT privileges; most EU countries reciprocate.

Practical impact for travel: if you’re a U.S. General licensee with a passport-stamped CEPT certificate, you can operate from a French campsite using your U.S. callsign with the prefix F/ added (e.g., F/W1ABC). Same for UK, Japan, Australia, etc., with country-specific reciprocal arrangements.

For specific countries: check the IARU’s reciprocal-licensing database. Always carry a copy of your home licence and the CEPT recommendation document.

2.5 The fastest path to licensed

If you want to be transmitting from your uConsole this month:

  1. Sign up at HamStudy.org.
  2. Click “Technician” study mode.
  3. Drill flashcards 30-60 min/day for 1-2 weeks.
  4. Take 5+ practice exams; aim for 90% before scheduling the real one.
  5. Schedule via https://hamstudy.org/sessions — many sessions are now remote (Zoom-proctored).
  6. Take the exam (~45 minutes). Pass.
  7. Wait 10-14 days for the FCC to issue your callsign.
  8. Once issued, you’re licensed. Transmit.

Total time: ~3 weeks from “I should get licensed” to “transmitting.”

For Tech + General + Extra in one sitting, the timeline is similar, with proportionally more study.

3. The Band Landscape

3.1 HF — propagation and modes

High Frequency (HF) is roughly 3-30 MHz. The amateur HF allocations:

BandFrequencyPropagationModes commonly heard
160m1.8-2.0 MHzNight-time DX; high noise daytimeCW, SSB, FT8
80m3.5-4.0 MHzRegional ground-wave; night-time skipSSB (lower band CW), FT8, RTTY
60m5.3-5.4 MHzChannelised; small allocation; quietUSB voice, CW
40m7.0-7.3 MHzDay + night; reliable regionalCW, SSB, FT8 (the workhorse band)
30m10.1-10.15 MHzDay; quiet (CW + digital only — no voice)CW, FT8, RTTY
20m14.0-14.35 MHzDay; the global DX bandCW, SSB, FT8 (the contest workhorse)
17m18.07-18.17 MHzDay; quiet alternative to 20mCW, SSB, FT8
15m21.0-21.45 MHzDay; great when sunspot count is highCW, SSB, FT8
12m24.89-24.99 MHzDay; small allocationCW, SSB, FT8
10m28.0-29.7 MHzDay; high-sunspot DX; FM repeaters availableCW, SSB, FT8, FM

HF propagation depends on the ionosphere, which depends on the solar cycle. At solar max (every ~11 years), 10m is full of DX; at solar min, 80m is the main night-time band. Real-time propagation: VOACAP forecasts (https://www.voacap.com/), DX cluster spots (https://www.dxcluster.com/).

3.2 VHF and UHF — local + repeater + digital

BandFrequencyPropagationCommon modes
6m50-54 MHzSporadic-E DXSSB, CW, FT8 (when “open”); FM
2m144-148 MHzLine-of-sight + scatterFM repeaters, simplex, SSB, CW, digital APRS
1.25m222-225 MHzLine-of-sightFM (some repeaters)
70cm420-450 MHzLine-of-sightFM repeaters, DMR, D-STAR, P25, Yaesu Fusion
33cm902-928 MHzLine-of-sightLess-used; LoRa-APRS sometimes here
23cm1240-1300 MHzLine-of-sightATV, microwave experimentation

VHF/UHF is for local communication. 2m and 70cm are the two everyday bands — repeaters in every metro area provide regional coverage; simplex on 146.52 MHz (2m) or 446.0 MHz (70cm) is the “calling frequency.”

Digital voice modes — DMR, D-STAR, Yaesu Fusion (YSF) — work on 2m / 70cm with appropriate radios; bridge to internet-connected reflectors via the BrandMeister or YSFReflector network.

3.3 Sub-GHz ISM — APRS, Meshtastic, LoRa

The 433/868/915 MHz ISM bands are not amateur-licensed bands but allow unlicensed low-power use. Used by:

  • Meshtastic (915 MHz US, 868 MHz EU) — covered in Vol 9 §10.
  • LoRa-APRS (433 MHz primarily) — APRS over LoRa instead of AFSK.
  • Weather stations (915 MHz US) — many consumer weather stations here.

A licensed amateur can also operate on 33cm (902-928 MHz US) for amateur experimentation; this overlaps with ISM but uses different rules (amateur-band rules apply when using your callsign, ISM rules apply when not).

3.4 Mode-vs-band cheat table

ModeBest bandsNotes
FT8 / FT4 (digital)40m, 20m, 15m, 10mWeak-signal; works at low power
SSB voice40m, 20mThe “phone” mode of HF
CW (Morse)All HF + VHFLowest power; cuts through QRM
RTTY20m, 40mContest favourite
PSK3120m, 40m, 80mKeyboard-to-keyboard chat
WSPRAll HF + VHFBeacon-only; propagation analysis
FM voice2m, 70cm, 10mLocal + repeaters
DMR / Fusion / D-STAR2m, 70cmDigital voice; repeater-network linked
APRS over AFSK2m (144.39 US)Position + messaging
LoRa-APRS433 MHz (mainly)Lower power, longer range than AFSK
Meshtastic915/868 MHzMesh; cross-ref Vol 9 §10

4. The Audio-Interface Story

The uConsole’s audio path matters here because most digital modes use audio in/out to the radio. The realities:

4.1 Why a separate audio interface

Volume 6 §8 covers the uConsole’s PWM-audio reality: 11-bit effective, 50 dB SNR, 16-18 kHz frequency response. Adequate for system sounds; barely adequate for some digital modes; not adequate for serious WSJT-X operation. The PWM-audio’s clock isn’t tightly locked to the audio sample rate, so timing drift accumulates over a 15-second FT8 transmission window — you’ll hear and decode fine, but transmitted FT8 sequences can drift slightly.

A dedicated USB sound card solves this. Bonus: most ham audio interfaces also include PTT control over USB (so the same cable handles audio TX/RX and the radio key/unkey signal).

The classic ham audio interface. ~$100-130 from tigertronics.com or DX Engineering.

FeatureDetail
Audio I/OStereo 24-bit USB sound card
Sample rate48 kHz
IsolationAudio transformers + opto-isolated PTT
PTT methodVOX-style (auto-keys when audio TX) or external trigger
Radio compatibilityCables for ~200 different radios (separate purchase)
PowerUSB-bus powered

For the uConsole, the SignaLink’s USB connection works directly. Audio routing in ALSA / PipeWire treats the SignaLink as a separate audio device — set WSJT-X / fldigi to use it for both input and output.

4.3 Digirig Mobile

A newer, smaller interface from digirig.net — ~$50-70.

FeatureDetail
Audio I/OStereo 16-bit USB sound card
Sample rate48 kHz
IsolationGalvanic via USB; PTT via CAT or VOX
PTT methodRTS over CAT, or VOX
Radio compatibilityMany cables available; smaller pinout
PowerUSB-bus powered
Form factorPocket-sized (much smaller than SignaLink)

For portability — POTA, SOTA, field operations — the Digirig Mobile is the right answer. Same audio quality as SignaLink at half the size and half the price.

4.4 DIY USB audio + isolation

For pennies of parts, a DIY interface:

  • Generic USB audio adapter (CM108 chipset; ~$5 from Amazon).
  • 600:600 audio isolation transformer (~$3 from DigiKey).
  • Opto-isolated PTT circuit (4N25 + transistor, ~$2).
  • DB-9 or radio-specific connector to your rig.

Schematics on the K1FZY website and various ham forums. Total parts cost: under $20. Audio quality competitive with SignaLink. The downside: assembly + debugging, no warranty, no nice case.

4.5 PTT control paths

PTT methodHow it worksUse cases
VOX (voice-operated)Audio above threshold keys the radioSimple; sometimes too aggressive
RTS over CAT serialSoftware flips RTS line; cable wires it to PTTReliable; needs CAT cable
DTR over CAT serialSame but using DTRSame
GPIO via Pi headerUse a uConsole GPIO + opto-isolatorDIY-friendly; Vol 6 §8 audio path
Hardware PTT buttonPhysical button keys radioBackup / emergency

Most users go RTS-over-CAT. Hamlib (§9) handles the protocol details.

5. WSJT-X

WSJT-X1 is the dominant weak-signal digital mode application. FT8 alone now accounts for an enormous fraction of all amateur radio QSOs — it’s effectively the modern entry point to HF DX.

5.1 Install and configure

sudo apt install -y wsjtx
wsjtx &

First-run setup wizard: enter your callsign, grid square (Maidenhead locator — find via https://www.levinecentral.com/ham/grid_square.php), audio device (set to your SignaLink / Digirig USB sound card), CAT control settings (radio model, serial port, baud rate).

Memory: ~250 MB at idle. Workable on 2 GB CM4; comfortable on 4 GB+.

5.2 The mode lineup — FT8, FT4, JT65, Q65, FST4

ModeSymbol periodSequence lengthUse case
FT80.16 s15 sWeak-signal HF DX; the dominant mode
FT40.05 s7.5 sFaster than FT8; contest variant
JT90.58 s60 sOlder; still occasionally used
JT650.37 s60 sOlder; some EME (moonbounce) operation
Q65varies15-300 sEME and meteor scatter
FST4varies15-1800 sLong-period beacon-style for very weak signals
FST4Wvaries120-1800 sWSPR-like beacon variant of FST4
MSK1440.0016 s15 sMeteor scatter VHF
WSPR0.68 s110 sBeacon-only (covered separately in §12)

For the uConsole user: stick to FT8 / FT4 unless you have a specific reason. Both modes work in less-than-marginal conditions; “less than marginal” means signals so weak you can’t hear them in your headphones but the decoder finds them.

5.3 Operating workflow

A typical FT8 QSO sequence:

  1. Tune to a band that’s “open” (DX cluster, FT8 activity from your QTH).
  2. WSJT-X tunes the band — typically 7.074 MHz (40m), 14.074 (20m), 21.074 (15m), 28.074 (10m).
  3. Wait for the 15-second cycle. WSJT-X displays decoded callsigns from the previous cycle.
  4. Click a CQ — WSJT-X auto-fills your reply.
  5. Click the green “Enable Tx” button. WSJT-X transmits at the next 15-second slot.
  6. Wait for the response. If acked, exchange continues.
  7. Click the “Log QSO” button when complete. Logs to ADIF format.

Total QSO time: ~90 seconds for an FT8 contact. Very fast. You can run dozens of contacts per hour during a band opening.

5.4 WSJT-X on the uConsole — performance

A WSJT-X decode of an FT8 cycle uses ~5 seconds of one core. The CM4 handles this fine; you can even run a second instance for FT4 on a different band (different SDR) if you have the audio routes set up.

CPU use during WSJT-X operation:

  • Receive (decoding only): ~25% of one core, average.
  • Transmit (encoding + audio): ~10% of one core during 15s window, idle otherwise.
  • Spectrum waterfall: ~15% of one core continuously.

Total typical: 40-50% of one of four cores. Comfortable.

5.5 Auto-sequencing and logging integration

WSJT-X’s “Auto Seq” toggle (top-right) auto-clicks through a QSO sequence — you call CQ, someone replies, WSJT-X automatically sends the signal report, the 73, and logs the contact. Useful for high-rate operating during contests or band openings.

For logging integration:

  • Direct ADIF export — WSJT-X writes wsjtx_log.adi after every logged QSO.
  • Auto-import to CQRLOG / KLog — set the logger’s “watch ADIF” feature.
  • Auto-upload to LoTW / eQSL / QRZ / Club Log — covered in §16.

6. fldigi

fldigi is the older mainstay digital-mode application — predates WSJT-X, supports a much wider variety of modes, and has a different operational philosophy: keyboard-to-keyboard real-time chat rather than fixed-message contest exchange.

6.1 Why fldigi (vs WSJT-X)

Use casefldigiWSJT-X
FT8 / weak-signal DX(no)
Real-time keyboard chat (PSK31, MFSK)(limited)
RTTY contest(limited)
Olivia / Contestia (low-S/N text)(no)
Hellschreiber(no)
Net operations (formal traffic)(no)
Macro-driven contest exchange(different)

For “I want to have a free-form text conversation with a stranger in Bulgaria over 20m PSK31,” fldigi is the answer.

6.2 Modes — RTTY, PSK31, MFSK, Olivia, Contestia

ModeSpeedBandwidthRobustnessNotes
RTTY45 baud250 HzMediumClassic; loud “diddle” sound
PSK3131 baud31 HzHighTiny bandwidth; many in one slice
MFSK1615 baud316 HzVery highTolerates fades better than PSK
Olivia 8/250varies250-1000 HzExtremely highDecodes below the noise floor
Contestiavaries250 HzHighFaster Olivia variant
Hellschreiber122 baud122 HzMediumVisual-text mode (you read the dits)

For everyday HF chat: PSK31 on 20m or 40m. For weak-signal text: Olivia 8/250.

6.3 Configure for the uConsole’s audio path

sudo apt install -y fldigi
fldigi &

# First-run wizard:
# - Callsign + name + grid
# - Audio: Set "Capture" + "Playback" devices to your SignaLink / Digirig
# - PTT: RTS-over-CAT; specify the serial port your interface uses
# - Save settings

Memory: ~150 MB. Lighter than WSJT-X.

6.4 Hellschreiber and other oddities

Hellschreiber is visual — the receiver “draws” characters as bitmap pixels rather than decoding text per se. Useful in extreme noise; you read what the screen draws. fldigi supports it natively.

Other oddities fldigi handles: Slow-Scan TV (SSTV) for image transmission, NBEMS digital messaging for ARES/RACES emergency operations.

7. JS8Call

JS8Call is the conversational FT8-derivative — the protocol is FT8-like (15-second slots, low signal) but messages are variable-length and store-and-forward.

7.1 What it is

JS8Call is for “keyboard-to-keyboard” conversation at FT8 signal levels. Where FT8 transmits fixed-format messages (CQ + reply + signal report + 73), JS8 lets you type a sentence and have it delivered to a specific other station — possibly through a chain of intermediate stations (store-and-forward).

7.2 Install and basic operation

# Pre-built deb available from js8call.com:
wget https://files.js8call.com/2.2.0/js8call_2.2.0_arm64.deb
sudo dpkg -i js8call_2.2.0_arm64.deb

js8call &

UI is similar to WSJT-X. Configure callsign, audio, CAT control. Then:

  • Type a message.
  • Address it to a specific callsign.
  • Send.
  • Receive station decodes during their 15-second window; replies if the operator is there.

7.3 Store-and-forward messaging

JS8 supports SF (Store-and-Forward) — your message is relayed through other JS8 stations to reach a destination that may not be in your propagation. Useful for:

  • Out-of-band emergency messages.
  • Reaching a station behind a propagation barrier.
  • Asynchronous communication (“send and check back in an hour”).

Configuration: enable “Allow forwarding” in JS8Call settings; the protocol handles the routing.

8. pat / Winlink

pat2 is a modern Linux Winlink client. Winlink is a global radio-email system — you compose an email on your radio, transmit to a nearby Winlink RMS (Radio Mail Server), and the email is delivered via internet to any standard email address. Designed for emergency communications when normal infrastructure is unavailable.

8.1 HF email — the use case

Why this matters for the uConsole:

  • Off-grid email — backcountry, disaster zones, ocean transits.
  • ARES / RACES / SATERN — emergency-communications volunteer networks rely on this.
  • POTA / SOTA delivery confirmation — log your activation via radio email.

8.2 Install pat

# Install from the binary release:
wget https://github.com/la5nta/pat/releases/latest/download/pat_linux_arm64.deb
sudo dpkg -i pat_linux_arm64.deb

# First-time configuration:
pat configure
# Edit ~/.config/pat/config.json to set your callsign, password, locator

pat supports several connection methods:

MethodUse case
winmorLegacy HF protocol — deprecated
ardopModern HF protocol; works with QRP signals
pactorCommercial protocol; needs SCS modem; fast
vara HFModern; fast; common; needs varahf Wine app
varahf-fmVHF version of VARA
telnetInternet-tunnel for testing without RF

For a uConsole + portable HF rig: ARDOP (open-source) or VARA (closed-source but widely used). VARA needs Wine to run; ARDOP runs natively.

# Install ARDOP:
sudo apt install -y ardop
ardopcf &

# Connect:
pat connect ardop:///W1AW

8.4 Forms and templates

Winlink supports HTML form templates for ARES/RACES message types — ICS-213 incident-reporting forms, SHARES situation reports, etc. Templates auto-fill from radio location, time, callsign.

Browse templates from pat’s web UI:

pat http &
xdg-open http://localhost:8080

9. hamlib and rigctl

hamlib is the radio control library — a uniform API across hundreds of radio models. Almost every Linux ham application uses hamlib internally for CAT (Computer Aided Transceiver) control.

9.1 Why CAT control matters

Without CAT, your software has to be told manually where the radio is tuned. With CAT, the software:

  • Auto-tunes to the band selected in WSJT-X / fldigi.
  • Auto-keys the PTT (no VOX needed).
  • Reads signal-strength meters back from the radio.
  • Logs frequency in your QSO log.
  • Coordinates split-frequency operation (TX on one frequency, RX on another).

Without CAT, you can still operate, but with constant manual intervention.

9.2 Common radios — Yaesu, Icom, Kenwood, Elecraft

ManufacturerCommon modelsCAT protocol
YaesuFT-991A, FT-DX10, FTDX101, FT-857Yaesu CAT (binary)
IcomIC-7300, IC-705, IC-7610, IC-7100CI-V (Icom proprietary)
KenwoodTS-590S/G, TS-890, TS-2000Kenwood ASCII commands
ElecraftK3, K3S, KX2, KX3Elecraft K-series ASCII
Xiegu (QRP)G90, G106, X6100Yaesu-derived
FlexRadio6400/6600/6700SmartSDR API + hamlib

For the uConsole portable loadout, the QRP rigs (Xiegu G90, IC-705, Elecraft KX2) are the natural choices — covered in §15.

9.3 rigctld daemon mode

sudo apt install -y libhamlib-utils

# Find your radio's hamlib model number:
rigctl --list | grep -i "icom 7300"
# Output: 3073  Icom IC-7300

# Start rigctld as a daemon:
rigctld -m 3073 -r /dev/ttyUSB0 -s 19200 -t 4532 &

# rigctld now listens on TCP port 4532; clients can connect:
rigctl -m 2 -r 127.0.0.1:4532 f
# Returns the current frequency

9.4 Integration with WSJT-X / fldigi / pat

In each application’s settings:

  • WSJT-X: Settings → Radio → “Hamlib NET rigctl” → 127.0.0.1:4532.
  • fldigi: Configure → Rig Control → flrig (or NetRigCtl) → port 4532.
  • pat: in ~/.config/pat/config.json, set "hamlib_rigs" array with the rigctld endpoint.

This gives every app the same view of the radio — you change frequency in WSJT-X, fldigi sees it; you key the PTT in fldigi, WSJT-X knows you’re TX-ing.

10. CW — Morse Code

Morse code is the oldest digital mode. Still actively used. Lowest-bandwidth weak-signal mode — nothing decodes through QRM as well as a good CW operator’s brain.

10.1 Why CW still matters

  • Lowest bandwidth — 50 Hz vs SSB’s 2400 Hz. More signals in less spectrum.
  • Best weak-signal performance — beats most digital modes when conditions are bad.
  • Low-power operation — 5 watts and a wire on 40m CW reaches across continents during a band opening.
  • Tradition + community — CW operators are a tight community with their own etiquette (FISTS, SKCC, NAQCC).
  • Required for some awards — DXCC CW endorsement, WAS CW endorsement, etc.

10.2 Decoders — fldigi CW mode, cwdecoder, MultiPSK

For receiving CW without learning Morse:

  • fldigi CW mode — built-in. Set the mode dropdown to “CW”; tune to a CW signal; fldigi displays decoded text.
  • cwdecoder (CLI): pipe audio in, get decoded text out.
  • MultiPSK (Wine): Windows app; runs OK in Wine; broader CW decoder.

Decoder accuracy: modest. CW is easier to copy by ear once you’ve learned it (humans handle QRN/QSB better than algorithms). For light CW operation, the decoders are useful crutches.

10.3 Encoder — keyer software, paddle interfacing

For sending CW:

  • fldigi has a built-in keyer that types-from-keyboard.
  • K3NG keyer (Arduino-based, but software port exists for Linux) — full-featured iambic keyer with memories, contest macros.
  • xcwcp — KDE Morse training tool; also has a TX function.

For paddle interfacing (real CW operating with a physical paddle), see §14.

10.4 Practice tools

  • G4FON Morse Trainer (Windows, runs in Wine) — Koch-method trainer, very good.
  • xcwcp — Linux-native trainer.
  • Morse Mania (Android) — companion phone app.
  • LCWO.net — web-based Morse trainer; works in any browser.

Goal: 13 WPM (words per minute) for casual CW operation; 20+ WPM for contesting; 30+ WPM is the realm of dedicated CW ops.

11. APRS — AFSK and LoRa

APRS (Automatic Packet Reporting System) is a position-reporting + messaging protocol over packet radio. Two main paths: classic AFSK over VHF (typically 2m), or the newer LoRa-APRS over 433 MHz.

11.1 APRS over AFSK on VHF

Classic APRS:

  • 1200 baud AFSK (Audio FSK) on 144.39 MHz (US) / 144.80 (EU).
  • Packets contain GPS position, message, weather, telemetry.
  • Digipeaters relay packets within range.
  • Internet gateways (igate) bridge to the global APRS-IS network — your local packet appears on aprs.fi and other web maps.

For TX on AFSK APRS: a 2m/70cm radio + a TNC (Terminal Node Controller). The TNC modulates audio for TX and demodulates for RX. Hardware TNCs (TNC-Pi, MFJ-1270) work; software TNCs (direwolf, §11.2) work too and are cheaper.

11.2 direwolf software TNC

direwolf is the dominant Linux software TNC.

sudo apt install -y direwolf

# Configure direwolf.conf with your callsign + audio device:
mkdir -p ~/.config/direwolf
cp /usr/share/doc/direwolf/examples/direwolf.conf ~/.config/direwolf/

# Edit:
# MYCALL N0CALL → your call
# ADEVICE plughw:1,0 → your USB audio interface

# Run:
direwolf -c ~/.config/direwolf/direwolf.conf

direwolf:

  • Decodes AFSK from your radio’s audio output.
  • Encodes AFSK from network packets, sends to radio’s audio input.
  • Acts as a KISS-protocol TNC over TCP port 8001.

Once running, applications connect to localhost:8001 as a virtual TNC.

11.3 LoRa-APRS

A modern alternative — APRS packets sent via LoRa modulation on 433 MHz instead of AFSK on 144.39 MHz. Advantages:

  • Lower power for same range.
  • Smaller, cheaper hardware (LilyGO TBeam ~$30 vs a 2m radio).
  • Battery life much longer than VHF.

The AIO V2’s SX1262 (Vol 7 §5.1) can run LoRa-APRS firmware. For dedicated LoRa-APRS handhelds, LilyGO TBeam boards are popular.

11.4 Position beaconing and digipeating

A simple AFSK APRS beacon — direwolf config:

MYCALL N0CALL-9
PBEACON delay=1 every=10 symbol="car" lat=42.3601N long=71.0589W comment="Boston portable"

That broadcasts your position every 10 minutes with a “car” symbol on the APRS map. Your packets appear on aprs.fi.

For digipeating (relaying others’ packets), enable:

DIGIPEAT 0 0 ^WIDE[12]-[12]$ ^WIDE1-1$ FIRST

Be careful with digipeat config in dense areas — uncontrolled digipeating clogs the channel. Only enable if your QTH adds geographic coverage.

12. WSPR Beacon Operation

WSPR (Weak Signal Propagation Reporter) is a beacon-only mode used to map propagation conditions. You transmit a tiny callsign + power-class + grid-square at very low power; receivers around the world spot you and upload to wsprnet.org.

12.1 What WSPR is

  • 2-minute transmit cycle (110 seconds of TX, 50 seconds of silence).
  • 6 Hz bandwidth.
  • 1.4666 baud (very slow).
  • Decodes signals at -28 dB SNR (well below noise floor).
  • Designed to characterise propagation, not exchange information.

12.2 WSJT-X in WSPR mode

WSJT-X has a WSPR mode built in. Switch to it; configure to transmit at 14.0956 MHz (20m) at low power (1 watt or less); enable TX every 10-15 minutes.

Mode: WSPR
TX freq: 14.0956 MHz
TX power: 1 watt
TX cycles: 1 in 5 (TX 20% of cycles, RX 80%)

Run for 24 hours. Visit wsprnet.org/drupal/wsprnet/spotquery and search for your callsign — you’ll see a heat map of where in the world your signal was received.

12.3 Reading propagation from wsprnet.org

wsprnet.org aggregates global WSPR spots. For your callsign, you can:

  • See exactly which receivers heard you (their location, signal-to-noise ratio).
  • Plot your spots on a map.
  • Track propagation over time (great-circle distance vs SNR vs time of day).
  • Export as CSV.

This is the empirical answer to “is the band open?” Rather than guessing, your WSPR beacon reports back.

13. HF Antenna Realities

The uConsole + a small QRP rig + a wire antenna is the canonical portable HF station. Antenna choice is the variable that most affects on-air results.

13.1 The space problem

HF wavelengths are long. 80m (3.5 MHz) wavelength is 80 metres; a half-wave dipole is 40 metres — won’t fit on most balconies. 40m is half that — still 20 metres for a dipole. For portable operation, you trade size for compromise.

13.2 End-fed half wave (EFHW)

Most popular portable antenna. A wire cut to a half-wavelength on your lowest band (typically 40m at 20m long) with a 49:1 unun matching transformer at the feedpoint.

ProCon
Single feed point — no balanced feedlineNeeds ~20m of wire
Multi-band on harmonics (40m, 20m, 15m, 10m)Counterpoise behaviour varies
Easy to deploy (toss into a tree)Some matching-loss on non-resonant bands

Recommended units: MyAntennas EFHW-8010, packtenna 4010 mini.

13.3 Random wire + 9:1 unun

Even simpler: any random length of wire (10-30m) into a 9:1 unun, then through an antenna tuner.

ProCon
Truly any wire lengthAlways needs antenna tuner
Multi-bandLess efficient than tuned antenna
Cheap (DIY unun under $10)Works less well on lowest bands

For the truly portable POTA backpack, this is light and cheap.

13.4 Magnetic loop

Small, compact magnetic loop antennas (Alex Loop, Chameleon F-Loop) work in ~1m² of space.

ProCon
Tiny footprintNarrow bandwidth — needs constant retuning
Indoor friendlyLow efficiency on lower bands
Quick deployExpensive (~$300-700)

Useful for hotel-room operation, balcony QTHs, or apartment dwellers.

13.5 Vertical

Quarter-wave or half-wave verticals on a tripod. Buddipole, Buddistick, Wolf River Coils.

ProCon
Great DX (low-angle radiation)Needs counterpoise / radials
Compact when collapsedHeavier than wire
Multi-band with adjustable coilsMore complex to set up

Typical for SOTA / POTA from open ground (parks, mountaintops).

13.6 The portable / POTA antenna kit

For a POTA-grade portable kit fitting in a small bag:

  • Primary antenna: 40m EFHW (multi-band 40-10).
  • Backup: random wire + 9:1 unun + tuner.
  • 20m of paracord for hoisting into trees.
  • Tent-stake-style ground spike for vertical / tripod work.
  • Counterpoise wires (4-8 quarter-wave wires for 20m).
  • Lightweight coax (RG-174 or LMR-100; 5-8m).
  • Antenna analyser (Nano VNA) for tuning.

Total weight: ~1.5 kg. Fits in a day-pack alongside the uConsole + rig.

14. CW Key / Paddle Interfacing

For CW operation with a physical key or paddle:

  • Direct key: a single button between key contacts and a TIP-RING-SLEEVE (TRS) jack. Wire the dit-side and dah-side to the radio’s KEY input. Most radios use 3.5mm TRS.

  • Paddle (iambic): two contacts (left = dit, right = dah). Wire to a 3.5mm TRS or TRRS into the radio. The radio’s internal keyer (or external keyer) handles iambic timing.

For the uConsole-driven keyer (rather than radio-driven):

  • A USB CW keyer (Begali Adventure, K1EL Winkeyer USB) presents as a USB serial device. Use cwdaemon or fldigi’s CW mode to drive it.
  • DIY: a USB-to-serial cable with the DTR line wired through an opto-isolator to the radio’s KEY input. Software toggles DTR; radio keys.

Recommended starter paddle: Bencher BY-1 ($120). Recommended single key: any straight key from your local ham swap-meet ($20).

15. The Portable HF Station Loadout

The complete portable station — fits in a day-pack:

ItemWhy
uConsole + AIO V2Computer + RTC + GPS for log timestamps
Pi OS Trixie + WSJT-X / fldigi / pat / direwolfSoftware stack (Vol 5 §3, Vol 6 §11)
Xiegu G90 / IC-705 / Elecraft KX2QRP HF rig (5-20W; G90 is cheapest)
LDG Z11Pro tuner (or rig has built-in tuner)Match wire antenna to 50Ω
Digirig Mobile or SignaLink USBAudio interface
40m EFHW antenna + 49:1 ununMulti-band wire antenna
20m paracord + arborist throwline weightAntenna deployment
5m RG-174 coax patchRig to antenna
3S 18650 battery pack (5000 mAh)Power for the rig (separate from uConsole battery)
USB-C power bank for uConsoleExtends uConsole runtime
Bencher BY-1 paddle (or compact iambic)CW key
GPS antenna patch cable + small whipIf AIO V2 GPS isn’t enough
Small notebook + penManual log backup
HeadphonesAudio in noisy environments

Total weight: ~3 kg with batteries. Fits in a 25L day-pack.

Setup time at site: ~10 minutes for first-pass operation.

16. Logging and QSL

Every contact logged. Logging tools:

16.1 CQRLOG and KLog

LoggerProsCons
CQRLOGMature; many contest features; LoTW + eQSL uploadLinux only; UI feels dated
KLogCross-platform; modern UI; active developmentNewer; smaller feature set than CQRLOG
cloudlogWeb-based; multi-user; phone-friendlyNeeds a web server
Log4OMWindows-native (run in Wine)Wine dependency
sudo apt install -y cqrlog
cqrlog &

Configure with your callsign + LoTW certificate + eQSL credentials. CQRLOG auto-imports from WSJT-X’s wsjtx_log.adi and posts to LoTW automatically.

16.2 Log upload — LoTW, eQSL, QRZ, Club Log

ServiceWhat it confirmsSign-up cost
LoTW (Logbook of The World)ARRL’s confirmation system; needed for ARRL DXCCFree (one-time TQSL cert); paid awards
eQSLFaster, simpler confirmation; eQSL-CC awardsFree + optional paid
QRZ.comLogbook + member directory; logbook free, awards paidFree + premium
Club LogDXpedition and contest logs; useful for chasing rare entitiesFree

For mainstream DXing, all four. CQRLOG handles the multi-target uploads.

16.3 Backup strategy

Log backup is critical. A lost log is a hundred contacts you can’t claim.

# Backup CQRLOG database:
mysqldump -u cqrlog cqrlog001 > ~/projects/ham/backup-$(date +%Y%m%d).sql

# Backup ADIF exports:
cp ~/.config/CQRLOG/*.adi ~/projects/ham/

# Sync to remote (workstation, cloud):
rsync -av ~/projects/ham/ workstation:~/ham-backups/

# Cron weekly:
echo "0 2 * * 0 rsync -av ~/projects/ham/ workstation:~/ham-backups/" | crontab -

Test the backup periodically by restoring to a fresh CQRLOG instance.

17. Vol 12 Cheatsheet Updates

The following one-pagers go into Vol 12:

  • §6 (Band landscape): the HF/VHF/UHF table from §3.
  • §7 (Audio interface): SignaLink vs Digirig comparison, ALSA setup commands.
  • §11 (WSJT-X quick start): mode lineup table, FT8 frequency reference (7.074 / 14.074 / 21.074 / 28.074 MHz), Auto-Seq toggle.
  • §13 (fldigi): mode reference (RTTY / PSK31 / MFSK / Olivia), default frequencies.
  • §15 (Error → fix): “WSJT-X audio device not listed” → “verify SignaLink/Digirig USB enumerated”; “no decodes” → “verify radio is on the right band”; “PTT doesn’t release” → “check VOX threshold or RTS-PTT cable continuity”.
  • §17 (Antennas): the 5-row antenna comparison from §13.
  • §19 (Portable HF loadout): the §15 checklist condensed.
  • §21 (Resources): URLs for HamStudy, ARRL, RSGB, wsprnet.org, aprs.fi.

18. Resources

SourceURL
ARRLhttps://home.arrl.org/
RSGB (UK)https://rsgb.org/
HamStudy.org (study + practice)https://hamstudy.org/
WSJT-Xhttps://wsjt.sourceforge.io/
fldigihttp://www.w1hkj.com/
JS8Callhttps://js8call.com/
pat / Winlink Linux clienthttps://github.com/la5nta/pat
Winlinkhttps://www.winlink.org/
hamlibhttps://hamlib.github.io/
direwolf software TNChttps://github.com/wb2osz/direwolf
LoRa-APRShttps://github.com/lora-aprs/
Tigertronics SignaLinkhttps://www.tigertronics.com/
Digirighttps://digirig.net/
Xiegu G90https://www.xiegu.net/
Icom IC-705https://www.icomamerica.com/
Elecraft KX2 / K3https://www.elecraft.com/
QRP-class radio comparisonhttps://www.qrper.com/
LDG Z11Pro tunerhttps://www.ldgelectronics.com/
MyAntennas EFHWhttps://www.myantennas.com/
packtennahttps://packtenna.com/
Buddipole / Buddistickhttps://www.buddipole.com/
Nano VNA antenna analyserhttps://nanovna.com/
CQRLOGhttps://www.cqrlog.com/
KLoghttps://klog.xyz/
Cloudloghttps://github.com/magicbug/Cloudlog
LoTWhttps://lotw.arrl.org/
eQSLhttps://www.eqsl.cc/
Club Loghttps://clublog.org/
aprs.fi — APRS maphttps://aprs.fi/
wsprnet.org — WSPR spotshttps://www.wsprnet.org/
POTA — Parks On The Airhttps://parksontheair.com/
SOTA — Summits On The Airhttps://www.sota.org.uk/
LCWO.net (Morse training)https://lcwo.net/

19. Footnotes

(Footnotes are listed inline above; this section is a placeholder anchor for the index.)

20. Index

A — APRS — §11. AFSK — §11.1. Audio interface — §4. Auto-Seq (WSJT-X) — §5.5.

B — Band landscape — §3. Backup (logs) — §16.3. Beacon (WSPR) — §12.

C — CAT control — §9. CEPT — §2.4. CQRLOG — §16.1. CW — §10.

D — direwolf — §11.2. Digirig Mobile — §4.3. DXCC — §16.2.

E — EFHW (end-fed half wave) — §13.2. Elecraft KX2 / K3 — §15. eQSL — §16.2. Exam (US ham) — §2.2. Exam (UK ham) — §2.3.

F — fldigi — §6. FT8 — §5.2. FT4 — §5.2.

G — Grid square (Maidenhead) — §5.1.

H — Ham licence — §2. hamlib — §9. Harmonics (EFHW) — §13.2. HF — §3.1. HF antennas — §13.

I — IC-705 — §15. Icom — §9.2. Iambic paddle — §14. ISM bands — §3.3.

J — JS8Call — §7. JT65 — §5.2.

K — Key (CW) — §14. KLog — §16.1. K3NG keyer — §10.3.

L — LoRa-APRS — §11.3. LoTW — §16.2. Logging — §16.

M — Magnetic loop — §13.4. MFSK — §6.2. Modes — §3.4. Morse code — §10.

N — Nano VNA — §13.6.

O — Olivia — §6.2.

P — Paddle (iambic) — §14. pat (Winlink) — §8. POTA — §15. PSK31 — §6.2. PTT control — §4.5.

Q — Q65 — §5.2. QRP rig — §15.

R — Random wire + 9:1 unun — §13.3. rigctl / rigctld — §9.3. RTTY — §6.2.

S — SignaLink USB — §4.2. SOTA — §15. Sub-GHz ISM — §3.3.

T — Technician (US licence) — §2.2.

U — UHF — §3.2. USB audio (DIY) — §4.4.

V — VHF — §3.2. Vertical antenna — §13.5.

W — Winlink — §8. WSJT-X — §5. WSPR — §12.

X — Xiegu G90 — §15.

Y — Yaesu — §9.2.

Z — None.

Footnotes

  1. WSJT-X project: https://wsjt.sourceforge.io/. Authors: Joe Taylor (K1JT) and the WSJT Development Group. FT8 introduced in 2017; has dominated amateur HF digital since.

  2. pat: https://github.com/la5nta/pat. Open-source; written in Go. The de facto Linux Winlink client.