v1.13.0 · 稳定版

一根 USB 线
任意设备操控

八重洲 FT-710 与 Icom IC-7300/IC-7300MK2 HF/50MHz 电台的软件化 SCU-LAN10 替代方案。实时 FFT 频谱图 + 瀑布图(FT4222 SPI 或 CI-V)、双向 Opus 48kHz 音频、4+1 路 WebSocket 全功能 CAT/CI-V 控制——无需 200 美元的硬件盒子。

FT-710 Web 控制界面截图

FT-710 Web 控制 — iPhone 上的 FFT 频谱图 + 瀑布图

观看宣传视频

两分钟了解 FT-710 Web Control:远程操控、实时频谱、双向音频。

完整的多电台远程控制

真实频谱(FT4222 SPI 或 CI-V)、双向 Opus 音频、全功能 CAT/CI-V 控制与多层 PTT 安全——FT-710、IC-7300 与 IC-7300MK2 可插拔后端, 全链路零中间件。

真实频谱 — FT4222 SPI 与 CI-V

FT-710:约 21 fps 的 850 点 FFT 频谱,直接读自 DSP 芯片的 FT4222 SPI 接口。IC-7300/MK2:CI-V 0x27 475 点 频谱升采样到 850 点。发射感知暂停保持频谱干净,无硬件路径时 自动回退到 S 表合成频谱。

  • FT4222 SPI 直读(libft4222 + libftd2xx)
  • CI-V 0x27 频谱复用同一 USB 串口
  • 发射感知暂停——告别 PTT 后频谱错乱

FFT 频谱线 + 瀑布图

EMA 平滑的频谱折线叠加在 120 行历史瀑布之上。共享 Floor/Ceil 控制、六种色图,点击频谱任意位置直接 QSY。

  • 约 30 fps S 表回退保持瀑布不断流
  • 点击 QSY,带滚动手势拖拽保护
  • 发射时明确显示"TX 发射中 — 频谱暂停"

双向 Opus 音频

端到端统一 48 kHz 编解码域:RX 采集 → Opus 64kbps → 浏览器 AudioWorklet;浏览器麦克风 → Opus CBR → 服务器 → 电台。 FT-710 后端桥接到固定 44.1 kHz USB 音频设备域(每 20 ms 960→882 采样);IC-7300 后端使用 48 kHz 原生 USB 音频,无需 重采样。

  • 64kbps Opus——比裸 PCM 小 12 倍
  • 零音频看门狗,声卡卡死即时告警
  • PTT 优雅释放——完整保留话音尾音

全功能 CAT / CI-V 控制

FT-710:Enhanced COM 口 38400 波特直连串口 CAT(频率、模式、 滤波、VFO A/B、分频、前置放大、衰减、NR/NB/AN、压缩器、天调、 增益)。IC-7300/MK2:USB CI-V 115200 8N1(地址 0x94),按 Icom 模式/波段/滤波表并由能力驱动的前端自适应界面。

  • 无 Hamlib / wfview / 中间件——串口直连
  • 脏字段追踪,最小化 WebSocket 流量
  • 滤波带宽设置后读回验证

自适应轮询

100ms→5s 智能间隔,0.25 秒单查询超时上限,优先级抢占保证 PTT 绝不等待轮询周期。用户命令后的在途过期读取一律丢弃。

  • 串口总占用约 296 字节/秒
  • 转 RX 时发射仪表自动清零
  • 每次串口重连后自动重发频谱初始化

仪表与记忆频道

Canvas S 表(S1–S9+60dB)带 dBm 读数,完整发射遥测: PWR / ALC / SWR / Id / Vd / COMP。记忆频道一键召回;所有界面 偏好均以 Cookie 持久化。

  • 内置初始频道,按用户存储
  • AF 音量、频谱选项、麦克风增益全部记忆

ATR1000 天调联动

可选的联网 ATR1000 天线调谐器:学习到的 LC 继电器值随每次频率 变化自动应用;服务端调谐辅助自动执行"载波—测量—保留或回滚" 全流程。

  • 默认关闭——无硬件时零影响
  • 学习门限 SWR 1.0–1.8,±5kHz 就近匹配

多层 PTT 安全

按住发射、松手即停。Fire-and-forget TX0 + 500ms 发射状态轮询 + 浏览器看门狗。最后一个客户端——或 TX 音频属主——断开时服务端 强制切回接收。

  • 7 层独立释放机制——无单点故障
  • TX 上行属主跟随实际按 PTT 的客户端
  • 断 RF 前优雅排空 TX 音频

移动优先界面

为 iPhone Safari 优化:安全区适配、PWA 清单与 Service Worker 离线缓存、Wake Lock 防息屏、全屏切换,另有原生 iOS / Android 配套应用。

  • PWA 清单 + Service Worker 离线缓存
  • Wake Lock API(屏幕常亮)
  • iOS 17+ 与 Android 原生应用共用同一协议

Windows 桌面安装包

Windows 11/12 x64——内嵌 Python 3.12 运行时,无需手动安装 Python。开始菜单启动器,用户配置存于 %LOCALAPPDATA%。

MRRC-Modern-Setup.exe — v1.13.0 稳定版

45.4 MB · x64 · 45,433,215 bytes
SHA-256: 15ab8f9b6ddbabda0308cff041f1f5e48547d91c000724198a0b903549a808b0

v1.13.0 首次运行零配置:自动生成网页密码,自动识别电台 (FT-710 ASCII CAT / Icom CI-V 0x19)与串口(COM),登录页 直接显示自动生成的密码。网页"连接设置"对话框可修改电台型号、 串口、RX+TX 音频设备与密码,支持保存并重启——服务自动重启, 启动器在配置变更后也会自动重启。CAT、音频、PTT、频谱行为与 上一版本完全一致。真实 USB、射频、电源循环和音频质量仍需 连接电台验收。

下载 Windows 版 v1.13.0 版本化安装包 GitHub Releases

MRRC-Modern-v1.13.0-arm64.dmg — v1.13.0 稳定版

55.9 MB · arm64 · Apple Silicon(M1/M2/M3/M4)· macOS 11+ · 55,883,753 bytes
SHA-256: a13935457fdc570d65e9336e89e930c2f1cfac3b8a242cba11161a5632fd404d

首次运行零配置:MRRC Modern 自动生成网页密码、自动识别电台 (FT-710 ASCII CAT / Icom CI-V 0x19)与串口,并内置 FT4222 真频谱 动态库——FT-710 的 FFT 瀑布图开箱即用。网页"连接设置"对话框可修改 电台型号、串口、RX+TX 音频设备与密码,支持保存并重启。默认启用 HTTPS(自动生成自签名证书),服务端绑定 :: 双栈 (IPv4+IPv6),局域网设备可访问 https://<mac-ip>:8888(浏览器首次会提示证书不受 信任,点"高级 → 继续访问"即可)。DMG 为 ad-hoc 签名——首次启动请 右键 → 打开。

macOS 安装与设置指引 →

下载 macOS 版 GitHub Releases

缺少 FTDI DLL 时 FT-710 后端自动回退到 S 表合成频谱——CAT 控制与 音频不受影响(IC-7300 后端完全不需要 FTDI)。macOS 用户请使用 上方安装包,或从源码运行;Linux / 树莓派请从源码运行(见下方 快速上手)。

五分钟跑起来

Windows 与 macOS 用户走安装包路线;Linux / 树莓派从源码运行。 殊途同归,都是同一个浏览器界面。

路线 A — Windows 安装包

1 · 安装驱动

FT-710:为 Enhanced COM 口安装 Silicon Labs CP210x VCP 驱动; 需要 FT4222 真频谱时再装 FTDI D2XX。IC-7300:无需额外驱动—— 单根 USB 线即带串口驱动。

设备管理器 → 端口 (COM 和 LPT) → Enhanced COM Port

2 · 运行安装包

MRRC-Modern-Setup.exe — v1.13.0,45.4 MB,x64。开始菜单 + 可选桌面快捷方式。

SHA-256 15ab8f9b6ddbabda0308cff041f1f5e48547d91c000724198a0b903549a808b0

3 · 编辑配置

首次运行自动识别电台与密码。网页"连接设置"对话框可设置电台 型号、串口、RX+TX 音频设备与密码,支持保存并重启。

%LOCALAPPDATA%\MRRC-Modern\mrrc_modern.env

IC-7300 与 FT-710 的 Windows 配置详解 →

4 · 启动

开始菜单 → MRRC Modern——启动器自动拉起服务并打开浏览器。

http://127.0.0.1:8888 → 登录 → 完整控制

路线 B — macOS 安装包

1 · 安装

拖动 MRRC-Modern-v1.13.0-arm64.dmg → 双击挂载 → 将 MRRC Modern 拖入"应用程序"。首次启动请右键 应用 → 打开 → 打开(一次性绕过 Gatekeeper 的 ad-hoc 签名)。

2 · 启动

菜单栏出现 MRRC Modern :8888 图标,浏览器自动打开 (走 HTTPS,首次会提示"连接不安全",点高级 → 继续访问),登录页 显示自动生成的密码。

3 · 连接电台

FT-710 或 IC-7300/MK2 通过 USB 连接;首次运行时电台型号与串口 自动识别。

4 · 微调

菜单栏 → 连接设置…(Connection Settings)可修改电台、串口、 RX+TX 音频设备或密码,然后保存并重启。局域网设备可访问 https://<mac-ip>:8888

路线 C — 源码运行(Linux / 树莓派)

1 · 克隆仓库

从 GitHub 获取最新代码

git clone https://github.com/cheenle/mrrc_modern.git

2 · 安装依赖

Python 3.12+,FastAPI、Uvicorn、PySerial、PyAudio、NumPy

cd mrrc_modern && pip install -r requirements.txt

3 · 启动服务

选择电台型号并指定串口后启动

MRRC_RADIO_MODEL=ft710 MRRC_SERIAL_PORT=/dev/cu.usbserial-XXXX python server.py

4 · 打开浏览器

网络内任意设备——手机、平板、电脑。对外暴露前务必设置强密码。

https://服务器IP:8888 → 登录 → 完整控制

你需要什么

八重洲 FT-710 Icom IC-7300 / IC-7300MK2 USB 线(A→B 或 C→B) Windows 安装包(内置 Python) 或源码运行 Python 3.12+ Windows / macOS / Linux / 树莓派 现代浏览器 FTDI 库(仅 FT-710 频谱)

FT-710 需要 FT4222 SPI 真实频谱时安装 libft4222 + libftd2xx(可从 wfview 应用包或 FTDI 官网获取);IC-7300 后端直接复用 USB 串口读 频谱,无需任何 FTDI 库。CAT/CI-V 控制与音频始终无需 FTDI。

一个进程,可插拔后端

4+1 条 WebSocket 连接(可选 ATR1000 天调链路),零外部中间件依赖, 完全基于 Python 异步框架构建。用 MRRC_RADIO_MODEL 选择电台。

浏览器 手机 / 平板 / 桌面 AudioWorklet · Canvas WASM Opus · PWA MRRC Modern Server FastAPI + Uvicorn 单 Python 进程 Windows / macOS / Linux / RPi FT-710 / IC-7300 HF/50MHz SDR CAT / CI-V SPI / 0x27 HTTPS / WSS 4+1 路 WS USB /WSradio JSON · fullState + partial /WSaudioRX 1B tag + Opus / PCM /WSaudioTX Mic uplink · Opus 64kbps CBR /WSspectrum 850 uint8 · ~21 fps
CAT / CI-V
FT-710 CAT · IC-7300 CI-V
八重洲 ASCII CMD; · Icom BCD CI-V
频率、模式、VFO、滤波器、增益、PTT、表头
频谱 — SPI / CI-V
FT4222 SPI · CI-V 0x27
ctypes → libft4222 / CI-V 频谱
4096 字节数据块, 850 点 FFT 瀑布图
USB 音频
USB Audio Class
PyAudio 采集 / 播放
FT-710 44.1kHz · IC-7300 48kHz 原生
WebSocket API
4+1 个端点 · Token 鉴权
JSON 控制 + Binary 音频/频谱
REST: /api/status, /api/auth, /api/mem_channels

频谱、音频、串口——用数字说话

850 点
FFT 频谱
每帧来自 FT4222 SPI
~21 fps
真实频谱帧率
4096B 块,0xFF01EE01 同步
120
瀑布历史行
历史深度
48kHz
编解码域
Opus 64kbps CBR,比 PCM 小 12×
0.25s
轮询超时上限
PTT 绝不等待查询
633
无硬件依赖测试
v1.12.0 发布版,macOS + Windows 双端

技术栈

FastAPI + Uvicorn asyncio PySerial PyAudio / PortAudio libopus ctypes FT4222 SPI AudioWorklet WASM Opus Web Audio API Service Worker PWA

原生 iOS 与 Android 客户端

SwiftUI(iOS 17+)与 Kotlin/Compose(Android)配套应用——与浏览器 共用同一套 4+1 通道 WebSocket 协议,为单手移动操作优化。

完整电台控制

频率(直接输入 / 步进 / 波段跳转)、VFO A/B、模式、滤波带宽、 前置放大/衰减、AGC、NB/NR/ANotch、射频功率、麦克风增益、 静噪——全部在 iPhone 上完成。

  • 4 路加密 WebSocket 通道(wss)
  • 令牌认证,密码存钥匙串

瀑布图 + 仪表

850 点实时瀑布配 FFT 曲线,色图与 Web 界面一致。S 表加发射 仪表(PWR / SWR / ALC / COMP)以及记忆频道列表。

  • 与浏览器相同的二进制频谱帧
  • 深琥珀主题,横竖屏皆宜

Opus 语音收发

RX:Opus 48kHz 解码并从机身扬声器播放。TX:48kHz 麦克风采集、 20ms PCM 帧——按住 PTT 即讲话。

  • libopus 真机构建(arm64)
  • 设置项:自动重连、增益、音量

Android 客户端 — FT710Android

Kotlin + Jetpack Compose(Material3,minSdk 26)应用,与浏览器 同协议:完整控制、瀑布 + 仪表、Opus 收发、记忆频道与 DataStore 设置。

  • PTT 状态机从第一版就是一等公民
  • 纯逻辑(协议 / PTT / 频谱)已过 JVM 测试——真机射频验收待完成

早期版本——需从源码构建

iOS 构建需要实体 iPhone(模拟器不支持——内置 libopus 仅限 arm64 真机)、iOS 17+、Xcode 15 + XcodeGen,以及启用 TLS 的服务端。 2026-07-20 审计发现的 P0 PTT 安全问题已解决——TX 上行属主跟随 实际按键的客户端。Android:纯逻辑(协议、PTT、频谱、记忆频道) 已通过 ./gradlew test assembleDebug lintDebug 的 JVM 测试;真机射频验收待完成。

iOS 应用 on GitHub Android 应用 on GitHub

加入 MRRC-HAM 微信群

使用微信扫描二维码加入 MRRC-HAM 群组。

MRRC-HAM 微信群二维码

二维码有效期至 2026 年 8 月 29 日,刷新后将会更新。

软件设计描述(SDD)

IBM TeamSD 方法论 · 15 章 · V2.27 · 架构决策、组件模型、PTT 安全与 完整版本历史。

浏览 SDD 全部章节
AD-001–016 65 项 NFR 8 个用例 7 层 PTT 安全 可行性评估