跳到主要内容

旧版 BLE 固件 → DuoChord 首次迁移

本流程用于把 nRF51822 仍运行旧版 Adafruit Bluefruit LE application(下称「旧版 BLE 固件」)的 AVR 无线键盘迁移到 DuoChord。它会分别更新键盘主控(AVR)和无线模块(nRF51822);两份固件是 彼此独立的产物,必须严格按下面的顺序操作。

:::danger 固件不可混刷

AVR 旧版 BLE 固件、AVR DuoChord 固件和 nRF51822 application-only OTA 文件 不能互相替代。刷错 PCB 变体或颠倒 AVR / nRF 的升级顺序,可能导致 USB 或无线 功能不可用。无法确认 PCB、无线后端或文件来源时,请先停止升级。

:::

迁移前准备

  • 下载中心确认键盘型号、PCB revision 和 DuoChord 固件目标。
  • 下载匹配该 PCB 的 AVR DuoChord 固件
  • 下载同一次发布生成的 DuoChord nRF application-only OTA 文件。使用 Bluefruit Connect 的自定义固件界面时,需要配套的 application .hexapplication.dat,不要混用不同版本的文件。
  • 准备一根可靠的 USB 数据线,为键盘保持稳定供电;OTA 期间让手机靠近键盘。
  • 在手机安装 Adafruit Bluefruit ConnectApp Store / Google Play, 并开启蓝牙。飞行模式会关闭 BLE。
iOS 设置中开启蓝牙的参考界面

:::note 临时参考截图

本页 App 截图来自 Adafruit Learning System,界面版本较旧,仅用于标示大致入口; 后续会替换为本站自己的截图。Android 和新版 iOS 的文字与布局可能不同。

:::

首次迁移步骤

1. 核对 PCB revision 与无线后端

确认当前键盘属于支持 AVR 旧版 BLE 固件 / DuoChord 双后端的型号,并核对 PCB revision。目标必须是该 PCB 对应的 DuoChord 固件,不能使用旧版 BLE 固件变体, 也不能使用同系列其他 PCB 的固件。

2. 通过 USB 刷入 AVR DuoChord 固件

用 USB 进入键盘 bootloader,刷入匹配 PCB 的 AVR DuoChord 固件。刷写完成后, 先确认键盘在 USB 模式下能够正常输入。此时 nRF51822 仍运行旧版 Adafruit Bluefruit LE application,无线功能尚未完成迁移。

:::danger 不要先刷 nRF

首次迁移必须先完成 AVR DuoChord 刷写,再进入 DfuTarg 更新 nRF51822。

:::

3. 触发 nRF51822 DFU

在键盘正常运行 AVR DuoChord 固件时,同时按住左右 Shift,并在 1 秒内按两次 F。这个二次确认组合会请求无线模块进入 DFU bootloader。

4. 在 Bluefruit Connect 中确认 DfuTarg

  1. 打开 Bluefruit Connect。App 启动后会自动扫描附近的 BLE 设备。
  2. 在设备列表中找到 DfuTarg。如果列表没有刷新,下拉重新扫描。
  3. 点击 DfuTargConnect。需要时可点击设备行查看广播详情;列表中可能 同时出现无名称或 <Unknown> 的其他 BLE 设备。
Bluefruit Connect 扫描设备列表参考界面 Bluefruit Connect 设备广播详情参考界面
注意

没有看到 DfuTarg 时请停止,不要把升级文件发送给正常 application 或列表中的 其他设备。

5. OTA 刷入 nRF51822 application-only 文件

  1. 连接 DfuTarg 后打开 Updates
  2. 不要选择列表中的 Adafruit 官方固件版本;点击底部的 Use Custom Firmware
  3. Hex File 选择本次 DuoChord 发布的 application .hex
  4. Init File 选择与该 .hex 同一次构建生成的 application.dat
  5. 点击 Start Update,核对确认对话框后开始升级。
  6. 等待上传、校验、激活和重启全部完成。期间不要关闭 App、让手机离开键盘或 断开键盘电源。完成后 App 会断开连接,无线模块会自动重启。
Bluefruit Connect Updates 页面和 Use Custom Firmware 按钮参考界面 Bluefruit Connect 选择 HEX 与 Init 文件的参考界面 Bluefruit Connect 固件确认与上传进度参考界面

:::warning 只更新 application

本流程不更新 SoftDevice、bootloader、UICR 或 settings。若 App 报告 init packet、 CRC 或文件不匹配,请停止并重新核对同一次发布的 .hex.dat;不要改选 SoftDevice / bootloader 类型强行重试。

:::

6. 重新配对并验证连接

  1. 在电脑、手机或平板的蓝牙设置中删除旧版 BLE 固件留下的配对记录。
  2. 在键盘上选择一个 DuoChord BLE 槽位(BLE1BLE5),再按 PAIR 进入配对。
  3. 在主机蓝牙设置中选择键盘的新广播名称并完成配对。
  4. 验证无线输入、按键抬起和 USB / 无线切换均正常。

更多槽位和配对操作见 AVR DuoChord

常见问题

扫描不到 DfuTarg

  • 确认 AVR 已经刷成匹配 PCB 的 DuoChord 版本,然后重新执行左右 Shift + 双击 F
  • 确认手机蓝牙已开启、未处于飞行模式,并在 Bluefruit Connect 设备列表下拉刷新。
  • 关闭并重新打开 App,必要时关闭再开启手机蓝牙。
  • 若模块仍未广播 DfuTarg,停止 OTA;不要反复尝试其他固件文件。

自定义固件被拒绝或升级中断

  • 确认 .hexapplication.dat 来自同一次 DuoChord 发布。
  • 保持键盘供电稳定并让手机靠近键盘,然后重新进入 DfuTarg
  • 不要选择 Adafruit 固件列表中的版本,也不要尝试更新 SoftDevice 或 bootloader。

OTA 完成后找不到键盘

DuoChord 的空槽不会自动开放配对。先选择 BLE1BLE5 中的一个槽位并按 PAIR,再到主机蓝牙设置中搜索;同时删除主机上的旧版 BLE 固件配对记录。

参考资料与截图来源