Skip to main content

Legacy BLE Firmware → DuoChord First Migration

Use this procedure to migrate an AVR wireless keyboard whose nRF51822 still runs the legacy Adafruit Bluefruit LE application (referred to below as "legacy BLE firmware") to DuoChord. It updates the keyboard controller (AVR) and wireless module (nRF51822) separately. These are independent firmware artifacts, and the order below is mandatory.

:::danger Do not mix firmware variants

AVR legacy BLE firmware, AVR DuoChord firmware, and the nRF51822 application-only OTA files cannot replace one another. Flashing another PCB variant or reversing the AVR / nRF update order can leave USB or wireless unusable. Stop if you cannot confirm the PCB, wireless backend, or file source.

:::

Before you start

  • Use the Download Center to confirm the keyboard model, PCB revision, and DuoChord firmware target.
  • Download the AVR DuoChord firmware that matches this PCB.
  • Download the DuoChord nRF application-only OTA files produced by the same release. Bluefruit Connect's custom firmware screen requires the matching application .hex and application.dat; never mix files from different builds.
  • Use a reliable USB data cable and keep the keyboard powered. Keep the phone close to the keyboard during OTA.
  • Install Adafruit Bluefruit Connect on the phone: App Store / Google Play, then enable Bluetooth. Airplane Mode disables BLE.
Reference view of enabling Bluetooth in iOS Settings

:::note Temporary reference screenshots

The app screenshots on this page come from the Adafruit Learning System. They show an older UI and are placeholders until this site has its own screenshots. Wording and layout may differ on Android and newer iOS versions.

:::

First-migration procedure

1. Confirm the PCB revision and wireless backend

Confirm that this is a model with AVR legacy BLE firmware / DuoChord backend variants and check its PCB revision. The target must be the DuoChord firmware for this PCB, not its legacy BLE firmware variant or firmware for another PCB in the same product line.

2. Flash the AVR DuoChord firmware over USB

Enter the keyboard bootloader over USB and flash the AVR DuoChord firmware that matches the PCB. After flashing, first verify that the keyboard types over USB. The nRF51822 still runs the legacy Adafruit Bluefruit LE application at this point, so the wireless migration is not yet complete.

:::danger Do not update the nRF first

For the first migration, flash the AVR DuoChord firmware before entering DfuTarg and updating the nRF51822.

:::

3. Trigger nRF51822 DFU

With the AVR DuoChord firmware running, hold both Shift keys and press F twice within 1 second. This confirmation chord asks the wireless module to enter its DFU bootloader.

4. Confirm DfuTarg in Bluefruit Connect

  1. Open Bluefruit Connect. The app automatically scans for nearby BLE devices.
  2. Find DfuTarg in the device list. Pull down to scan again if the list has not refreshed.
  3. Tap Connect beside DfuTarg. If needed, tap the device row to inspect its advertising details. Other unnamed or <Unknown> BLE devices may also appear.
Reference Bluefruit Connect device scan list Reference Bluefruit Connect advertising details
warning

If DfuTarg does not appear, stop. Do not send the update files to the normal application or any other device in the list.

5. OTA-flash the nRF51822 application-only files

  1. After connecting to DfuTarg, open Updates.
  2. Do not choose an Adafruit firmware version from the list. Tap Use Custom Firmware at the bottom.
  3. For Hex File, choose the DuoChord application .hex from this release.
  4. For Init File, choose the application.dat built alongside that .hex.
  5. Tap Start Update, review the confirmation dialog, and start the update.
  6. Wait for upload, validation, activation, and reboot to finish. Do not close the app, move the phone away, or remove keyboard power. The app disconnects and the wireless module reboots when the update completes.
Reference Updates page and Use Custom Firmware button in Bluefruit Connect Reference Bluefruit Connect dialog for selecting HEX and Init files Reference firmware confirmation and upload progress in Bluefruit Connect

:::warning Application only

This procedure does not update the SoftDevice, bootloader, UICR, or settings. If the app reports an init-packet, CRC, or file mismatch, stop and recheck the .hex and .dat from the same release. Do not force a retry by selecting a SoftDevice or bootloader update type.

:::

6. Pair again and verify the connection

  1. Remove the pairing record left by the legacy BLE firmware from the computer, phone, or tablet.
  2. Select a DuoChord BLE slot (BLE1BLE5) on the keyboard, then press PAIR.
  3. Select the keyboard's new advertising name in the host Bluetooth settings and complete pairing.
  4. Verify wireless typing, key release, and USB / wireless switching.

See AVR DuoChord for slot and pairing operations.

Troubleshooting

DfuTarg does not appear

  • Confirm that the AVR now runs the matching PCB's DuoChord build, then hold both Shift keys and double-press F again.
  • Confirm phone Bluetooth is on and Airplane Mode is off, then pull down in the Bluefruit Connect device list to scan again.
  • Relaunch the app; if necessary, turn phone Bluetooth off and on again.
  • If the module still does not advertise DfuTarg, stop the OTA and do not try unrelated firmware files.

Custom firmware is rejected or the update is interrupted

  • Confirm that the .hex and application.dat came from the same DuoChord release.
  • Keep keyboard power stable and the phone nearby, then enter DfuTarg again.
  • Do not choose a version from Adafruit's firmware list or attempt a SoftDevice or bootloader update.

The keyboard is not visible after OTA

An empty DuoChord slot does not automatically open pairing. Select one of BLE1BLE5, press PAIR, and scan from the host Bluetooth settings. Also remove the old legacy BLE firmware pairing record from the host.

References and screenshot sources