Remote ham radio from a Mac — complete setup guide.
By the end of this guide you can sit at your Mac and operate your transceiver as if you were at the radio — control, audio, CW, and digital modes — whether the radio is in the next room or a remote shack. The path here is the one RigPlane is designed around: a native macOS app, direct radio control with no vendor application in the loop.
What you will need
Pick the path that matches your radio and your network — every item below is referenced somewhere in the steps that follow.
- A supported transceiver. Supported: Icom IC-7610, IC-7300, IC-705 and Yaesu FTX-1. IC-9700: rig profile and backend. Xiegu X6100 and Lab599 TX-500: profiles only, no control. See the IC-7610 page for radio-specific notes.
- A connection between the radio and the network. LAN over the radio's built-in Ethernet (IC-7610, IC-9700) or the IC-705's Wi-Fi, or USB CI-V plus USB audio (IC-7300, IC-7610). The IC-7300 does not have a network port — it is USB only.
- An Apple Silicon (M-series) Mac on macOS 26 or later. RigPlane Pro is a native macOS app, signed and notarized through the normal Apple developer channel; beta builds are for Apple Silicon only — the downloads page lists the current builds.
- RigPlane Pro for macOS. Available from the downloads page. The open-core Python package
rigplaneis also an option if you prefer a headless engine with a browser UI — see RigPlane on Mac for the trade-off. - Digital-mode software (optional). WSJT-X, JS8Call, or fldigi for FT8/FT4/JS8 and other modes. RigPlane presents itself to these apps as a normal soundcard and as a Hamlib NET rigctl server, so the integration is the standard one.
- A VPN (optional). Tailscale or another VPN if you want your computers to reach each other from outside the home network.
What you do not need: an RS-BA1 license, a Windows VM, a hamlib install, a third-party virtual audio cable, or a cloud relay. RigPlane talks to the radio directly and the audio bridge ships in the macOS installer.
Connect your radio to the network
Pick the connection method your radio supports. LAN-capable Icom rigs like the IC-7610, IC-705, and IC-9700 expose a network control interface with a username and password configured in the radio menu; assign a static IP so it does not move after DHCP lease changes. The IC-7300 does not have an Ethernet jack — for that radio you connect over USB serial CI-V and USB audio.
LAN-capable Icom radios (IC-7610, IC-705, IC-9700)
The path is roughly the same for each model — the menu wording varies. On the IC-7610, the network configuration lives at Menu → Set → Network, where you set the IP address (static recommended), enable Remote Control, and create a Network User. Default port is 50001. The IC-705 uses WLAN Set to join WiFi first, then the same Remote Control and Network User flow. Make sure radio and Mac are on the same subnet, and that UDP ports 50001–50003 are not blocked between them.
USB serial radios (IC-7300, IC-7610 over USB)
For USB CI-V control on the IC-7610, set Menu → Set → Connectors → CI-V → CI-V USB Port to Unlink from [REMOTE] (the radio's default; Link to [REMOTE] connects the USB and REMOTE ports and blocks serial CI-V). Set the USB baud rate to 115200 if you want scope and waterfall. Connect the rear-panel USB-B port to the Mac. Detailed notes — hardware-validated against a real radio — live in the IC-7610 USB setup guide on rigplane.dev.
Static IP and firewall check
If the radio's IP changes after a DHCP lease renewal, every saved profile in RigPlane points at the wrong address. Assign a static IP from outside your router's DHCP pool, then confirm reachability:
ping 192.168.1.100
nc -u -z 192.168.1.100 50001
Discovery uses UDP broadcast, so on a VLAN-segmented network you will need to use a static address rather than discovery.
Install RigPlane Pro on your Mac
RigPlane Pro is a native macOS application — not an Electron shell, not a Wine wrapper, not a Parallels VM. The build is signed and notarized through the normal Apple developer channel, so Gatekeeper does not surprise you at first launch.
- Open the RigPlane downloads page and grab the current macOS beta build for Apple Silicon.
- Open the downloaded
.dmgand drag RigPlane.app into/Applications. - Launch the app from
/Applications. macOS Gatekeeper may show the standard first-launch confirmation; allow it. - After first launch, open Settings → Audio in RigPlane Pro and click Install audio driver. The macOS
.dmgbundles the signed RigPlane Virtual Audio Driver.pkg, so this is a single admin-password prompt with no separate download, and it adds theRigPlane Virtual Cable OutputandRigPlane Virtual Cable Inputdevices. See the audio routing for digital modes guide and RigPlane on Mac for the wider context.
If you would rather run the open-core Python library, pip install rigplane on macOS gives you the headless engine plus the Web UI; audio device listing, CI-V control, and the rigctld server are all in the core install. That path is documented in the rigplane.dev installation guide; this guide focuses on the packaged Pro app.
Configure audio and CW on macOS
The audio path is the part most ham-radio control software gets wrong on macOS. RigPlane Pro targets Core Audio directly and bundles its own signed virtual audio driver inside the macOS .dmg, so a single click in Settings → Audio → Install audio driver provisions the virtual audio devices. No separate third-party download, no Homebrew install required.
For listening and CW inside the RigPlane app, the defaults are correct out of the box: RX plays through your normal output device, TX is captured from your normal input. You do not need to touch macOS Audio MIDI Setup for the basic case.
For digital-mode apps to see RigPlane as a normal soundcard, the setup uses two virtual devices — one per direction:
- RX path: Radio RX → RigPlane →
RigPlane Virtual Cable Input→ WSJT-X input. WSJT-X decodes FT8/FT4 from that capture device as if it were a real soundcard. - TX path: WSJT-X output →
RigPlane Virtual Cable Output→ RigPlane → Radio TX. Each device carries a single direction, so neither side reads its own output.
Two devices, one per direction. The RigPlane Virtual Audio Driver exposes a render-only RigPlane Virtual Cable Output and a capture-only RigPlane Virtual Cable Input rather than a single bidirectional device. Older write-ups (and the rigplane.dev WSJT-X setup guide for the manual pip install rigplane path) had to describe a two-cable workaround to avoid a feedback loop when one bidirectional cable carried both directions; with the RigPlane driver's split capture/render pair, WSJT-X records RX from the Input device and plays TX into the Output device with no way to loop back on itself. The audio routing for digital modes guide and the WSJT-X on the IC-7610 guide use the same two-device recipe.
macOS Audio MIDI Setup is awkward today — the UI hides aggregate devices behind a separate panel and renaming devices does not always survive a reboot — so RigPlane avoids forcing you into it. To inspect or override the audio routing, the audio recipes on rigplane.dev cover the options.
Connect to your radio
On first run, RigPlane Pro shows the list of detected radios. For LAN-connected Icom rigs the app discovers the radio over UDP broadcast on the local network; for USB-connected rigs it lists serial devices that match a known radio profile. Pick your radio from the list.
For a LAN radio, enter the network username and password you configured in the radio menu. For a USB radio, the baud rate and CI-V address come from the radio profile — leave them at the defaults unless you changed them on the radio side. Confirm. The smoke test once connected:
- Look for the panadapter to start rendering — that confirms the CI-V control channel is live and the scope traffic is flowing.
- Confirm RX audio at a normal volume. If you hear band noise on your Mac's output device, the audio path is working end to end.
- Tune the radio's main VFO from the RigPlane UI by a few kHz, then confirm the change on the radio's physical display. This proves command flow in both directions.
- Open the in-app diagnostics panel and confirm there are no UDP errors or CI-V timeouts in the log.
If discovery does not find the radio, add it manually by entering the network address in the connect dialog — UDP broadcast does not cross subnets, so a manual address is the right move on a segmented network. See the FAQ if the smoke test stalls partway through.
Operate remotely
Remote access (beta.7 and later; phones and tablets from beta.9). Run RigPlane Pro on the computer at the radio, switch on Settings → Remote access, and pair your other computers with a 4-digit code. A phone or tablet browser opens the https address shown there, after installing the station's certificate once. The computers must be able to reach each other — a home network or a VPN you set up, such as Tailscale; it does not work across the open internet by itself.
Do not forward the radio's own network ports (UDP 50001–50003) to the internet: the radio's network interface is not built to face it. To reach the station from outside your home network, put the computers on the same VPN (for example Tailscale) and use Remote access as described above.
Digital modes from the Mac
RigPlane speaks the rigctld wire protocol natively, so in WSJT-X, JS8Call, or fldigi you point the radio at "Hamlib NET rigctl" on localhost:4532 — no hamlib dependency on either side. Audio appears as a normal soundcard to your digital-mode software. The radio control side of the integration is short:
- Rig: Hamlib NET rigctl.
- Network Server:
127.0.0.1:4532. - PTT Method: CAT.
- Mode: Data/Pkt.
- Split Operation: Fake It.
Press Test CAT in WSJT-X — the button should turn green. Press Test PTT — the radio should key up briefly, then release. The audio side uses the two devices the RigPlane installer provisioned: set Soundcard Input to RigPlane Virtual Cable Input and Soundcard Output to RigPlane Virtual Cable Output in WSJT-X's Settings → Audio. The same two-device recipe is documented in the audio routing for digital modes guide.
If the first PTT after launching WSJT-X has a 15–20 second delay, that is the well-known USB → PKTUSB first-TX transition; setting the radio to its data mode (USB-D) before the first transmission avoids it. The WSJT-X setup guide on rigplane.dev covers the full configuration for the headless pip install rigplane path, including the --wsjtx-compat flag and the IC-7610 MOD Level adjustment. RigPlane Pro does not enable that flag for you.
CW from the Mac
RigPlane Pro has a CW console that sends text and decodes. Free text sending is not supported on the FTX-1 yet; the radio's own CW interface does the actual keying. RigPlane has no paddle input or USB keyer of its own. For external paddle input, the path is radio-specific: some Icom rigs accept a paddle on the back-panel keyer jack, other workflows route paddle input through a separate USB keyer. The per-radio CW notes on the rigplane.dev docs cover the realistic options.
Troubleshooting
The most common first-run problems are network/discovery, authentication, audio device naming, and the WSJT-X first-TX delay when switching from plain USB to packet mode. Each has a specific fix documented on rigplane.dev.
- "Radio did not respond to discovery." Wrong IP, radio not on the network, UDP 50001–50003 blocked by a firewall, or the two devices are on different subnets (broadcast discovery does not cross subnets). Verify with
pingandnc -u -z, and confirm "Network Control" is enabled in the radio menu. - "Authentication failed." Username or password mismatch with the radio's Network User settings, or too many concurrent connections — disconnect any other clients (RS-BA1, wfview) that may be holding a session against the radio.
- "CI-V USB Port must be Unlink from [REMOTE]." The IC-7610's
CI-V USB Portmenu setting must beUnlink from [REMOTE](the radio's default).Link to [REMOTE]connects the USB and REMOTE ports and blocks serial CI-V commands. Set it toUnlink from [REMOTE]and re-plug the USB cable. - WSJT-X first-TX delay (15–20 seconds). Caused by the USB → PKTUSB mode transition on connect. Pre-set the radio to USB-D1 before launching WSJT-X, or use the
--wsjtx-compatflag if you run headless rigctld (Pro does not enable it for you). - TX audio is silent or weak on macOS. On the headless
pip install rigplanepath this is usually the Opus codec library failing to load on macOS, with logs showingTX transcoder unavailable (opus codec missing?). The fix isbrew install opusand re-running the macOS opuslib patch — full notes on the rigplane.dev troubleshooting page.
The canonical reference for every error message and its fix is the troubleshooting guide on rigplane.dev. If something is not listed there, email [email protected] with the radio model, macOS version, and the relevant log lines.
Ready to set it up?
Join the open beta and walk through the steps above on your own hardware. If you prefer to read the comparison context first, the RigPlane vs wfview page and the Mac software page are the right next stops.
Last reviewed 2026-10-22. Found a mistake? File an issue at github.com/rigplane/rigplane-www/issues. Icom, IC-7610, IC-7300, IC-705, and IC-9700 are trademarks of Icom Inc. Yaesu and FTX-1 are trademarks of Yaesu Musen Co., Ltd. Apple, Mac, and macOS are trademarks of Apple Inc. Tailscale and WireGuard are trademarks of their respective owners. RigPlane is an independent project and is not affiliated with, endorsed by, or sponsored by Icom Inc., Yaesu Musen Co., Ltd., or Apple Inc.