The 2023 Conference badge is loosely based on the Arduino UNO design with an ATmega328PB microcontroller and the following devices:
- Sixteen NeoPixel RGB LEDs
- Six buttons
- Two 'pairing' connectors
- One Shitty Add-On V1.69bis connector
- One (optional) 128x32 OLED display
The badge is powered through a USB-C port or through 3 AAA batteries.
The firmware is based on the Arduino framework using the MiniCore core. The build system uses PlatformIO to easily manage the dependencies.
You can install it on Debian / Ubuntu in a python virtualenv with these commands:
sudo apt install python3-virtualenv
virtualenv .venv
. .venv/bin/activate
pip install platformio
The installation procedure for your OS may differ a little, please consult the PlatformIO documentation if you have any difficulties.
Once the installation is complete you can build the firmware:
pio run
Flashing the firmware requires an AVR compatible programmer, the cheapest available one we could find is the USBasp which can be found for 10$ to 20$ on Amazon or other retailers.
If the badge is factory fresh, you need to set the fuses once with this command:
pio run -t fuses
Then flash the firmware with this command:
pio run -t upload
If you don't want to make any modifications and just want to flash the firmware that was used during the conference, you just need to install AVRDUDE and flash the 'binary/firmware.hex' file.
On Debian / Ubuntu:
sudo apt install avrdude
# Set the fuses
avrdude -e -p atmega328pb -c usbasp -B 10 -U lock:w:0x0f:m -U hfuse:w:0xde:m -U lfuse:w:0xff:m -U efuse:w:0xfd:m
# Flash the firmware
avrdude -e -p atmega328pb -c usbasp -B 3Mhz -U "flash:w:binary/firmware.hex:i"
Enjoy.