This repository includes the source files for my WiFi Desk Controller design.
firmware
: The stock ESPHome-based firmware that's available from the GitHub Releases and my websiteenclosure
: Fusion 360 source, STL, and STEP files for the 3D-printable enclosurepcb
: KiCad project files for the PCB
You may also find the associated ESPHome custom component interesting if you want to implement your own desk brand, or just dive deeper into how the firmware works.
The stock firmware is ESPHome-based, and contains a bunch of components that are useful for setup. It exposes these entities:
- Desk Height: reports desk height as reported by control box
- Target Desk Height: changes the target desk height
- Desk Preset 1: sets the desk height to preset 1
- Desk Preset 2: sets the desk height to preset 2
- Desk Preset 3: sets the desk height to preset 3
- Desk Preset 4: sets the desk height to preset 4
The stock firmware is automatically built for each supported desk on release. There is a GitHub Actions workflow which handles this. The make-stock-bin
script replaces the DESK_BRAND
in the stock config.yaml with the appropriate config and builds it. It runs this script for each of the supported desk brands in the build matrix, then uploads a release artifact.
If you would like to contribute compatibility for a new desk, you first need to submit a pull request to this repo which adds a config file for the desk (and, if necessary, a new protocol decoder for it). See Desk Compatibility for more info on adding a new desk brand.
The ESPHome configs are licensed under MIT; everything else (enclosure and PCB design) are CC BY-NC-SA 4.0. The appropriate license files are available in the root of the repo.