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
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
| Class | Question pool size | Exam questions | Passing score | Privileges |
|---|---|---|---|---|
| Technician | ~400 | 35 | 26 of 35 | All VHF/UHF; limited HF (10m phone, some CW) |
| General | ~450 | 35 | 26 of 35 | All VHF/UHF; most HF voice + digital |
| Amateur Extra | ~700 | 50 | 37 of 50 | All 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
| Level | Exam structure | Privileges |
|---|---|---|
| Foundation | 26-question multiple-choice + practical | Limited HF/VHF/UHF; 10W max output |
| Intermediate | 45-question multiple-choice + practical | More bands; 50W max output |
| Full | 60-question multiple-choice | All 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:
- Sign up at
HamStudy.org. - Click “Technician” study mode.
- Drill flashcards 30-60 min/day for 1-2 weeks.
- Take 5+ practice exams; aim for 90% before scheduling the real one.
- Schedule via
https://hamstudy.org/sessions— many sessions are now remote (Zoom-proctored). - Take the exam (~45 minutes). Pass.
- Wait 10-14 days for the FCC to issue your callsign.
- 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:
| Band | Frequency | Propagation | Modes commonly heard |
|---|---|---|---|
| 160m | 1.8-2.0 MHz | Night-time DX; high noise daytime | CW, SSB, FT8 |
| 80m | 3.5-4.0 MHz | Regional ground-wave; night-time skip | SSB (lower band CW), FT8, RTTY |
| 60m | 5.3-5.4 MHz | Channelised; small allocation; quiet | USB voice, CW |
| 40m | 7.0-7.3 MHz | Day + night; reliable regional | CW, SSB, FT8 (the workhorse band) |
| 30m | 10.1-10.15 MHz | Day; quiet (CW + digital only — no voice) | CW, FT8, RTTY |
| 20m | 14.0-14.35 MHz | Day; the global DX band | CW, SSB, FT8 (the contest workhorse) |
| 17m | 18.07-18.17 MHz | Day; quiet alternative to 20m | CW, SSB, FT8 |
| 15m | 21.0-21.45 MHz | Day; great when sunspot count is high | CW, SSB, FT8 |
| 12m | 24.89-24.99 MHz | Day; small allocation | CW, SSB, FT8 |
| 10m | 28.0-29.7 MHz | Day; high-sunspot DX; FM repeaters available | CW, 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
| Band | Frequency | Propagation | Common modes |
|---|---|---|---|
| 6m | 50-54 MHz | Sporadic-E DX | SSB, CW, FT8 (when “open”); FM |
| 2m | 144-148 MHz | Line-of-sight + scatter | FM repeaters, simplex, SSB, CW, digital APRS |
| 1.25m | 222-225 MHz | Line-of-sight | FM (some repeaters) |
| 70cm | 420-450 MHz | Line-of-sight | FM repeaters, DMR, D-STAR, P25, Yaesu Fusion |
| 33cm | 902-928 MHz | Line-of-sight | Less-used; LoRa-APRS sometimes here |
| 23cm | 1240-1300 MHz | Line-of-sight | ATV, 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
| Mode | Best bands | Notes |
|---|---|---|
| FT8 / FT4 (digital) | 40m, 20m, 15m, 10m | Weak-signal; works at low power |
| SSB voice | 40m, 20m | The “phone” mode of HF |
| CW (Morse) | All HF + VHF | Lowest power; cuts through QRM |
| RTTY | 20m, 40m | Contest favourite |
| PSK31 | 20m, 40m, 80m | Keyboard-to-keyboard chat |
| WSPR | All HF + VHF | Beacon-only; propagation analysis |
| FM voice | 2m, 70cm, 10m | Local + repeaters |
| DMR / Fusion / D-STAR | 2m, 70cm | Digital voice; repeater-network linked |
| APRS over AFSK | 2m (144.39 US) | Position + messaging |
| LoRa-APRS | 433 MHz (mainly) | Lower power, longer range than AFSK |
| Meshtastic | 915/868 MHz | Mesh; 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).
4.2 Tigertronics SignaLink USB
The classic ham audio interface. ~$100-130 from tigertronics.com or DX Engineering.
| Feature | Detail |
|---|---|
| Audio I/O | Stereo 24-bit USB sound card |
| Sample rate | 48 kHz |
| Isolation | Audio transformers + opto-isolated PTT |
| PTT method | VOX-style (auto-keys when audio TX) or external trigger |
| Radio compatibility | Cables for ~200 different radios (separate purchase) |
| Power | USB-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.
| Feature | Detail |
|---|---|
| Audio I/O | Stereo 16-bit USB sound card |
| Sample rate | 48 kHz |
| Isolation | Galvanic via USB; PTT via CAT or VOX |
| PTT method | RTS over CAT, or VOX |
| Radio compatibility | Many cables available; smaller pinout |
| Power | USB-bus powered |
| Form factor | Pocket-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 method | How it works | Use cases |
|---|---|---|
| VOX (voice-operated) | Audio above threshold keys the radio | Simple; sometimes too aggressive |
| RTS over CAT serial | Software flips RTS line; cable wires it to PTT | Reliable; needs CAT cable |
| DTR over CAT serial | Same but using DTR | Same |
| GPIO via Pi header | Use a uConsole GPIO + opto-isolator | DIY-friendly; Vol 6 §8 audio path |
| Hardware PTT button | Physical button keys radio | Backup / 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
| Mode | Symbol period | Sequence length | Use case |
|---|---|---|---|
| FT8 | 0.16 s | 15 s | Weak-signal HF DX; the dominant mode |
| FT4 | 0.05 s | 7.5 s | Faster than FT8; contest variant |
| JT9 | 0.58 s | 60 s | Older; still occasionally used |
| JT65 | 0.37 s | 60 s | Older; some EME (moonbounce) operation |
| Q65 | varies | 15-300 s | EME and meteor scatter |
| FST4 | varies | 15-1800 s | Long-period beacon-style for very weak signals |
| FST4W | varies | 120-1800 s | WSPR-like beacon variant of FST4 |
| MSK144 | 0.0016 s | 15 s | Meteor scatter VHF |
| WSPR | 0.68 s | 110 s | Beacon-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:
- Tune to a band that’s “open” (DX cluster, FT8 activity from your QTH).
- WSJT-X tunes the band — typically 7.074 MHz (40m), 14.074 (20m), 21.074 (15m), 28.074 (10m).
- Wait for the 15-second cycle. WSJT-X displays decoded callsigns from the previous cycle.
- Click a CQ — WSJT-X auto-fills your reply.
- Click the green “Enable Tx” button. WSJT-X transmits at the next 15-second slot.
- Wait for the response. If acked, exchange continues.
- 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.adiafter 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 case | fldigi | WSJT-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
| Mode | Speed | Bandwidth | Robustness | Notes |
|---|---|---|---|---|
| RTTY | 45 baud | 250 Hz | Medium | Classic; loud “diddle” sound |
| PSK31 | 31 baud | 31 Hz | High | Tiny bandwidth; many in one slice |
| MFSK16 | 15 baud | 316 Hz | Very high | Tolerates fades better than PSK |
| Olivia 8/250 | varies | 250-1000 Hz | Extremely high | Decodes below the noise floor |
| Contestia | varies | 250 Hz | High | Faster Olivia variant |
| Hellschreiber | 122 baud | 122 Hz | Medium | Visual-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
8.3 Connect to a Winlink RMS
pat supports several connection methods:
| Method | Use case |
|---|---|
winmor | Legacy HF protocol — deprecated |
ardop | Modern HF protocol; works with QRP signals |
pactor | Commercial protocol; needs SCS modem; fast |
vara HF | Modern; fast; common; needs varahf Wine app |
varahf-fm | VHF version of VARA |
telnet | Internet-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
| Manufacturer | Common models | CAT protocol |
|---|---|---|
| Yaesu | FT-991A, FT-DX10, FTDX101, FT-857 | Yaesu CAT (binary) |
| Icom | IC-7300, IC-705, IC-7610, IC-7100 | CI-V (Icom proprietary) |
| Kenwood | TS-590S/G, TS-890, TS-2000 | Kenwood ASCII commands |
| Elecraft | K3, K3S, KX2, KX3 | Elecraft K-series ASCII |
| Xiegu (QRP) | G90, G106, X6100 | Yaesu-derived |
| FlexRadio | 6400/6600/6700 | SmartSDR 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:
fldigihas 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.fiand 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.
| Pro | Con |
|---|---|
| Single feed point — no balanced feedline | Needs ~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.
| Pro | Con |
|---|---|
| Truly any wire length | Always needs antenna tuner |
| Multi-band | Less 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.
| Pro | Con |
|---|---|
| Tiny footprint | Narrow bandwidth — needs constant retuning |
| Indoor friendly | Low efficiency on lower bands |
| Quick deploy | Expensive (~$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.
| Pro | Con |
|---|---|
| Great DX (low-angle radiation) | Needs counterpoise / radials |
| Compact when collapsed | Heavier than wire |
| Multi-band with adjustable coils | More 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
cwdaemonor 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:
| Item | Why |
|---|---|
| uConsole + AIO V2 | Computer + RTC + GPS for log timestamps |
| Pi OS Trixie + WSJT-X / fldigi / pat / direwolf | Software stack (Vol 5 §3, Vol 6 §11) |
| Xiegu G90 / IC-705 / Elecraft KX2 | QRP 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 USB | Audio interface |
| 40m EFHW antenna + 49:1 unun | Multi-band wire antenna |
| 20m paracord + arborist throwline weight | Antenna deployment |
| 5m RG-174 coax patch | Rig to antenna |
| 3S 18650 battery pack (5000 mAh) | Power for the rig (separate from uConsole battery) |
| USB-C power bank for uConsole | Extends uConsole runtime |
| Bencher BY-1 paddle (or compact iambic) | CW key |
| GPS antenna patch cable + small whip | If AIO V2 GPS isn’t enough |
| Small notebook + pen | Manual log backup |
| Headphones | Audio 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
| Logger | Pros | Cons |
|---|---|---|
| CQRLOG | Mature; many contest features; LoTW + eQSL upload | Linux only; UI feels dated |
| KLog | Cross-platform; modern UI; active development | Newer; smaller feature set than CQRLOG |
cloudlog | Web-based; multi-user; phone-friendly | Needs a web server |
| Log4OM | Windows-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
| Service | What it confirms | Sign-up cost |
|---|---|---|
| LoTW (Logbook of The World) | ARRL’s confirmation system; needed for ARRL DXCC | Free (one-time TQSL cert); paid awards |
| eQSL | Faster, simpler confirmation; eQSL-CC awards | Free + optional paid |
| QRZ.com | Logbook + member directory; logbook free, awards paid | Free + premium |
| Club Log | DXpedition and contest logs; useful for chasing rare entities | Free |
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
| Source | URL |
|---|---|
| ARRL | https://home.arrl.org/ |
| RSGB (UK) | https://rsgb.org/ |
| HamStudy.org (study + practice) | https://hamstudy.org/ |
| WSJT-X | https://wsjt.sourceforge.io/ |
| fldigi | http://www.w1hkj.com/ |
| JS8Call | https://js8call.com/ |
| pat / Winlink Linux client | https://github.com/la5nta/pat |
| Winlink | https://www.winlink.org/ |
| hamlib | https://hamlib.github.io/ |
| direwolf software TNC | https://github.com/wb2osz/direwolf |
| LoRa-APRS | https://github.com/lora-aprs/ |
| Tigertronics SignaLink | https://www.tigertronics.com/ |
| Digirig | https://digirig.net/ |
| Xiegu G90 | https://www.xiegu.net/ |
| Icom IC-705 | https://www.icomamerica.com/ |
| Elecraft KX2 / K3 | https://www.elecraft.com/ |
| QRP-class radio comparison | https://www.qrper.com/ |
| LDG Z11Pro tuner | https://www.ldgelectronics.com/ |
| MyAntennas EFHW | https://www.myantennas.com/ |
| packtenna | https://packtenna.com/ |
| Buddipole / Buddistick | https://www.buddipole.com/ |
| Nano VNA antenna analyser | https://nanovna.com/ |
| CQRLOG | https://www.cqrlog.com/ |
| KLog | https://klog.xyz/ |
| Cloudlog | https://github.com/magicbug/Cloudlog |
| LoTW | https://lotw.arrl.org/ |
| eQSL | https://www.eqsl.cc/ |
| Club Log | https://clublog.org/ |
aprs.fi — APRS map | https://aprs.fi/ |
wsprnet.org — WSPR spots | https://www.wsprnet.org/ |
| POTA — Parks On The Air | https://parksontheair.com/ |
| SOTA — Summits On The Air | https://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.