diff --git a/README.md b/README.md index 167379a..10fbdf0 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # RemoteMapper-ESP32 · 小米蓝牙遥控器 2 Pro (RC003) ➔ USB 复合硬件桥接器 -> 🎯 **基于 ESP32-S3 N16R8 的硬件级中间人协议桥接方案** +> 🎯 **基于 ESP32-S3 (N16R8 / N8R2 / N4R2) 的硬件级中间人协议桥接方案** > 彻底解决 Windows 内核驱动丢弃「音量+ / 音量- / 返回键」的顽疾,告别 VB-Cable 虚拟声卡依赖,实现真·即插即用! > ⚠️ **硬件型号限定**:目前固件**仅支持「小米蓝牙遥控器 2 Pro(型号:RC003)」**,暂不支持其他型号遥控器。 + --- ## 💡 为什么需要这个硬件项目?(背景与痛点) @@ -129,21 +130,63 @@ 整个使用流程简单清晰,分为以下六个核心步骤: ### 步骤 1:硬件采购与接线 -1. **采购核心板**:购买 **ESP32-S3-DevKitC-1 N16R8** 开发板(淘宝约 25~35 元,务必选择带 **16MB Flash + 8MB Octal PSRAM** 的版本); -2. **准备遥控器**:小米蓝牙遥控器 2 Pro (型号: MC003) +1. **采购开发板**:购买任意 **ESP32-S3-DevKitC-1** 主控板(淘宝约 18~35 元): + * 🌟 **全系列主流型号无缝兼容**: + * **N16R8**(16MB Flash + 8MB Octal PSRAM):旗舰大容量配置,出厂默认目标; + * **N8R2**(8MB Flash + 2MB Quad PSRAM):性价比极高的高频主流款,内存与存储极为充裕; + * **N4R2**(4MB Flash + 2MB Quad PSRAM):极简低成本版,固件极致精简后仅 1.16MB,仍完整保留 A/B 双分区 OTA 升级能力! +2. **准备遥控器**:小米蓝牙遥控器 2 Pro(型号: RC003) 3. **关键数据线连接**: - * ESP32-S3 开发板通常有两个 Type-C 口:一个标注为 **`UART`**,另一个标注为 **`USB`**(或 **`OTG`**); - * **⚠️ 必须将数据线插在 `USB / OTG` 接口**(直连芯片内部原生 USB 控制器,才能模拟物理麦克风与键盘;UART 口仅用于串口烧录通信,无法模拟 USB 设备)。 + * ESP32-S3 开发板通常有两个 Type-C 口:一个标注为 **`UART`**(或 COM),另一个标注为 **`USB`**(或 **`OTG`**); + * **⚠️ 日常使用必须将数据线插在 `USB / OTG` 接口**(直连芯片原生内部 USB 控制器,才能免驱模拟物理麦克风与键盘;UART 口仅用于串口日志调试,无法模拟 USB 输入外设)。 --- -### 步骤 2:一键刷入固件 -1. 将 ESP32-S3 通过 USB/OTG 口连接至电脑; -2. 在本项目根目录下,直接双击运行: - ```cmd - flash.bat - ``` -3. 脚本会自动调用 esptool 识别端口并烧录固件,等待提示 `Successfully created esp32s3 image` 烧录完成。 +### 步骤 2:固件编译与一键烧写(多型号支持) + +将 ESP32-S3 开发板通过数据线连接至电脑,根据开发板型号选择对应的烧录方式: + +#### 方式 1:双击批处理脚本(最简便) +在本项目根目录下运行: +* **默认烧写 N16R8**:直接双击运行 `flash.bat` +* **命令行指定型号烧写**: + ```cmd + flash.bat n8r2 # 烧录至 N8R2 开发板 + flash.bat n4r2 # 烧录至 N4R2 开发板 + flash.bat n16r8 # 烧录至 N16R8 开发板 + ``` + +#### 方式 2:PlatformIO 命令行精确构建与烧录 +在本项目根目录下打开终端,可直接使用以下命令进行编译与烧写: + +```bash +# ======================================================== +# 1. 旗舰版 N16R8 (16MB Flash, 8MB Octal PSRAM) +# ======================================================== +# 仅编译固件 +python -m platformio run -e esp32s3_n16r8 +# 编译并烧录至开发板 +python -m platformio run -e esp32s3_n16r8 -t upload + +# ======================================================== +# 2. 性价比版 N8R2 (8MB Flash, 2MB Quad PSRAM) +# ======================================================== +# 仅编译固件 +python -m platformio run -e esp32s3_n8r2 +# 编译并烧录至开发板 +python -m platformio run -e esp32s3_n8r2 -t upload + +# ======================================================== +# 3. 极简版 N4R2 (4MB Flash, 2MB Quad PSRAM) +# ======================================================== +# 仅编译固件 +python -m platformio run -e esp32s3_n4r2 +# 编译并烧录至开发板 +python -m platformio run -e esp32s3_n4r2 -t upload +``` + +> 💡 **烧录排错小贴士(Boot 模式)**: +> 若提示连接开发板超时或无法识别 COM 口,可按住开发板上的 **`BOOT` 按键不放**,点按一下 **`RST` 复位键**(或重新拔插一次 USB 线),松开 `BOOT` 按键即可强制开发板进入 ROM Download 下载模式,然后再执行上述烧录命令。 --- diff --git a/flash.bat b/flash.bat index 5423844..a12d4fb 100644 --- a/flash.bat +++ b/flash.bat @@ -1,10 +1,16 @@ @echo off +set TARGET_ENV=esp32s3_n16r8 +if "%1"=="n8r2" set TARGET_ENV=esp32s3_n8r2 +if "%1"=="n4r2" set TARGET_ENV=esp32s3_n4r2 +if "%1"=="n16r8" set TARGET_ENV=esp32s3_n16r8 + echo ======================================================== -echo Flashing RemoteMapper-ESP32 Firmware to ESP32-S3 +echo Flashing RemoteMapper-ESP32 [%TARGET_ENV%] to ESP32-S3 echo ======================================================== -python -m platformio run -e esp32s3_n16r8 -t upload +python -m platformio run -e %TARGET_ENV% -t upload if %ERRORLEVEL% NEQ 0 ( echo [ERROR] Flash Failed! exit /b %ERRORLEVEL% ) echo [SUCCESS] Flash completed successfully! +