DIY motorized fader kit for smart homes.
Physical control for scenes, automations and custom smart home workflows.
FaderDock is a DIY motorized fader kit for people who want real, tactile control for their smart home automations, scenes, and custom integrations.
It is designed for makers, tinkerers, and builders who want a polished physical interface without losing the flexibility of an open system.
This repository contains the public firmware baseline for the first one-channel FaderDock alpha prototype.
Current firmware: 0.2.0-alpha
This is an early alpha release for hardware bring-up, Home Assistant/MQTT testing and firmware feedback. It is not yet a finished product.
The current alpha supports:
- one motorized fader channel
- ESP32 / PlatformIO firmware
- MQTT control and state reporting
- Home Assistant MQTT discovery
- browser-based setup portal
- live status updates in the setup portal
- browser-based OTA firmware updates
- Waveshare 1.02" ePaper label display
- persistent configuration in ESP32 flash
- Motorized faders with a clean hardware-focused design
- DIY-friendly project structure
- Tactile control instead of screens only
- Open and flexible for custom integrations
- Clear documentation with a lightweight visual style
- makers and tinkerers
- custom smart home setups
- tactile control concepts
- ESP32-based DIY hardware projects
- documentation-first product development
include/ Firmware header files
src/ Firmware source files
docs/ Additional project and release documentation
lib/ Optional project-specific PlatformIO libraries
test/ Reserved for PlatformIO tests
platformio.ini PlatformIO build configuration
The main FaderDock documentation lives at:
https://faderdock.net
Detailed build instructions, BOM files, CAD/STL downloads and the future browser-based first-flash installer are planned for the protected member/pro area of the documentation site.
The current firmware is written for the first one-channel ESP32 prototype.
- ESP32 development board, PlatformIO board profile:
esp32dev
The current prototype uses a Behringer X32-style motorized fader.
| Signal | ESP32 GPIO |
|---|---|
| Fader ADC | GPIO32 |
| Motor IN1 | GPIO25 |
| Motor IN2 | GPIO26 |
| Motor PWM | GPIO27 |
Waveshare 1.02" e-Paper Module, black/white, SKU/MPN 17575.
| ePaper pin | ESP32 GPIO |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN / MOSI | GPIO23 |
| CLK / SCK | GPIO18 |
| CS | GPIO5 |
| DC | GPIO17 |
| RST | GPIO16 |
| BUSY | GPIO35 |
The ePaper display is intentionally used only as a calm channel label below the fader. It can be changed via MQTT, serial command or the web portal without rebooting the device.
- Visual Studio Code
- PlatformIO extension
- ESP32 development board connected via USB
pio runpio run --target uploadOpen the serial monitor:
pio device monitorAfter the first flash, connect to the setup access point if the device cannot connect to Wi-Fi yet.
SSID: FaderDock Setup
Password: fader1234
Then open the setup portal. The default local URL is:
http://faderdock.local
If mDNS is not available on your network, use the IP address shown in the serial monitor or in your router.
The firmware includes a local web portal for setup, status and maintenance.
Main portal:
http://faderdock.local/
OTA update page:
http://faderdock.local/update
The setup portal provides:
- Wi-Fi and MQTT configuration
- ePaper label changes without rebooting
- live fader position and target position
- MQTT and Wi-Fi status
- restart and factory reset actions
- browser-based OTA firmware upload
After the device has been flashed once via USB, later firmware updates can be installed from the web portal.
Build the firmware in PlatformIO:
pio runUpload this file through the OTA page:
.pio/build/esp32dev/firmware.bin
The device restarts automatically after a successful OTA update.
For release downloads the intended naming is:
FaderDock-v0.2.0-alpha-ota.bin
FaderDock-v0.2.0-alpha-factory.bin
SHA256SUMS.txt
ota.bin is for devices already running FaderDock. factory.bin is intended for the first flash of a blank ESP32 and should contain bootloader, partition table and application image.
Release assets can be generated from the repository root:
tools/make_release_assets.shMore details are documented in docs/firmware/release-build.md.
The MQTT base topic is the configured hostname. The default hostname is faderdock.
faderdock/ch1/set/percent
faderdock/ch1/state/percent
faderdock/ch1/state/target_percent
faderdock/ch1/state/mode
faderdock/ch1/set/label
faderdock/ch1/state/label
faderdock/availability
Home Assistant MQTT discovery is published for:
- channel target position
- channel current position
- channel mode
- ePaper label
0..100 + Enter -> move fader to target percent
u + Enter -> short jog up
d + Enter -> short jog down
s + Enter -> stop motor
p + Enter -> print status
label TEXT -> update ePaper label
portal + Enter -> start setup access point
h + Enter -> show help
- The firmware currently targets one fader channel.
- Calibration values are prototype-specific and may need adjustment for other faders or mechanics.
- The setup AP uses a fixed alpha-stage password.
- There is no user authentication on the local setup portal yet.
- First flashing of a blank ESP32 still requires USB flashing or a future protected FaderDock installer page.
- Browser OTA is for application updates after FaderDock is already installed.
- The current wiring is prototype wiring and not yet a final PCB design.
A motorized fader is a moving part. Keep fingers, cables and loose parts clear while testing motor movement. Use a suitable motor driver and power supply, and disconnect power while changing wiring.
Ideas, bug reports and feedback are welcome.
Please use structured GitHub issues so reports stay actionable. Helpful reports include:
- firmware version
- ESP32 board type
- wiring deviations
- serial log output
- MQTT broker / Home Assistant details
- steps to reproduce the problem
See the repository license file.