AVR DuoChord
This page covers the common operations and limits of ATmega32U4 + nRF51822 DuoChord (DuoChord for short), used by the DuoChord backend of G60, Kamilia, Command65, Manta 40s (Hotswap/Solderable/Ortho), and Skog Reboot.
DuoChord and Bluefruit use different UART protocols and slot management; their
firmwares are not interchangeable. Migrating from Bluefruit for the first
time requires a fixed sequence, see
Legacy BLE firmware → DuoChord first migration.
How it works
- The AVR (ATmega32U4) handles matrix scanning and keyboard state.
- The nRF51822 module handles BLE transport; the AVR drives it over UART with a binary frame protocol.
- The module supports five host slots (BLE1–BLE5), pairing, status queries, and OTA.
Five slots
DuoChord keeps 5 BLE slots:
| Key | Function |
|---|---|
BLE1 – BLE5 | Switch to the slot; empty slots stay silent |
PAIR | Clear the current slot's old peer/orphan, then pair |
CLR | Clear all BLE bonds and slot selection |
PAR | Enter pairing (equivalent entry point) |
RST | Reset the module / restore defaults |
TOG | Toggle between USB and the most recent wireless channel |
USB | Switch to USB mode |
Pairing
- Switch to the target slot (
BLE1–BLE5). - Press
PAIRto enter pairing (the module clears the current slot first). - Search and connect on the host.
- After pairing, the slot is bound to that host.
CLR clears all pairing records and slot selection; every slot must be
re-paired afterwards.
OTA boundaries
- DuoChord supports OTA of the nRF application (via
DfuTargmode). - OTA updates the application only; it does not touch SoftDevice, bootloader, UICR, or settings.
- For routine nRF application updates, use the Shift +
Ftwice confirmation entry to enterDfuTarg, then perform OTA. - When migrating from Bluefruit for the first time, flash the AVR DuoChord
firmware first, then enter
DfuTarg; do not skip the migration flow.
Limits and notes
- Slot and pairing state lives in the module; restoring AVR firmware usually does not lose it, but some devices may need re-pairing after an upgrade.
- The DuoChord binary protocol does not understand Bluefruit AT commands, and vice versa.
- If OTA fails in
DfuTarg, try another cable and confirm the OTA package matches your PCB.
Troubleshooting
- Cannot connect or pair: see
Troubleshooting / Wireless. - Stuck mid-migration: restart from the
first migrationsteps. - Flashing failures: see
Firmware Downloads & Flashing.