主题
快速开始
你需要准备
| 物品 | 用途 |
|---|---|
| 微雪 RP2350-USB-C 开发板 | 目标板,自带双 USB-C 口(也可使用 RP2350 开发板自行焊接) |
| USB 数据线 ×1–2 | 原生口连主机;PIO-USB 口接键鼠 |
| UF2 固件文件 | 群文件获取(点击加群) |
| Android 手机 | 目标平台(本项目仅适配 Android) |
可选:
| 物品 | 用途 |
|---|---|
| USB 键盘 / 鼠标 | PIO 切换为 Host 模式后,通过 USB Hub 接 PIO-USB-C 口 |
| CH334 USB 2.0 Hub | PIO Host 模式下扩展 USB 接口 (其他型号拓展坞不保证可用) |
| 杜邦线(可选) | 通过 GPIO8(D+)/ GPIO9(D−)外接第二个 USB 键鼠设备(需自行焊接) |
🛒 不想动手?群友定制 RP2350A 键鼠映射板:把上述接口集成到一块自制板子上——键鼠主机口、GPIO8 扩展 USB 主机口,MAKCU 串口也板载了 USB 转串口(连电脑免焊接、免 USB-TTL 适配器)。固件刷写方式与微雪板完全一致。 👉 【闲鱼】自制RP2350A键鼠映射硬件板
第一步:刷入固件
- 按住板子上的 BOOTSEL 按钮(白色小按钮)
- 保持按住,用 USB 线将 原生 Type-C 口 连接到电脑
- 松开 BOOTSEL → 电脑出现名为
RPI-RP2的 U 盘 - 把
pico-hid-mapper.uf2拖拽/复制 到 U 盘 - 板子自动重启,固件生效 ✅
此操作只需一次。后续固件升级同样重复此步骤即可覆盖。
第二步:连接设备
板子有两个 USB-C 口,各司其职:
┌─────────────────────────────────────┐
│ RP2350-USB-C │
│ RST ○ ○ CC1 │
手机 ─│ 原生 USB-C PIO-USB-C │─ 上位机
│ BOOT ○ ○ CC2 │
└─────────────────────────────────────┘- 原生 Type-C 口(靠近 RST、BOOT 按钮)用 USB 线连接 手机
- 部分设备可能会提示插入了 DS5 手柄,USB网卡(CDC)自动识别
- PIO-USB Type-C 口(靠近 CC1、CC2 电阻)默认 Device 模式,连接上位机。如需直连键鼠,在 Web UI 切换为 Host 模式后,使用 CH334 USB 2.0 Hub 连接键鼠
第三步:安装 vPointer(可选 / 强烈推荐)
vPointer 是配套的 Android 应用,提供两个核心功能:
- 虚拟光标 — 在手机屏幕上显示鼠标光标,通过 TCP/UDP 接收 Pico 发送的光标坐标
- 端口转发 — 将 Pico 的 Web 配置面板(
192.168.73.1:80)转发到手机本地端口,浏览器即可访问
网络限制:Pico 的 usb0 以太网只能单向发起到手机的连接,手机无法主动连接 Pico。如果手机需要通过 usb0 访问 Pico,需要断开 Wi-Fi 和移动数据,让所有流量走 usb0 网卡。vPointer 的端口转发功能可解决此问题——它会自动将 Socket 绑定到 usb0 网卡,无需手动断网。
安装后打开 vPointer,切换到「端口转发」Tab,点击启动。之后可以通过以下方式访问 Pico 配置面板:
- 手机浏览器 — 打开
http://127.0.0.1:8000 - 同局域网设备 — 打开
http://<手机IP>:8000(手机需保持 Wi-Fi 连接)
第四步:配置映射
Web UI 打开后:
- 上传游戏截图 — 作为映射参考背景,方便精确定位触屏坐标
- 编辑按键映射 — 按住键盘上的某个键,然后点击屏幕对应位置即可放置触摸点。支持滚轮缩放、拖拽调整
- 确认无误后点击「更新」保存到 Pico
💡 快捷切换槽位:Pico 最多支持 9 个配置槽位,按
Left Alt + F1~F9可在槽位间快速切换,无需打开 Web UI。
详细说明,见:映射配置说明
第五步:使用上位机控制 / 直连键鼠
PIO 口支持两种控制方式:
- 上位机控制(默认 Device 模式) — 上位机打开 WebHID 工具(Chrome / Edge),连接 Pico 后通过 WebHID 发送键鼠报文
- 直连键鼠(Host 模式) — 在 Web UI 中将 PIO 口切换为 Host 模式,通过 CH334 USB 2.0 Hub 连接键盘/鼠标到 PIO-USB-C 口。支持普通键盘、鼠标以及 NKRO 全键无冲键盘
第六步:开始使用
- ✅ 固件已刷入
- ✅ 设备已连接
- ✅ 配置已上传
一切就绪后:
- 移动鼠标 → 手机屏幕上出现 虚拟光标(vPointer)
- 按下
`键(ESC 下方,KEY_GRAVE)→ 切换至映射模式,键鼠操作开始生效
状态指示灯
板载 RGB LED 指示设备状态(亮度由固件 FR_DEBUG_LED_BRIGHT 配置):
| 阶段 | 颜色 | 含义 |
|---|---|---|
| 开机 | 洋红 | 正在检测恢复出厂 strap |
| 开机 | 红 | 未检测到恢复出厂 strap(正常) |
| 开机 | 绿 | 检测到 strap,正在擦除配置 |
| 开机 | 蓝 | 配置擦除完成 |
| 运行 | 绿 | 已连接安卓设备 |
| 运行 | 熄灭 | 未连接安卓设备 |
恢复出厂 strap:上电时短接 GPIO29 与 3V3。
故障恢复:恢复出厂设置
如果配置异常导致设备无法正常启动,或想清空所有设置回到出厂默认,可通过以下任一方式恢复出厂设置:
| 方式 | 操作 | 适用场景 |
|---|---|---|
| Web UI | PICO 配置 → 危险操作 → 恢复出厂设置 | 设备能正常启动、能访问 Web UI |
| GPIO strap | 上电时短接 GPIO29 与 3V3,再连接电源供电 | 设备无法启动 / 无法访问 Web UI |
⚠️ 恢复出厂设置会清除全部数据,包括所有按键映射、PIO 模式、屏幕方向、手柄/轮盘参数、授权激活码与 Lua 脚本,设备重启回到出厂默认,且不可撤销。若设备已激活,恢复后需要重新激活。
进阶
- 了解 HIDAPI,可自行编码实现自定义上位机控制设备
- 学习 Lua 脚本 编写自定义宏,实现压枪、连招、一键丢弃等高级功能
- 通过 WebSocket API 或 HIDAPI 向 Lua 发送自定义指令,实现外部程序联动
- 使用 MAKCU 串口控制,通过 USB-TTL 连接 GPIO2/3 串口,用文本或 V2 二进制协议远程控制键鼠(配合 makcu-py-lib 上位机库)
常见问题
| 问题 | 解决 |
|---|---|
| 设备未识别 | 换一根 USB 2.0 数据线 |
| 无法访问 192.168.73.1 | 检查手机是否识别到 USB网卡,确保 vPointer 端口转发已启动 |
| root 设备插网卡后整机断网 | 见下文 root 设备:插网卡后整机断网 |
| 键鼠按下无反应 | PIO 口默认 Device 模式,需在 Web UI 切换为 Host 模式,并通过 CH334 USB 2.0 Hub 连接键鼠 |
| 配置上传失败 | 检查 JSON 格式是否正确;查看 WebSocket 日志 |
| 配置损坏导致设备异常/无法启动 | 上电时短接 GPIO29 与 3V3(开机自动清除全部配置),或连接 Web UI 后执行恢复出厂设置 |
root 设备:插网卡后整机断网
现象:root 过的平板/手机插上 USB 网卡后整机断网,WiFi 已连接却不被使用,也不弹"登录到网络"提示;拔掉网卡即恢复。
原因:设备上的 root 广告拦截/代理类模块(内置 Clash 的去广告模块、AdGuard、加速器等)劫持了全机 DNS 和流量,替 USB 网卡"完成"了系统的联网检测,使其被误判为可上网并获得最高优先级;而实际它没有外网,拦截模块的上游又绑定了这块网卡,形成死循环导致断网。此问题与固件无关,未 root 设备不受影响。
解决(任选其一):
- 使用 USB 网卡期间停用该模块(Magisk 模块开关或
killall clash),拔插一次网卡即可恢复; - 需要常驻:关闭模块的
fake-ipDNS 模式,并将192.168.73.0/24加入 DIRECT 绕行名单; - 自查:root shell 执行
ps -A | grep -iE "clash|adguard|proxy",有输出即中招。