十一款 HF/50MHz 机型的浏览器远程控制:八重洲 FT-710 与 SDR 机型族 FTDX10 / FTDX101D / FTDX101MP / FTX-1F / FT-891,Icom IC-7300 / IC-7300MK2,另含 IC-705 / IC-7610 / IC-7760 预览配置。实时 FFT 频谱图 + 瀑布图(FT4222 SPI 或 CI-V)、双向 Opus 48kHz 音频、服务端 QSO 录音(直接落 MP3)、4+1 路 WebSocket 全功能 CAT/CI-V 控制,无需 200 美元的硬件盒子。
v1.28.1 更新内容 完整更新日志 →
博客新文:125 元的盒子:把 FT-710 变成随时能用的远程电台。一台远程电台服务端到底需要什么、与树莓派/小主机怎么比,以及真机拓出的六个坑。全部文章 →
sign_for() 现在幂等:同名且证书可用就逐字节复用、不重签,于是「签了但登记没成功」不会再让
hub 钉住的与实例服务的成为两把(现场入口整夜 502 就是这个形态);已经坏掉的实例点一次「连接」即自愈。
FT8 深路径也不再带走服务器进程的 DSP worker:原生解码器里的 Fortran stop 此前每个时隙都
终止子进程,而且是无声的 —— launcher 的启动 tee 在服务器答 HTTP 后就不再写盘。worker 自己的
stdout/stderr 现在落到 logs/ft8-worker.log(诊断包收集),FFTW 线程初始化改为返回状态码
而不再 abort。
cty.dat、兄弟 venv 被装进 ARM 镜像、三条 POSIX-only 测试在 Windows 上从未被收集)。
本页每个尺寸与 SHA-256 都由 release_check.py对照构建产物校验:下载卡片过期会直接让构建失败,而不是发布出去。
macOS 首次启动:右键 → 打开(应用为自签名);并在系统询问 麦克风时点 「允许」。这项权限承载的正是电台的音频输入,缺了它接收会静音且不报任何错误。若看到的是「已损坏,无法打开」,说明下载的是 v1.18.1 之前的包(其签名从未成功),请用本版本。详见 macOS 使用指南。
FT-710 Web 控制 — iPhone 上的 FFT 频谱图 + 瀑布图
两分钟了解 MRRC Modern:远程操控、实时频谱、双向音频。
真实频谱(FT4222 SPI 或 CI-V)、双向 Opus 音频、服务端 QSO 录音、全功能 CAT/CI-V 控制与多层 PTT 安全十一款可插拔机型: FT-710、IC-7300/IC-7300MK2,IC-705 / IC-7610 / IC-7760 预览配置,以及 Yaesu SDR 机型族 FTDX10 / FTDX101D / FTDX101MP / FTX-1F,全链路零中间件。
FT-710:约 21 fps 的 850 点 FFT 频谱,直接读自 DSP 芯片的
FT4222 SPI 接口。IC-7300/MK2:CI-V 0x27 475 点
频谱升采样到 850 点。发射感知暂停保持频谱干净,无硬件路径时
自动回退到 S 表合成频谱。
EMA 平滑的频谱折线叠加在 120 行历史瀑布之上。共享 Floor/Ceil 控制、六种色图,点击频谱任意位置直接 QSY。
端到端统一 48 kHz 编解码域:RX 采集 → Opus 64kbps → 浏览器 AudioWorklet;浏览器麦克风 → Opus CBR → 服务器 → 电台。 FT-710 后端桥接到固定 44.1 kHz USB 音频设备域(每 20 ms 960→882 采样);IC-7300 后端使用 48 kHz 原生 USB 音频,无需 重采样。
FT-710:Enhanced COM 口 38400 波特直连串口 CAT(频率、模式、滤波、VFO A/B、分频、前置放大、衰减、NR/NB/AN、压缩器、天调、增益)。IC-7300/MK2:USB CI-V 115200 8N1(地址 0x94),按 Icom 模式/波段/滤波表并由能力驱动的前端自适应界面。
100ms→5s 智能间隔,0.25 秒单查询超时上限,优先级抢占保证 PTT 绝不等待轮询周期。用户命令后的在途过期读取一律丢弃。
Canvas S 表(S1–S9+60dB)带 dBm 读数,完整发射遥测: PWR / ALC / SWR / Id / Vd / COMP。记忆频道一键召回;所有界面 偏好均以 Cookie 持久化。
浏览器上点 REC,整段通联在服务端录制:刷新页面、关标签页、甚至 CAT 断线都不会中断。收发音落在同一条单调 16 kHz 时间轴上,边到边编码为 MP3;服务器中途崩溃,磁盘上 也留有可播放的前缀。
MRRC_RECORDINGS_MAX_SESSION_MIN只停不删可选的联网 ATR1000 天线调谐器:学习到的 LC 继电器值随每次频率 变化自动应用;服务端调谐辅助自动执行「载波—测量—保留或回滚」全流程。
插在盒子 USB 上的 NanoVNA-H 变成一台矢量分析仪页面 /Nano:
量的是天线本身的复数 S11,而不是拿反射功率反推。
FT8 收发就在同一个服务端里 —— 解码跑在独立的工作进程,所以一通 SSB 和一个 弱信号时隙可以共用这台电台。
盒子上的 SDRplay RSP1 变成一台公开的 Web 接收器 /sdr:
10 kHz – 2 GHz,自己的口令与页面,与电台控制面零耦合。
(偏移, 模式, 带宽) 的解调器共享盒子配对一支蓝牙 HID 遥控器,直接驱动电台 —— 不用浏览器、不用登录: 操作员站在天线旁边,用手柄就能调。
ptt:false;电源键刻意忽略真需要第二双眼睛时,盒子可以临时对支持方开一扇限时 SSH 窗 —— 你不点, 它就一直不存在。
菜单里的 🐞 遇到问题由服务端生成脱敏诊断包(日志、配置快照、电台/音频状态与自动体检结论),上传到本项目自己的接收端;没有网络时可只保存到本地。结论发布在答复页,可按编号或关键词搜索;结论背后的工程回路(bug/需求/环境自动分类、排期与无人值守修复)在 FDE 看板。
按住发射、松手即停。Fire-and-forget TX0 + 500ms 发射状态轮询 + 浏览器看门狗。最后一个客户端(或 TX 音频属主)断开时,服务端强制切回接收。
为 iPhone Safari 优化:安全区适配、PWA 清单与 Service Worker 离线缓存、Wake Lock 防息屏、全屏切换,另有原生 iOS / Android 配套应用。
电台和天线不动,盒子照旧留在家里。它自己往外拨一条连接,你在浏览器里就能开台。 公网 IP、端口映射、路由器设置,一样都不用碰。
盒子只往外拨,不朝外开口子。路由器不用动。家庭宽带、4G、公司网,一样跑。
入口就是 <呼号>.mrrc.vlsc.net。呼号即账号,不必另起一套用户名。
Hub 只传话,从不按发射。掉线那刻把电台扳回接收的,是它旁边那台机器,不是云上的计时器。
浏览器到 Hub 用真证书,Hub 到你的盒子按入口名逐台校验证书。没有哪一跳,是靠关掉校验换来的。
图里那台路由器,换成 Wi-Fi AP 也一样。盒子与手机同网即可直连。
隧道出屋,射频不出屋。
Cloud Hub 完整站点 →
Windows 11/12 x64:内嵌 Python 3.12 运行时,无需手动安装 Python。开始菜单启动器,用户配置存于 %LOCALAPPDATA%。
MRRC-Modern-Setup.exe — v1.28.1 稳定版
75.7 MB · x64 · 79,386,940 bytes
SHA-256: cfbeacc7…
☰ 菜单里现在有电台自己的电源开关(「重开」= 关机后按有界、可取消的循环持续唤醒;「关机」= 关掉就不 再上电),菜单最下边还会显示你正在跑的版本号。出站 HTTPS(门户、隧道、诊断包上传)只信安装包里随包的根证书, 不再采信本机的证书库。原生 DSP 库与它的运行期依赖依旧一起装进安装包,你机器上不需要编译任何东西。首次运行 仍然是零配置:自动生成网页密码并显示在登录页,自动识别电台(FT-710 ASCII CAT / Icom CI-V)与串口。网页「连接设置」 依旧可以改电台型号、串口、RX+TX 声卡与口令,保存后自动重启。
MRRC-Modern-v1.28.1-arm64.dmg — v1.28.1 稳定版
81.1 MB · arm64 · Apple Silicon(M1/M2/M3/M4)· macOS 11+ · 85,064,796 bytes
SHA-256: 1c9ba24e…
首次运行零配置:MRRC Modern 自动生成网页密码、自动识别电台(FT-710 ASCII CAT / Icom CI-V 0x19)与串口,并内置 FT4222 真频谱
动态库,FT-710 的 FFT 瀑布图开箱即用(v1.25.1 修好了启动器路径,此前采集进程根本
找不到这些动态库)。网页「连接设置」对话框可修改
电台型号、串口、RX+TX 音频设备与密码,支持保存并重启。默认启用
HTTPS(自动生成自签名证书),服务端绑定 ::双栈(IPv4+IPv6),局域网设备可访问
https://<mac-ip>:8888(浏览器首次会提示证书不受
信任,点「高级 → 继续访问」即可)。DMG 为 ad-hoc 签名,首次启动请右键打开。
MRRC-Modern-rpi64.img.xz — 树莓派
531 MB (530,820,848 bytes) · arm64 · Pi 3B+/4/5 · Raspberry Pi OS Lite 64-bit(Bookworm)
SHA-256: a00ab22897bf3e3565fcb5b50eff9585b2885c7b831dd2ae594672d62475e5be
用 Raspberry Pi Imager(「使用自定义镜像」)烧卡,上电后浏览器打开
https://raspberrypi.local:8888。首启零配置:自动生成
网页密码(HDMI 控制台 / SSH motd / sudo mrrc-show-password),或烧卡前把 mrrc.env放到 boot 分区预置自己的密码。电台与串口自动识别;FT-710 真频谱开箱即用(1.26.0 起镜像内置 aarch64 FTDI 库);
IC-7300 经 CI-V 开箱即用。
MRRC-Modern-1.28.4-w103d.img.gz — 中兴 W103D 盒子
1.22 GB(1,220,510,546 字节)· arm64 · 中兴 W103D(Amlogic S905L3A,2 GB 内存)· Armbian 26.11 bookworm
SHA-256: 14dbf2dd8b8326db4457ab8a81b9182aaf8c4c9244b5ec41e967e15906125b51
针对这款盒子预装好的服务端镜像,出厂即用、不需要任何初始化:网页口令与系统账号 root/mrrc 已分别是 abcd!1234 与 abcd1234,时区 Asia/Shanghai、区域 zh_CN.UTF-8。烧到 U 盘、从 U 盘启动(只写一次 u-boot 启动顺序,不碰原厂安卓的分区与数据),打开 https://<盒子IP>:8888 就能登录。第一件事是把这三个口令改掉,用户指南里有步骤。mrrc-radio 在 11 个支持的机型之间切换。验收通过后把系统固化进机身 eMMC,最终只剩一根电源线和一根网线,而 U 盘上的整盘备份随时可以退回去。
缺少 FTDI DLL 时 FT-710 后端自动回退到 S 表合成频谱,CAT 控制与音频不受影响(IC-7300 后端完全不需要 FTDI)。macOS / Windows:请使用 上方安装包。树莓派:烧录上方镜像。通用 Linux:从源码运行(见下方 快速上手)。
Windows 与 macOS 用户走安装包路线;Linux / 树莓派从源码运行。殊途同归,都是同一个浏览器界面。
FT-710:为 Enhanced COM 口安装 Silicon Labs CP210x VCP 驱动;需要 FT4222 真频谱时再装 FTDI D2XX。IC-7300:无需额外驱动,单根 USB 线即带串口驱动。
设备管理器 → 端口 (COM 和 LPT) → Enhanced COM Port
MRRC-Modern-Setup.exe — v1.28.1,75.7 MB,x64。开始菜单 + 可选桌面快捷方式。
SHA-256 cfbeacc75e899ed1ff04a6a9da5a9d37d3f0200d89b77440215266eddde33938
首次运行自动识别电台与密码。网页「连接设置」对话框可设置电台 型号、串口、RX+TX 音频设备与密码,支持保存并重启。
%LOCALAPPDATA%\MRRC-Modern\mrrc_modern.env
开始菜单 → MRRC Modern:启动器自动拉起服务并打开浏览器。
https://127.0.0.1:8888 → 登录 → 完整控制
拖动 MRRC-Modern-arm64.dmg → 双击挂载 →
将 MRRC Modern拖入「应用程序」。首次启动请右键
应用 → 打开 → 打开(一次性绕过 Gatekeeper 的 ad-hoc 签名)。
macOS 11.3+ 已内置 CP210x 支持,FT-710 串口免驱(macOS 15.3 实测)。仅 macOS 10.11–11.2需先装 Silicon Labs CP210x VCP 驱动 v6.0.3:SiLabsUSBDriverDisk.dmg (挂载 → 双击安装器 → 系统设置批准内核扩展;Apple Silicon 需先 把启动安全性降到「允许用户管理内核扩展」)。FT4222 真频谱库已 随应用打包,无需另装 D2XX。
ls /dev/cu.usbserial-*
菜单栏出现 MRRC Modern :8888图标,浏览器自动打开(走 HTTPS,首次会提示「连接不安全」,点高级 → 继续访问),登录页
显示自动生成的密码。
FT-710 或 IC-7300/MK2 通过 USB 连接;首次运行时电台型号与串口 自动识别。
菜单栏 → 连接设置…(Connection Settings)可修改电台、串口、
RX+TX 音频设备或密码,然后保存并重启。局域网设备可访问
https://<mac-ip>:8888。
可选驱动(一般不用装,macOS 自带支持):FTDI D2XX (FT-710 频谱兑底)· SiLabs CP210x (串口兜底):前置动作与安装步骤见指南 §0.7。
从 GitHub 获取最新代码
git clone https://github.com/cheenle/mrrc_modern.git
Python 3.12+,FastAPI、Uvicorn、PySerial、PyAudio、NumPy
cd mrrc_modern && pip install -r requirements.txt
选择电台型号并指定串口后启动
MRRC_RADIO_MODEL=ft710 MRRC_SERIAL_PORT=/dev/cu.usbserial-XXXX python server.py
网络内任意设备:手机、平板、电脑。对外暴露前务必设置强密码。
https://服务器IP:8888 → 登录 → 完整控制
FT-710 需要 FT4222 SPI 真实频谱时安装 libft4222 + libftd2xx(可从 wfview 应用包或 FTDI 官网获取);IC-7300 后端直接复用 USB 串口读 频谱,无需任何 FTDI 库。CAT/CI-V 控制与音频始终无需 FTDI。
4+1 条 WebSocket 连接(可选 ATR1000 天调链路),零外部中间件依赖,完全基于 Python 异步框架构建。用 MRRC_RADIO_MODEL 选择电台。
SwiftUI(iOS 17+)与 Kotlin/Compose(Android)配套应用,与浏览器共用同一套 4+1 通道 WebSocket 协议,为单手移动操作优化。
频率(直接输入 / 步进 / 波段跳转)、VFO A/B、模式、滤波带宽、前置放大/衰减、AGC、NB/NR/ANotch、射频功率、麦克风增益、静噪,全部在 iPhone 上完成。
850 点实时瀑布配 FFT 曲线,色图与 Web 界面一致。S 表加发射 仪表(PWR / SWR / ALC / COMP)以及记忆频道列表。
RX:Opus 48kHz 解码并从机身扬声器播放。TX:48kHz 麦克风采集、 20ms PCM 帧,按住 PTT 即讲话。
Kotlin + Jetpack Compose(Material3,minSdk 26)应用,与浏览器 同协议:完整控制、瀑布 + 仪表、Opus 收发、记忆频道与 DataStore 设置。
MRRC-Modern-v1.1.32-Android.apk · 9.0 MB · SHA-256 dbd3a49ee752e731351bf7b0e6c065cb82af41ccd4b1c41cfbeb4e6066c1f65e
安装:系统设置允许「安装未知应用」后点开 APK。
⚠ 本版换了签名密钥:请先卸载已装的旧版 App,再安装本包(卸载会清空 App 内的服务器设置与登录信息)。
早期版本:需从源码构建
iOS 构建需要实体 iPhone(模拟器不支持,内置 libopus 仅限 arm64 真机)、iOS 17+、Xcode 15 + XcodeGen,以及启用 TLS 的服务端。
2026-07-20 审计发现的 P0 PTT 安全问题已解决:TX 上行属主跟随实际按键的客户端。Android:纯逻辑(协议、PTT、频谱、记忆频道)已通过 ./gradlew test assembleDebug lintDebug的
JVM 测试;真机射频验收待完成。
使用微信扫描二维码加入 MRRC-HAM 群组。
二维码有效期至 2026 年 10 月 8 日,刷新后将会更新。
升级后行为异常、或想从零开始:下载清理脚本(说明与注意事项见指南 §6.2),一键卸载并清掉历史残留(会先备份到桌面)。
随笔:阳春白雪与下里巴人:论肌肉与思维(48 小时、两个模型、六个版本之后的复盘)
随笔与技术:博客,电台怎么接上云端,以及上线首日学到了什么。