Software SCU-LAN10 replacement for the Yaesu FT-710 and Icom IC-7300/IC-7300MK2 HF/50MHz transceivers. Real-time FFT spectrum plot + waterfall (FT4222 SPI or CI-V), bidirectional Opus 48kHz audio, full CAT control over 4+1 WebSocket channels — no $200 dongle required.
FT-710 Web Control — FFT spectrum plot + waterfall on iPhone
A two-minute product tour of FT-710 Web Control (Chinese narration and subtitles).
Real spectrum (FT4222 SPI or CI-V), bidirectional Opus audio, full CAT/CI-V control and multi-layer PTT safety — pluggable backends for FT-710, IC-7300 and IC-7300MK2, no middleware anywhere.
FT-710: 850-point FFT spectrum at ~21 fps read straight from the
DSP chip over FT4222 SPI. IC-7300/MK2: CI-V 0x27
475-bin scope upsampled to 850 points. TX-aware pause keeps the
scope clean while transmitting; automatic S-meter fallback when
no hardware path is available.
EMA-smoothed spectrum polyline above a 120-row history waterfall. Shared Floor/Ceil controls, six colormaps, and click-to-QSY anywhere on the spectrum.
One 48 kHz codec domain end to end: RX capture → Opus 64kbps → browser AudioWorklet; browser mic → Opus CBR → server → radio. The FT-710 backend bridges to its fixed 44.1 kHz USB-audio device boundary (960→882 per 20 ms); the IC-7300 backend uses native 48 kHz USB audio with no resample.
FT-710: direct serial CAT over the Enhanced COM Port at 38400 baud (frequency, modes, filters, VFO A/B, split, preamp, ATT, NR/NB/AN, compressor, tuner, gains). IC-7300/MK2: USB CI-V at 115200 8N1 (addr 0x94), with Icom mode/band/filter tables and capability-driven UI adaptation.
100ms→5s smart intervals, 0.25s per-query timeout ceiling, and priority preemption so PTT never waits for a poll cycle. Stale in-flight reads are discarded after user commands.
Canvas S-meter (S1–S9+60dB) with dBm readout plus full TX telemetry: PWR / ALC / SWR / Id / Vd / COMP. Memory channels with one-tap recall; every UI preference persists in cookies.
Optional networked ATR1000 antenna tuner: learned LC relay values follow every frequency change, and a server-side tune assist runs the full carrier-measure-keep-or-rollback sequence for you.
Touch-and-hold TX with instant release on touch-end. Fire-and-forget TX0 with 500ms TX-status poll + browser watchdog. Server-side forced RX when the last client — or the TX-audio owner — disconnects.
Optimised for iPhone Safari: safe-area adaptation, PWA manifest with Service Worker offline caching, Wake Lock, fullscreen toggle, and native iOS / Android companion apps.
Windows 11/12 x64 — embedded Python 3.12 runtime, no manual Python install. Start Menu launcher with per-user config in %LOCALAPPDATA%.
MRRC-Modern-Setup.exe — v1.13.0 Stable
45.4 MB · x64 · 45,433,215 bytes
SHA-256: 15ab8f9b6ddbabda0308cff041f1f5e48547d91c000724198a0b903549a808b0
v1.13.0 is zero-config on first run: it auto-generates a web password, auto-detects the radio (FT-710 ASCII CAT / Icom CI-V 0x19) and its serial port (COM), and the login page shows the auto-generated password. The web 连接设置 (Connection Settings) dialog changes the radio model, serial port, RX+TX audio devices, and password with save-and-restart — the server auto-restarts, and the launcher restarts on config change. CAT, audio, PTT, and scope behavior is unchanged from the previous release. Physical USB, RF, power-cycle, and audio-quality acceptance still requires a connected radio.
MRRC-Modern-v1.13.0-arm64.dmg — v1.13.0 Stable
55.9 MB · arm64 · Apple Silicon (M1/M2/M3/M4) · macOS 11+ · 55,883,753 bytes
SHA-256: a13935457fdc570d65e9336e89e930c2f1cfac3b8a242cba11161a5632fd404d
First run needs zero configuration: MRRC Modern auto-generates a
web password, auto-detects the radio (FT-710 ASCII CAT / Icom CI-V
0x19) and its serial port, and bundles the FT4222 true-spectrum
dylibs — the FT-710 FFT waterfall works out of the box. A web
连接设置 (Connection Settings) dialog lets you change the radio
model, serial port, RX+TX audio devices, and password with
save-and-restart. HTTPS is on by default with an auto-generated
self-signed certificate, and the server binds ::
dual-stack (IPv4+IPv6), so LAN devices reach
https://<mac-ip>:8888 (browser warns once about
the self-signed cert — accept it). The DMG is ad-hoc signed — on
first launch, right-click → Open once.
Without the FTDI DLLs the FT-710 backend falls back to the S-meter synthetic spectrum — CAT control and audio are unaffected (the IC-7300 backend needs no FTDI at all). macOS users: use the installer above, or run from source. Linux / Raspberry Pi: run from source (see Quick Start below).
Windows and macOS users take the installer track; Linux / Raspberry Pi run from source. All end at the same browser UI.
FT-710: Silicon Labs CP210x VCP driver for the Enhanced COM Port; FTDI D2XX only if you want FT4222 true spectrum. IC-7300: none — single USB cable with built-in serial driver.
Device Manager → Ports (COM & LPT) → Enhanced COM Port
MRRC-Modern-Setup.exe — v1.13.0, 45.4 MB, x64. Start Menu + optional desktop shortcut.
SHA-256 15ab8f9b6ddbabda0308cff041f1f5e48547d91c000724198a0b903549a808b0
First run auto-configures the radio and password. The web 连接设置 (Connection Settings) dialog sets the radio model, serial port, RX+TX audio devices, and password with save-and-restart.
%LOCALAPPDATA%\MRRC-Modern\mrrc_modern.env
Start Menu → MRRC Modern — the launcher starts the server and opens the browser automatically.
http://127.0.0.1:8888 → login → full control
Drag MRRC-Modern-v1.13.0-arm64.dmg → double-click to
mount → drag MRRC Modern into Applications. On
first launch, right-click the app → Open → Open (one-time
Gatekeeper bypass for the ad-hoc signature).
The menu-bar icon MRRC Modern :8888 appears and the
browser opens the login page (over HTTPS — the first time the
browser shows an "untrusted" warning, click Advanced →
Continue), which shows the auto-generated password.
Connect the FT-710 or IC-7300/MK2 via USB; the radio model and serial port auto-detect on first run.
Menu bar → 连接设置… (Connection Settings) to change the radio,
serial port, RX+TX audio devices, or password, then 保存并重启
(Save & Restart). LAN devices reach
https://<mac-ip>:8888.
Get the latest code from GitHub
git clone https://github.com/cheenle/mrrc_modern.git
Python 3.12+ with FastAPI, Uvicorn, PySerial, PyAudio, NumPy
cd mrrc_modern && pip install -r requirements.txt
Choose the radio model and serial port, then launch
MRRC_RADIO_MODEL=ft710 MRRC_SERIAL_PORT=/dev/cu.usbserial-XXXX python server.py
Any device on your network — phone, tablet, desktop. Set a strong password before exposing the server.
https://server-ip:8888 → login → full control
For real FT4222 SPI spectrum data on the FT-710, install libft4222 + libftd2xx from the wfview app bundle or FTDI website; the IC-7300 backend reads spectrum over the same USB serial cable and needs no FTDI libraries. CAT/CI-V control and audio always work without them.
4+1 WebSocket connections (optional ATR1000 tuner link), zero external middleware, built entirely on Python async frameworks. Pick the radio with MRRC_RADIO_MODEL.
SwiftUI (iOS 17+) and Kotlin/Compose (Android) companion apps — same 4+1-channel WebSocket protocol as the browser, tuned for one-handed mobile operation.
Frequency (direct entry / step / band jump), VFO A/B, mode, filter width, Preamp/ATT, AGC, NB/NR/ANotch, RF power, mic gain, squelch — all from the iPhone.
850-bin real-time waterfall with FFT curve, colormap matched to the web UI. S-meter plus TX meters (PWR / SWR / ALC / COMP) and memory channel list.
RX: Opus 48kHz decode and playback through the device speaker. TX: mic capture at 48kHz in 20 ms PCM frames — hold PTT to talk.
Kotlin + Jetpack Compose (Material3, minSdk 26) app speaking the same protocol: full control, waterfall + meters, Opus RX/TX, memory channels, and DataStore settings.
Early access — build from source
iOS build requires a physical iPhone (simulator unsupported —
bundled libopus is arm64-device-only), iOS 17+, Xcode 15 +
XcodeGen, and a TLS-enabled server. The P0 PTT-safety issues from
the 2026-07-20 audit are resolved — TX uplink ownership follows
the keying client. Android: pure logic (protocol, PTT, spectrum,
memory channels) is covered by JVM tests via
./gradlew test assembleDebug lintDebug; on-device RF
acceptance is pending.
Scan the QR code with WeChat to join the MRRC-HAM group.
QR code valid until Aug 29, 2026. Will be updated when refreshed.
IBM TeamSD methodology · 15 chapters · V2.27 · Architecture decisions, component model, PTT safety, and full version history.