Rotor Setup
In 15 minutes from "rotator controller and Mac are sitting next to each other" to "HAM-Tools turns the antenna at the push of a button — and automatically to the DX bearing on a spot click".
Requirements
- A rotator controller with a serial or USB interface (22 models in the HAM-Tools bundle, including SPID, Yaesu GS-232, Hy-Gain DCU-1, Green Heron, EA4TX, Prosistel, M2)
- A USB-serial adapter to match the controller (unless it has its own USB port)
- Possibly a driver for the USB-serial chip (FTDI, Silicon Labs) — usually not needed on macOS Sonoma+
- A bundled
rotctldis included in the app — you do not need a separate Hamlib installation
Step 1 — Connect the Cable + Driver Check
- Power on the rotator controller, connect it to the Mac via a USB-serial adapter
- 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)
No entry? Then the driver is missing:
- FTDI: included in macOS 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 — Pick the Model
- Open HAM-Tools → Settings → Rotor (
⌘,→ "Rotor" tab) - Pick the manufacturer, then the model — the factory defaults (baud, data bits, parity, handshake) and the azimuth / az-el capability load automatically
- Below the picker, the Hamlib rotor no. and az/el or azimuth only appear for confirmation
| Manufacturer | Examples | typical baud |
|---|---|---|
| SPID | Rot1Prog (RAU), Rot2Prog (RAS), MD-01/02 | 600 (Rot1/2Prog), 115200 (MD-01) |
| Yaesu | GS-232A/B, GS-232 Generic | 9600 |
| Hy-Gain | DCU-1/DCU-1X (Ham-IV, T2X) | 4800 |
| Green Heron | RT-21 | 4800 |
| EA4TX / Prosistel / M2 | ARS, D/Combi-Track, RC2800 | 9600 |
No matching model? Hamlib Dummy rotator as a test without hardware — use it to check the controls and the spot click.
Step 3 — Set the Connection + Port
- Leave the connection on USB (Serial) (default)
- Under Serial Interface, pick the USB port you identified in step 1 (🔄 refreshes the list)
- The baud rate is preset by the profile — it must match the setting in the rotator controller
Check the baud in the controller
If the baud rate in HAM-Tools doesn't match the one set in the controller, rotctld connects but reads no position (azimuth stays "—°"). Set both to the same value.
Step 4 — Connect + Turn
- Click "Connect"
- The status light at the top shows:
- ⚪ Not connected → not connected yet
- 🟠 Connecting… → the rotctld subprocess is starting
- 🟢 Connected → the live azimuth appears on the compass rose
- Move Manual target to e.g. 90° → "Turn" — the antenna swings east and the red needle follows. "Stop" halts immediately.
Step 5 — Calibrate + Enable Spot Click
- If the antenna isn't mechanically exactly on north, correct it in the North offset field (degrees). For rotators with overlap, set the rotation range (e.g.
0–450). - In the DX Spots section, enable the switch "Turn to the bearing automatically on spot click".
- Make sure your QTH locator is set in the station settings — the app computes the great-circle bearing from it.
From now on, a click on a DX cluster spot turns the antenna automatically to the bearing to the DX station.
What Runs in the Background?
HAM-Tools ships a bundled rotctld (Hamlib) as a helper binary at HAM-Tools.app/Contents/Helpers/rotctld. On connect, a subprocess is started:
rotctld -m <rot-id> -r /dev/cu.usbserial-X -s <baud> -T 127.0.0.1 -t 4533HAM-Tools then talks to rotctld via TCP on 127.0.0.1:4533. To diagnose by hand:
# In a second terminal (not in parallel with a connected rotator — the port is busy):
nc 127.0.0.1 4533
p # query position (azimuth/elevation)Common Problems
Azimuth stays on "—°"
→ Baud mismatch between controller and HAM-Tools. Set both to the same fixed value (e.g. 600 for SPID, 4800 for Hy-Gain DCU-1).
"Error" in the status line right on connect
→ Port busy (old rotctld instance, another rotator program): close the other app or pkill rotctld. Or wrong USB port / wrong model number.
Antenna turns to the wrong angle
→ Calibrate the north offset. For overlap rotators, set the rotation range correctly so the app picks the allowed path.
Spot click turns the radio but not the rotator
→ Toggle in DX Spots active? Rotator connected? QTH locator set? All three are needed.
Port doesn't appear in the dropdown
→ Press the 🔄 button; otherwise the USB-serial driver is missing (see step 1).
Next Steps
- Rotor module docs — all models, calibration, multi-config
- DX Cluster — the spot source for automatic turning
- CAT Setup — the same Hamlib foundation for the radio