IC-7300 USB Serial Backend Setup (macOS)¶
This guide shows how to control the IC-7300 via USB serial CI-V + USB audio devices instead of the default LAN backend.
Why Use the Serial Backend?¶
- No network required — direct USB connection
- Lower latency — no UDP/network overhead
- Simpler setup — no IP config, username, or password
- Alternative to LAN — for users without Ethernet/WiFi on IC-7300
Hardware Requirements¶
- IC-7300 transceiver (HF/50 MHz)
- USB cable with a Type-B plug (the IC-7300
[USB]port is Type B) - macOS computer (tested on Ventura+ arm64/Intel)
Radio Configuration¶
Critical Setup Step
On the IC-7300, navigate to Menu → Set → Connectors → CI-V → CI-V USB Port and set it to Unlink from [REMOTE] (the radio's default), NOT Link to [REMOTE].
Unlink from [REMOTE]— the[USB]and[REMOTE]CI-V ports work independently; the CI-V USB Baud Rate setting applies only in this modeLink to [REMOTE]— the[USB]and[REMOTE]CI-V ports are connected internally
The IC-7610 has the same setting.
Recommended Radio Settings¶
| Setting | Value | Why |
|---|---|---|
| CI-V USB Port | Unlink from [REMOTE] |
✅ Required — the USB baud rate setting applies only in this mode |
| CI-V USB Baud Rate | 115200 |
Recommended for scope/waterfall |
| CI-V Address | 0x94 (IC-7300 default) |
Library auto-detects from profile |
Baud Rate
115200baud is recommended for scope/waterfall capability- Lower baud rates (19200, 9600) work for basic control (freq, mode, PTT) but scope/waterfall is disabled by a guardrail due to high packet rate
- CI-V baud rate IS significant on IC-7300 — it must match between radio and library
IC-7300 Single Receiver
The IC-7300 has a single receiver (unlike IC-7610's dual receiver or IC-9700's dual). The library automatically enforces this via the IC-7300 profile — operations on receiver=1 will fail with CommandError.
macOS Setup¶
1. Install rigplane¶
2. Connect USB and Verify Devices¶
Plug in the USB cable and verify the serial port:
Check for audio devices exported by the radio:
An Icom radio's USB audio device is named USB Audio CODEC.
3. Connect via Python¶
import asyncio
from rigplane import SerialBackendConfig, create_radio
async def main():
# Serial radio for IC-7300
config = SerialBackendConfig(device="/dev/cu.usbserial-A602RVAV", model="IC-7300")
async with create_radio(config) as radio:
# Read frequency
freq = await radio.get_freq()
print(f"Frequency: {freq / 1e6:.6f} MHz")
# Set frequency
await radio.set_freq(7_074_000)
# Read mode
mode, _ = await radio.get_mode()
print(f"Mode: {mode}")
# Enable scope; frames arrive through radio.on_scope_data(callback)
await radio.enable_scope()
asyncio.run(main())
4. CLI Usage¶
# Check connection
rigplane --backend serial --model IC-7300 --serial-port /dev/cu.usbserial-A602RVAV status
# Set frequency
rigplane --backend serial --model IC-7300 --serial-port /dev/cu.usbserial-A602RVAV freq 7074000
# Monitor metrics
rigplane --backend serial --model IC-7300 --serial-port /dev/cu.usbserial-A602RVAV meter
5. Web UI¶
Supported Features¶
| Feature | Status | Notes |
|---|---|---|
| Frequency | ✅ Full | Get/set HF/50 MHz |
| Mode | ✅ Full | USB, LSB, CW, FM, AM, RTTY, PSK, etc. |
| Power | ✅ Full | RF power 0-100W |
| Scope/Waterfall | ✅ Full | Real-time scope at 115200 baud |
| Audio RX/TX | ✅ Full | PCM and Opus codecs |
| Meters | ✅ Full | S-meter, SWR, ALC, Power, Vd, Id |
| Filters | ✅ Full | Filter width selection |
| DSP | ✅ Full | NB, NR, Twin Peak, PBT |
| Dual Watch | ⚠️ Single RX | IC-7300 has single receiver only |
Audio Subsystem¶
IC-7300 exports a USB audio device that rigplane can use. For RX/TX code, see Audio Recipes.
WSJT-X Integration¶
On macOS, bridge rigplane audio to WSJT-X through the RigPlane Virtual Cable (the RigPlane Virtual Audio Driver is installed by RigPlane Pro):
- Start the audio bridge against the cable ends:
- WSJT-X settings:
- Input Device: "RigPlane Virtual Cable Input"
- Output Device: "RigPlane Virtual Cable Output"
Troubleshooting¶
Serial Port Not Found¶
Solution: Verify the USB cable connection and check the /dev/cu.usbserial-* listing.
Low Baud Rate Warning¶
WARNING Scope disabled at low baud rate (9600 < 115200). Set allow_low_baud_scope=True to override or set ICOM_SERIAL_SCOPE_ALLOW_LOW_BAUD=1.
Solution: Set CI-V USB Baud Rate to 115200 in radio menu → Set → Connectors.
Audio Devices Not Found¶
Solution: Check that the radio's USB Audio CODEC device is listed:
CI-V Commands Timing Out¶
Solution: Verify CI-V USB Port is set to Unlink from [REMOTE], not Link to [REMOTE].
Performance Tuning¶
Serial CI-V Pacing¶
If commands are arriving too fast, raise the minimum interval between CI-V commands. The serial backend reads it when the radio object is created, so set it before starting:
# 100 ms minimum between CI-V commands (Icom default: 25 ms)
export ICOM_SERIAL_CIV_MIN_INTERVAL_MS=100
rigplane --model IC-7300 --serial-port /dev/cu.usbserial-A602RVAV web
Hardware Notes¶
- Power: the IC-7300 takes 13.8 V DC through its
[DC 13.8 V]socket, not USB power - Cable length: Keep under 3m to avoid signal integrity issues
See Also¶
- IC-7610 USB Setup — Dual-receiver configuration
- IC-705 USB Setup — Portable transceiver
- Audio Recipes — RX/TX examples
- WSJT-X Setup — Digital mode integration
Get the Packaged Desktop App¶
Prefer a packaged desktop app?
This guide covers the open-source rigplane Python library. If you want
a polished desktop application with a GUI for IC-7300 control on macOS
and Linux, check out RigPlane Pro.