CAT Setup
In 15 minutes from "rig and Mac are sitting next to each other" to "frequency and mode appear automatically in the logger".
IC-705 without a cable?
Since 1.13.0 the IC-705 can also be controlled directly over WLAN — no USB cable needed: Tutorial: Connect the IC-705 over WLAN.
Requirements
- A rig with a CI-V or serial interface (~200 models in the HAM-Tools bundle)
- A USB cable (rig-specific, e.g. CT-17 for Icom, OPC-478 for older Icom, USB audio cable for Yaesu)
- Possibly a driver for the USB-serial chip (FTDI, Silicon Labs, Prolific) — usually not needed on macOS Sonoma+
Step 1 — Connect the Cable + Driver Check
- Turn the rig on, connect it to the Mac with the USB cable
- Open Terminal, test:bash
ls /dev/cu.* | grep -iE "usbserial|slab|usbmodem" - You should see at least one entry, e.g.:
/dev/cu.usbserial-AB0OJWMD(FTDI chip)/dev/cu.SLAB_USBtoUART(Silicon Labs)/dev/cu.usbmodem14201(USB CDC, many modern Icoms)
No entry? Then the driver is missing:
- FTDI: macOS has shipped it since ~10.9, nothing should be needed
- Silicon Labs (CP210x): download at silabs.com
- Prolific PL2303: problematic on modern macOS versions, better to replace the adapter
Step 2 — Choose a Rig Profile
- Open HAM-Tools → Settings → CAT (
⌘,→ "CAT" tab) - Open the Rig Profile dropdown — the bundle contains ~200 models
- Find and select your model, e.g.:
| Manufacturer | Examples |
|---|---|
| Icom | IC-7300, IC-7610, IC-705, IC-9700, IC-7100, IC-718 |
| Yaesu | FT-991A, FT-DX10, FT-DX101, FT-857, FT-897, FT-817 |
| Kenwood | TS-590, TS-890, TS-2000, TS-480 |
| Elecraft | K3, K3S, K4, KX2, KX3 |
If your model isn't there: use "Hamlib Generic" as a fallback — most functions work, more exotic buttons may not.
Step 3 — Set Serial Port + Baud
After selecting the rig profile:
- The Serial Port dropdown opens automatically — a
/dev/cu.*list - Choose the port you identified in Step 1
- The baud rate is preset by the profile (e.g. IC-7300 = 19200, IC-7610 = 115200)
- The CI-V address is only relevant for Icom — the default is 0x94 for the IC-7300, check the rig menu
Check the baud in the rig
Icoms default to "Auto" for baud — usually works, but is slower and less reliable than a fixed value. In the rig menu (e.g. IC-7300: Menu → SET → Connectors → CI-V → CI-V Baud Rate) set the same value as in HAM-Tools.
Step 4 — Start the Connection
- In CAT settings: turn on the "CAT connection active" toggle
- The status pill at the top right shows:
- 🔴 Disconnected → click the toggle, possibly an error in the log line below
- 🟡 Connecting… → the rigctld subprocess starts, healthcheck runs
- 🟢 Connected → all good, the frequency updates live in the main window
When 🟢: turn the rig's VFO and watch whether HAM-Tools follows the frequency.
What Runs in the Background?
HAM-Tools ships with a bundled rigctld (Hamlib) as a helper binary at HAM-Tools.app/Contents/Helpers/rigctld. When you activate the CAT connection, a subprocess is started:
rigctld -m <rig-id> -r /dev/cu.usbserial-X -s <baud> -t 4532HAM-Tools then talks to rigctld over TCP on port 4532. If you want more diagnostics:
# In a second Terminal:
nc 127.0.0.1 4532
f # query frequency
m # query mode
\get_freq # alternative commandWhat Happens After a Successful Connection?
| Effect | Where it's visible |
|---|---|
| Frequency live | Main window radio panel, in the logger QSO form, in the spot bridge |
| Mode live | RST default follows (CW → 599, SSB → 59, RTTY → 599) |
| Band auto | Calculated from frequency, preset in the QSO form |
| Cabrillo mismatch warning | When the contest category doesn't match the mode |
| Macros F1–F8 | Send CW directly via send_morse, or trigger SSB audio with PTT |
| Icom Voice Keyer V1–V4 | 4-button row in all entry forms |
Common Problems
"Failed to open serial port"
→ Another program is holding the port (often: an old rigctld instance, fldigi, WSJT-X). Close the other app, or kill rigctld manually: pkill rigctld
Frequency is read but not written
→ Check "CI-V Transceive" (Icom) or "CAT Rate" (Yaesu) in the rig menu. Some models explicitly need "Send Freq on Change" = ON.
PTT doesn't work / no transmit
→ Some setups need a separate PTT cable, others can do PTT via CAT. In HAM-Tools: the rig profile has supportsPTT: true/false. If false, you have to handle PTT externally (VOX, footswitch, separate interface).
Connection drops after a few seconds
→ Baud mismatch between rig and HAM-Tools. Set both to a fixed value (e.g. 19200 for the IC-7300, 38400 for the FT-991A).
How do I link FLDigi / WSJT-X at the same time?
→ First, in Settings → CAT, enable the "Share CAT" (keep rigctld open for other programs) switch — without it, HAM-Tools holds the port exclusively and WSJT-X can't reach the radio. Then click "Start" in HAM-Tools. In WSJT-X / fldigi, set: Rig = "Hamlib NET rigctl", network server = 127.0.0.1:4532, PTT = CAT, poll interval 1 s. That way both programs share the rig through HAM-Tools' rigctld — the server stays open even when you disconnect HAM-Tools' CAT connection. Details: CAT → CAT Sharing.
Next Steps
- Contest with Macros — F1–F8 CW + SSB
- LoTW Pipeline — QSL sync after logging
- CAT Module Docs — the full CI-V table