Skip to content

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 rotctld is included in the app — you do not need a separate Hamlib installation

Step 1 — Connect the Cable + Driver Check ​

  1. Power on the rotator controller, connect it to the Mac via a USB-serial adapter
  2. Open Terminal, test:
    bash
    ls /dev/cu.* | grep -iE "usbserial|slab|usbmodem"
  3. 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 ​

  1. Open HAM-Tools → Settings → Rotor (⌘, → "Rotor" tab)
  2. Pick the manufacturer, then the model — the factory defaults (baud, data bits, parity, handshake) and the azimuth / az-el capability load automatically
  3. Below the picker, the Hamlib rotor no. and az/el or azimuth only appear for confirmation
ManufacturerExamplestypical baud
SPIDRot1Prog (RAU), Rot2Prog (RAS), MD-01/02600 (Rot1/2Prog), 115200 (MD-01)
YaesuGS-232A/B, GS-232 Generic9600
Hy-GainDCU-1/DCU-1X (Ham-IV, T2X)4800
Green HeronRT-214800
EA4TX / Prosistel / M2ARS, D/Combi-Track, RC28009600

No matching model? Manufacturer Hamlib, model "Dummy rotor (test without hardware)" as a test without hardware — use it to check the controls and the spot click.

Step 3 — Set the Connection + Port ​

  1. Leave the connection on USB (Serial) (default)
  2. Under Serial interface, pick the USB port you identified in step 1 (🔄 refreshes the list)
  3. 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 ​

  1. Click "Connect"
  2. 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
  3. 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 ​

  1. If the antenna isn't mechanically exactly on north, correct it in the North offset field (degrees, added to the rotor's reading: if the rotor reports 0° while the antenna points to 10°, enter 10). For rotators with overlap, set the rotation range in rotor degrees (e.g. 0–450) from 1.56 — the app then picks the allowed position closest to the current one.
  2. In the DX spots section, enable the switch "Automatically turn to the bearing when clicking a spot".
  3. 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 4533

HAM-Tools then talks to rotctld via TCP on 127.0.0.1:4533. To diagnose by hand:

bash
# 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. from 1.56 HAM-Tools no longer ends a leftover rotctld instance (e.g. after a crash) by itself. Or wrong USB port / wrong model number. If the port or model is missing, the message says so directly: "No serial port selected." or "No rotator model selected."

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. from 1.56 If a target lies outside, the rotor doesn't turn and "Target cannot be reached with this north offset and rotation range. Please check the target and calibration." appears.

Spot click turns the radio but not the rotator
→ Toggle in DX spots active? Rotator connected? QTH locator set? All three are needed. from 1.56 If the status shows an orange "Rotor configuration changed. …", you changed the configuration since connecting: "Disconnect" and "Connect" again.

Port doesn't appear in the dropdown
→ Press the 🔄 button; otherwise the USB-serial driver is missing (see step 1).

Next Steps ​

HAM-Tools © HB9HJI · Funkwelt