wifi-desk-controller icon indicating copy to clipboard operation
wifi-desk-controller copied to clipboard

Source files for my WiFi Desk Controller board

WiFi Desk Controller

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 website
  • enclosure: Fusion 360 source, STL, and STEP files for the 3D-printable enclosure
  • pcb: 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.

Stock Firmware

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.

License

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.