Skip to content

Rotor / Antenna Control

HAM-Tools turns your antenna rotator via Hamlib (rotctld). 22 models come preconfigured: SPID, Yaesu GS-232, Hy-Gain, Idiom Press, Green Heron, EA4TX, Prosistel, M2, and for satellite work Easycomm/LVB/Fodtrack (the Hamlib backend knows more beyond that — the 22 are the curated profiles with verified factory defaults).

New in 1.29.0

Rotator control is new. You set it up under Settings → Rotor (⌘,). Like SSTV it's still young — feedback from users with a rotator connected is welcome.

Connection Types

Pick it in the "Connection" picker at the top of Settings → Rotor — selectable per configuration:

ConnectionWhat's behind it
USB (Serial)The standard: HAM-Tools starts its own rotctld on the USB serial port. A separate Hamlib is not needed — the binary ships with the app
Network (rotctld)Dock onto an already running rotctld — e.g. a remote rotator on another machine on the LAN

Loopback-only on the USB path

The rotctld started by HAM-Tools deliberately listens on 127.0.0.1 only — so the rotator is not reachable over the LAN. For a rotator you deliberately expose on the network, use the Network path against your own rotctld.

Network (rotctld) — External Hamlib Server

If a rotctld is already running on another machine (or started locally by hand), HAM-Tools just docks onto it:

  • Host: 127.0.0.1 for the same machine, otherwise the LAN IP of the shack PC
  • Port: the standard rotctld port is 4533

First Setup (USB)

This is how to set up the standard path via a USB-serial adapter:

  1. Connect the rotator controller to the Mac via a USB-serial adapter, power it on
  2. ⌘,Rotor tab
  3. Pick the manufacturer (SPID / Yaesu / Hy-Gain / … / Hamlib Dummy for testing without hardware)
  4. Pick the model — the factory defaults (baud, data bits, parity, handshake) and the azimuth / az-el capability load automatically
  5. Leave the connection on USB (Serial)
  6. Pick the USB port — the dropdown lists the available /dev/cu.* (the 🔄 button refreshes the list)
  7. Click "Connect" — the status light at the top goes from grey (Not connected) to orange (Connecting…) to green (Connected), and the live azimuth appears

→ Step by step with driver check and troubleshooting: Tutorial: Rotor Setup

Rotator Models

The model picker (manufacturer → model) covers the common controllers. Each profile brings the matching Hamlib rotor number, verified serial defaults and the azimuth / az-el capability:

ManufacturerModelsAz/El
SPIDRot1Prog (e.g. RAU), Rot2Prog (e.g. RAS), MD-01/02Rot1Prog: az only · others az/el
YaesuGS-232A (G-800/1000/2800DXA, G-5500), GS-232B, GS-232 Generic (clones)az/el
Hy-GainDCU-1/DCU-1X (Ham-IV, T2X), DCU2/DCU3/YRC-1az only
Idiom PressRotor-EZ, RotorCardaz only
Green HeronRT-21 (DCU-1)az only
DF9GRERC (Easy Rotor Control)az only
EA4TXARS RCI (Az/El), ARS RCI (azimuth only)depends on variant
ProsistelD (azimuth), Combi-Track (Az/El)depends on variant
M2RC2800az/el
EasycommEasycomm II (SatPC32/Gpredict), Easycomm IIIaz/el
AMSATLVB Trackeraz/el
XQ2FODFodtrackaz/el
HamlibDummy rotator (test without hardware)az/el

Below the picker you see the Hamlib rotor no. and whether the model does az/el or azimuth only. "Reset to factory defaults" brings the verified defaults back if you have changed the serial parameters.

Serial defaults are editable

The preset values (baud rate, data bits, stop bits, parity, handshake) come from Hamlib. If your controller differs — say a different baud rate on the device — adjust them under Serial Interface. Example: SPID runs at 600 Bd, Hy-Gain DCU-1 at 4800 Bd, Yaesu GS-232 at 9600 Bd.

Calibration & Rotation Range

In the Calibration & Rotation Range section:

FieldDescription
North offsetCorrection in degrees if the rotator isn't exactly on north. Applied to every target
Rotation rangeFrom–to in degrees. Default 0–360; for rotators with overlap e.g. 0–450, so the app picks the shortest/allowed path
Use elevation (Az/El)Only visible on az/el models — leave off for azimuth-only beams (hexbeam)

In the Polling section you set the poll interval (default 1000 ms) — how often the live azimuth is read from the rotator.

Spot Click → Turn to the DX Bearing

Like a CAT QSY

Just as a spot click turns the radio to the frequency, it optionally turns the antenna to the bearing.

In the DX Spots section, enable "Turn to the bearing automatically on spot click". After that, a click on a DX cluster spot turns the rotator to the great-circle bearing to the DX station:

  • The bearing is computed from your QTH locator (station settings) and the DXCC location of the spot.
  • Works only with a connected rotator.
  • The north offset and the rotation range (see above) are taken into account.

Turning Manually & Status

The Status section at the very top shows a compass rose with the actual needle (red) and a target marker, plus the current azimuth in degrees:

  • Connect / Disconnect — starts or ends the rotctld connection
  • Manual target — slider 0–360°, "Turn" drives the rotator there
  • Stop — halts a running rotation immediately

Multi-Config

You can save several configurations — e.g. one per rotator:

  1. Make the settings for rotator A (model + port + calibration)
  2. "Save as…" → enter a name (e.g. SPID Big-Yagi) → Save
  3. Configure rotator B (switch model/port)
  4. "Save as…" again → Green Heron VHF
  5. Switch between configs: in the "Active config" picker at the top

WARNING

Changes apply to the currently active config. If you switch rotator in the picker, the other config stays untouched — it's saved.

Hamlib Under the Hood

HAM-Tools ships with its own rotctld binary (Universal2, static, in Contents/Helpers/rotctld in the app bundle, Developer-ID signed). You don't need to install a separate Hamlib.

On the USB path, rotctld is started as a subprocess:

rotctld -m <hamlibRotNumber> -r <port> -s <baud> -C data_bits=8,stop_bits=1,… -T 127.0.0.1 -t 4533

HAM-Tools then talks to rotctld via TCP on 127.0.0.1:4533 (Hamlib text protocol p = read position, P <az> <el> = set, S = stop). On the network path there's no own subprocess — the app connects directly to your rotctld on the configured host/port.

Troubleshooting

SymptomPossible cause
Light stays grey on "Not connected"No model chosen, or no USB port selected
Light turns red "Error"Port busy (another app/old rotctld instance), wrong baud rate, cable unplugged, or wrong model number
Connected, but azimuth stays on "—°"The baud rate doesn't match the controller, or the model doesn't answer position queries — check the device's factory baud
Antenna turns to the wrong angleCalibrate the north offset; for overlap rotators set the rotation range correctly (e.g. 0–450)
Elevation missing / ignoredThe model is "azimuth only", or the "Use elevation" toggle is off
Spot click doesn't turnToggle in DX Spots off, rotator not connected, or no own QTH locator in the station settings
Port doesn't appear in the dropdownPress the 🔄 button; the USB-serial driver may be missing (FTDI / Silicon Labs CP210x)

For reproducible problems → Report a bug (⌘⇧B) with the diagnostics attachment enabled.

Tips

  • Test without hardware: pick the model Hamlib Dummy rotator (test without hardware) — the app connects to a simulated rotator, good for UI and spot-click tests.
  • Several rotators: one config per rotator, switch via the picker.
  • Remote rotator: start rotctld on the shack PC and use the Network path in HAM-Tools with its LAN IP.

→ Related: DX Cluster (spot source), CAT / Radio Control (same Hamlib foundation), Settings → Rotor

HAM-Tools © HB9HJI · Funkwelt