Skip to content

Repository files navigation

Mi Remote USB Bridge

把小米遥控器 2 Pro(RC003)和已测联通遥控器的蓝牙按键与语音,经 CH582F 小板桥接到 USB。 Windows 不再直接连接遥控器,应用通过串口协议读取按键和录音,因此 Home、语音等键不会自动变成系统键盘输入。

已发布固件:0.6.6,协议 RBP/3.0。 已在 CH582F + RC003 + Windows 上实测配对、按键、语音及 release 错误记录。此前版本已验证长录音和掉线重连;不是每个版本都重跑了全部射频场景。macOS 有串口及动作注入实现,尚未完成真机验收。

已加入联通 HID/ICO 方案与主机 PCM 解码。用户确认 MTU=23 对照固件解决联通初始化失败;0.6.6 固定使用该设置。详细实测范围见 发布记录,上位机接入见 使用指南统一按键接口

当前源码为 0.6.14(RBP/3 不变),新增持久化 GATT 缓存、联通语音预收、有界快速重连及更完整的底层错误记录。主机回归测试与 debug/release 编译通过;0.6.13-debug 已实测快速重试,0.6.14 release 尚未完成实机回归。联通首次建联仍可能出现 0x3E,录音分片连续性异常仍待定位,不能视为已修复。过程与验证边界见 重连记录;最新源码固件请按构建指南编译,以下预编译下载仍为 0.6.6。

功能与边界

维护者可通过 GitHub Actions 发版,手动指定版本号或留空自动生成,构建 non-debug 固件并发布 Release。

  • 手动扫描、显示候选、选择配对、解除绑定;不会扫描到就自动配对。
  • 保存绑定与自动重连设置;启用后板子上电自主恢复连接,无需上位机发起。
  • USB CDC 承载逻辑按键、电量、连接/配对状态及压缩音频;不枚举成键盘或系统麦克风。
  • 遥控器按住语音键录音,板子传原始压缩数据及解码元信息,上位机解码/保存 WAV。
  • RC003 一次录音约 60 秒上限;已取消自动续录,release 不启用主机主动开麦实验。
  • release 保留原始 SDK/GAP/GATT/ATVV/存储错误记录,GUI、CLI 自动读取。
  • RBP/3 可登记其他音频编码;目前仅支持已验证的小米 RC003 和联通 HID/ICO 配置,不能据此声称支持耳机、PS4 手柄或任意遥控器。

快速开始

  1. 使用 0.6.6 固件,按 构建和刷写 操作。
  2. Python 3.11+,在项目根目录执行(Windows PowerShell):
python -m venv tools/demo-venv
.\tools\demo-venv\Scripts\python.exe -m pip install -r demo/requirements.txt
.\tools\demo-venv\Scripts\python.exe demo/rbp_gui.py --port COM7

替换为实际端口。macOS 使用对应 Python 和 /dev/cu.* 端口;不要同时启动两个串口客户端。

联通语音需先构建主机 ICO 解码库:python client/c/ico/build.py(需要原生 GCC/Clang,详见 解码依赖)。仅安装 Python 包不包含此原生库。

  1. 遥控器进入配对模式,GUI 点击 Scan → 选中候选 → Pair selected。已绑定设备无需重新配对。
  2. 勾选 Record next voice streams… 选择目录,再按住语音键说话。按键注入需要显式启用 Enable mapped OS actions
  3. Diagnostics (release) 显示统计和最近 4 条原始记录;详细日志在 build/logs/gui-session.log

CLI 录音和日志:

.\tools\demo-venv\Scripts\python.exe demo/rbp_diag.py --port COM7 --record-dir build/recordings --log build/logs/diagnostic.jsonl --compact-log

--scan 只发现;--pair 需要手动输入候选序号。详见 上位机接入

代码布局

目录 内容
firmware/product RBP 会话、设备模型、队列、release 诊断
firmware/adapters HOGP、RC003/ATVV 与联通 HID/ICO 适配器
firmware/wch 板级、BLE/GATT、USB,以及固定 WCH SDK 子集
protocol RBP/3 C 帧/TLV、音频结构、schema、测试向量
client/python 独立 Python SDK,可安装;不依赖 Qt
client/dotnet 新增 .NET 9 RBP/3 会话与音频 SDK,见该目录 README
client/c 可选 C 音频解码库;不是完整串口会话 SDK
demo CLI、GUI、WAV/映射/离线重放
tests, sim 自动回归与 C 模拟器
releases/0.6.6 当前固件、校验清单与验收范围

开发文档

架构 · 完整协议 · 压缩音频契约 · ATVV 实现 · SDK/上位机 · 测试 · 诊断 · SDK 修改 · 参考资料

自有代码采用 MIT,WCH SDK 和其他第三方组件遵循 各自条款。本项目与小米、WCH 无官方隶属关系。

About

CH582F BLE-to-USB bridge for Xiaomi RC003 remote buttons and compressed voice, with RBP/3 host SDK and demos

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages