Projects / FRC hardware / 2026
Driver station button board
A custom PCB for the driver station with 24 lit buttons, built around an ESP32-S3.
I wrote the board's firmware.

Case study
How it works
- Three PCA9535 I2C IO expanders read the buttons and write the button lights
- The USB-OTG port (TinyUSB) makes the board appear as a HID gamepad, so the FRC Driver Station reads it as a normal controller
The interesting problem
Sending data from an FRC robot to a HID device is undocumented, so the LEDs could not be driven the normal way.
The solution
A Python program on the driver station laptop connects to the robot over NetworkTables and forwards LED state to the ESP32 as UART commands over a USB-serial link.
Reliability
- Automatic serial reconnect if the board is unplugged
- A status LED for the USB connection