Overview
Rig control (CAT — Computer Aided Transceiver) keeps your radio on frequency through a satellite pass by continuously correcting for Doppler shift. OrbitDeck computes the corrected downlink and uplink from the live orbit, your station, the transponder, and your per-satellite calibration — exactly what the Home Doppler card shows — and sends it to the radio.
It supports a single full-duplex satellite radio (both uplink and downlink at once), a single half-duplex radio (uplink or downlink only), or two radios (one for each leg).
Rig control works only while OrbitDeck is in the foreground — iOS suspends Bluetooth and networking for backgrounded apps. Turn on Keep screen awake on Home (Settings → Display) to leave it running during a pass.
Connections & adapters
OrbitDeck reaches a radio two ways:
- BLE serial adapter — a Bluetooth Low Energy UART adapter (Nordic UART Service or a generic write+notify pair) wired to the radio's CAT / CI-V / serial port. This is how CI-V, Yaesu and Kenwood radios are driven — for example the open-source OrbitLinkS3 CI-V bridge, or the B.B. Link for the Kenwood TH-D74/D75.
- Icom network (Wi-Fi) — Icom's RS-BA1 network protocol over your local Wi-Fi, for network-capable Icoms (IC-9700, IC-705, IC-905). Enable Network Control on the radio with a User1 login.
- rigctld (Hamlib, network) — a TCP connection to a Hamlib
rigctld server (default port 4532) running on a nearby computer, which drives any radio Hamlib supports. Handy for a USB-only rig an iPhone can't reach directly, or any radio you already run through Hamlib.
Bluetooth Classic (SPP) adapters are not supported on iOS. Apple restricts Bluetooth Classic to MFi-certified accessories, so the inexpensive HC-05/HC-06-style serial adapters (including most generic FT-817 Bluetooth adapters) cannot be opened by a normal app. Use a BLE adapter instead. Likewise, radios whose only computer interface is USB (for example the FT-991/991A and FTX-1) cannot be reached from an iPhone or iPad and are not listed.
Adapters that work
Any BLE adapter that presents a generic UART service (Nordic UART, or a plain writable + notify characteristic pair) and matches your radio's serial electrical interface will work. Known-good options:
- PDDAXLQUE DX-CP26 (RS-232 ↔ BLE) — a rechargeable, battery-powered DB9 RS-232-to-Bluetooth LE serial adapter, confirmed working with OrbitDeck. A good off-the-shelf option for radios with a true RS-232 CAT port (many Yaesu and Kenwood rigs). Set the serial rate in Settings to match the radio. Product listing.
- Off-the-shelf BLE serial adapter + a CI-V level converter (Icom) — you do not need custom hardware for CI-V. Pair any BLE-to-RS-232 serial adapter (such as the DX-CP26 above) with an inexpensive CI-V ↔ RS-232 converter (an Icom CT-17 or any of the common clones) to reach a CI-V Icom's 3.5 mm jack. This works with OrbitDeck like any other BLE serial link.
- OrbitLinkS3 on an M5Stack M5StickS3 — if you'd rather have a single self-contained gadget, this open-source firmware turns an inexpensive M5Stack M5StickS3 into a rechargeable BLE ↔ CI-V bridge (no separate converter needed). Bench-validated driving an IC-821 from OrbitDeck (Doppler tuning, mode/step, passband and the One True Rule). Firmware and wiring: github.com/prstoetzer/OrbitLinkS3. It's a convenient option for CI-V, not a requirement.
- Kenwood B.B. Link — the BLE adapter for the TH-D74/D75 handhelds (now discontinued, but the supported path for those radios).
- Icom network (no adapter) — for the IC-705, IC-9700 and IC-905, use OrbitDeck's Wi-Fi (RS-BA1) mode instead of a serial adapter. The IC-705 is validated over Wi-Fi.
Building your own is straightforward: an ESP32/M5Stack (or an nRF52 / genuine HM-10) exposing a UART GATT, wired to the radio's CAT/CI-V port with the correct levels (CI-V is 3.5 mm TTL single-wire; Yaesu/Kenwood use RS-232 or low-level serial). OrbitLinkS3 is a working reference for the CI-V case.
Supported radios
OrbitDeck speaks the Icom, Yaesu and Kenwood CAT dialects directly, plus Hamlib rigctld over the network — covering the radios in the CardSat reference set (minus USB-only models):
- Icom CI-V — full-duplex satellite rigs IC-820, IC-821, IC-910, IC-970, IC-9100, IC-9700; transceivers IC-705, IC-905, IC-7100, IC-7000, the IC-706 family, IC-275/471/271/475/575/1275; and CI-V receivers (IC-R10/R20/R30/R7000/R7100/R8500/R8600/R9000/R9500).
- Yaesu — FT-847 (full-duplex), FT-817/818/857/897, FT-100, FT-736R, and the VR-5000 receiver.
- Kenwood — TS-790 and TS-2000 (full-duplex — OrbitDeck puts them into the radio's satellite/SATL mode automatically, MAIN = downlink / SUB = uplink), the TS-711/TS-811 all-mode base stations, and the TH-D74/D75 handhelds (all-mode receiver on band B, via the B.B. Link).
- rigctld (Hamlib) — any Hamlib-supported radio, driven over a network connection to a
rigctld server, for a full-duplex split rig or a single leg.
For Icom radios you can override the CI-V address; for BLE connections you can set the serial rate to match your adapter. Network CAT is available on the IC-9700, IC-705 and IC-905, and via rigctld for anything on Hamlib.
Station configurations
- One full-duplex radio (e.g. IC-9700, IC-9100, FT-847, TS-2000) — controls both legs. By default MAIN is the uplink and SUB the downlink; you can swap that.
- One half-duplex radio — controls only the uplink or only the downlink, whichever you choose. Ideal for a single-band handheld like the TH-D75 on the downlink.
- Two radios — radio 1 drives the downlink, radio 2 the uplink, each on its own BLE adapter (or network). This gives full duplex from two single-band rigs.
Setting it up
- Open Settings → CAT / rig control and turn on Enable CAT control.
- Choose one radio or Two radios, then pick the radio model and, for a single radio, what it controls.
- Pick the connection: for BLE, tap BLE adapter and choose your adapter from the scan; for network, enter the radio's IP, port, username and password (stored in the iOS Keychain).
- Set the CI-V address and serial rate if needed, adjust the tuning options, and tap Done.
Controlling on Home
With a radio configured, a Rig control (CAT) card appears on Home. Tap Connect to link up; the status dot turns green and the live downlink/uplink dials appear. CAT tracks the same satellite and transponder shown on the Home transponder card — including the passband slider — so what you see is what the radio is tuned to. Tap Disconnect when you're done.
Tuning options
- Track Doppler — enable/disable the tuning loop.
- Update rate and command delay — how often frequencies are sent and the pause between CAT frames.
- MAIN = uplink, SUB = downlink — the VFO role convention for a full-duplex rig.
- Command satellite mode and assign MAIN/SUB bands — for Icoms that support it over CI-V (IC-9100/9700). Kenwood TS-2000/790 satellite mode is handled automatically.
- FM / linear deadbands — the smallest change that triggers a new command, so the radio isn't retuned needlessly.
- Narrow FM on FM satellites — command FM-N (the narrow FM filter) on FM birds like SO-50 where the rig supports it (IC-910/9100/9700). On by default.
- Predictive lead — tune slightly ahead of the current geometry.
- Oscillator calibration — additional global downlink/uplink trims (per-satellite calibration comes from the Calibrations screen).
- Uplink CTCSS — a PL tone on the FM uplink.
One True Rule (follow the dial)
Turn on Follow radio tuning and choose whether OrbitDeck follows the downlink (the usual choice) or the uplink. OrbitDeck then reads the radio: when you spin the followed dial, it folds your change into the passband offset and keeps the other leg mapped correctly through the transponder — both Doppler-corrected. This is the classic full-duplex operating rule: you tune the receiver to a station and the transmitter follows automatically. When you turn the dial, OrbitDeck briefly pauses Doppler on that leg (a short, adjustable settle window) so it doesn't fight you mid-turn, then resumes. It requires a radio that can report its frequency, which most supported radios can.
Transverters
If a leg runs through a transverter, enter its local-oscillator (LO) offset for the downlink and/or uplink. OrbitDeck tracks, displays and Doppler-corrects the real on-air frequency, and sends the radio the intermediate frequency (real − LO) — so a rig that only tunes a lower band can still work the microwave satellite bands.
Permissions & privacy
The first time you connect, iOS asks for Bluetooth and/or Local Network permission. These connections go directly from your device to your radio over Bluetooth LE or your local Wi-Fi; nothing is sent to the developer. Any radio network password is stored in the iOS Keychain. See the privacy policy.
Troubleshooting
- Adapter not found — make sure it's powered, in range, and not already connected to another app or the radio's own session; confirm Bluetooth permission was granted. Unnamed adapters still appear in the list (sorted by signal strength).
- Mode changes but frequency doesn't (handhelds) — the TH-D74/D75 refuse off-grid writes; OrbitDeck rounds to the mode's step (20 Hz fine, 5 kHz FM). Make sure the radio is on band B.
- Nothing moves — confirm the adapter's serial rate matches the radio, the CI-V address is correct, and Track Doppler is on.
- Network radio won't connect — enable Network Control on the radio, set a User1 login, and check the IP and control port (serial is control +1). OrbitDeck now reports where the handshake stalled (no reply, login rejected, or connection refused) so you can tell reachability from credentials from a busy radio.
- IC-9700 (or IC-905) network specifically — unlike the Wi-Fi IC-705, the IC-9700 uses its wired Ethernet jack. Make sure the radio is on the same subnet your iPhone/iPad is on (route Wi-Fi and the radio's LAN together, no client-isolation), Network Control and CI-V Transceive are ON, and no other program (RS-BA1 Remote Utility, wfview) already holds the radio's single network session — power-cycle the radio if a previous session hung. Leave the CI-V address override blank so the 9700's default (A2) is used.
- Capture a log — for connection problems, turn on Settings → Diagnostics → Diagnostic logs, reproduce the issue, then share the log file with the developer. It records each connection stage.