How scottbez1/faderbuddy works
FaderBuddy is a motorized-fader control board whose ATtiny firmware handles real-time movement and exposes control over I²C. Hosts can read position, command movement, and configure layered haptics; the documented ESPHome integration synchronizes positions with Home Assistant and exposes automation triggers. The repository also includes a browser-based MCP2221 interface and production programming/testing tools. Firmware excerpts confirm calibration storage and initialization; unsampled source limits detail on some host and manufacturing interactions.
Main entry points: src/main.cpp Control firmware · fader_buddy.cpp ESPHome component · src/main.cpp Program and test station · main.js Browser interface
Components 19
Board firmware
- Control firmware
firmware/src/main.cpp - Motor calibration
firmware/src/motor_cal.cpp - Motor control
firmware/src/motor_control.h - I²C register map
firmware/src/shared/i2c_data.h
Host interfaces
- ESPHome component
esphome/components/fader_buddy/fader_buddy.cpp - ESPHome configuration
esphome/components/fader_buddy/__init__.py - Browser interface
software/mcp2221-webhid/src/main.js - FaderBuddy client
software/mcp2221-webhid/src/faderBuddy.js
Firmware service
- I²C bootloader
firmware/src/bootloader/bootloader.c - Boot protocol
firmware/src/shared/bootloader_protocol.h - Firmware tools
firmware/tools
Production testing
- Program and test station
production_tools/programAndTest/src/main.cpp - Station I²C interface
production_tools/programAndTest/src/fader_buddy_i2c.cpp - Station bootloader interface
production_tools/programAndTest/src/fader_buddy_bootloader.cpp
Other components
- Host controller
- Motor fader board
- Home Assistant
- MCP2221 adapter
- Production operator
Connections 18
- Host controller → Control firmware: commands over I²C
- Control firmware → Motor fader board: drives and reads
- Control firmware → Motor calibration: applies calibration
- Control firmware → Motor control: controls motion
- Control firmware → I²C register map: implements registers
- ESPHome configuration → ESPHome component: configures
- ESPHome component → Motor fader board: reads and commands
- ESPHome component → Home Assistant: syncs entities
- Browser interface → FaderBuddy client: calls
- Browser interface → MCP2221 adapter: connects through
- FaderBuddy client → Motor fader board: reads and commands
- Firmware tools → I²C bootloader: programs firmware
- I²C bootloader → Boot protocol: uses commands
- Production operator → Program and test station: operates
- Program and test station → Station I²C interface: uses
- Program and test station → Station bootloader interface: uses
- Station I²C interface → Motor fader board: communicates over I²C
- Station bootloader interface → Motor fader board: communicates with bootloader