Low-latency wireless audio bridge.
originally built as a wireless transceiver for a gaming headset retrofit. The hardware can also support:
- Wireless audio relay (e.g. room-to-room)
- BLE audio bridging (phone/laptop as central to a FlexAudioLink node)
- Flexible audio paths such as USB-to-analog, USB-to-USB, analog-to-analog, and BLE bridges
Note: Most of these are not yet implemented; see Project Status.
- Audio bridge endpoints: USB Audio Class device, I2S/analog codec, BLE
- Low-latency wireless link between devices
- USB CDC CLI for device configuration
- Web UI (Svelte) with WebSerial and WebSocket-to-serial bridge
- Single hardware design: nRF54LM20A + NAU88L21 + nPM1300
The diagram below shows the typical dongle/headset setup: dongle on the left, headset on the right. Both run the same hardware and firmware.
USB handles audio on the dongle side, I2S/codec on the headset side.
Implemented:
- USB device (UAC + CDC)
- Configuration persistence
- USB CDC CLI
- PROP radio test mode
- Audio I2S / codec integration
- Wireless audio streaming (USB ↔ I2S)
In progress:
- Schematic
- Update Docs
Planned:
- PCB layout
- Arbitrary Source/Sink combinations
- Analog multiplexing
- Packet Loss Concealment
- BLE audio transport
- Web UI
Under evaluation:
- Adaptive Frequency Hopping
- Clear Channel Assessment
Key pages:
- Getting Started — toolchain setup, build, and flash instructions
- Firmware — architecture, PROP protocol
- Hardware — schematic, PCB, rationale for chosen components
- Web UI — setup and configuration
- CLI Reference — available CLI commands
Note: the documentation is a work in progress and nowhere near complete.
firmware/: active Zephyr-based firmware fornrf54lm20dk/nrf54lm20a/cpuappwebui/: Svelte configuration UI plus Python WebSocket-to-serial bridgehardware/: KiCad project and hardware notespython/: standalone utilities for signal generation and latency/error experimentsdevel_notes/: bring-up and development references