Repository navigation
Firmware 1.0.0
First released firmware for the BBR Digital Expander.
What to download
bbr-digital-expander-1.0.0.uf2 — the firmware image. A UF2 is a drag-and-drop format: the board appears as a USB drive called RPI-RP2 and you copy the file onto it. Nothing to install.
Full instructions, including how to get the board into bootloader mode over I2C without touching it: Updating the firmware
sha256 3c0f37291b0c356eed66aff111e9a204077dc14e6822a2d9425c2c24c53438ca
What this firmware is
Protocol contract 1.1 — the register map every driver here is written against. The board reports 1.0.0 in its FW_VERSION registers, so what a device-info readout prints matches this release.
- Four quadrature encoder channels, individually switchable to pulse-width absolute encoders, with velocity computed on the board
- Four sensor ports, colour or distance in any mix, with type detection and on-board colour classification into seven taught slots
- Four digital outputs driven by the board itself from a taught colour, a distance window, an encoder threshold or a heading — level, latched or pulse
- IMU heading and a fused dead-wheel odometry localizer, pose CRC-checked on the wire
- Configuration persisted to flash, with wear levelling across two slots
Your configuration survives the update
Taught colours, trigger configuration, encoder directions, localizer parameters and PWM calibration are stored in a flash region this image does not reach. Flashing it does not erase them.
Compatible drivers
| Platform | Driver |
|---|---|
| FTC (Java) | DigitalExpander — this repository |
| Arduino (C++) | DigitalExpander-Arduino |
| Raspberry Pi (Python) | DigitalExpander-Python |
All three speak protocol 1.x and refuse to start against a firmware whose protocol major they do not know, rather than reading a register map that may have moved underneath them.