// the find
SmallPond/X-Knob
X-Knob - A smart knob based on LVGL UI library, supports Smart Home(MQTT) and Surface Dial (BT) // LVGL UI 框架下的力反馈智能旋钮 (smartknob + X-TRACK)
X-Knob is ESP32-S3 firmware for a force-feedback smart knob. It combines SimpleFOC motor control from the smartknob project with the LVGL-based X-TRACK UI. It can control Home Assistant devices over MQTT or pair with a PC as a Surface Dial over Bluetooth, and it suits people who want to build the hardware and own the firmware.
The hardware is open, with PCB files and a BOM in 0.Hardware, a magnetic MT6701 encoder, and a brushless motor the README prices at about 10 RMB. The cost claim is checkable instead of a teaser. Network features are compile-time switches, so `-DXK_MQTT=0` in platformio.ini builds a no-WiFi variant without touching code. The README also documents OTA updates over USB and a web portal for WiFi and MQTT settings. The notes on the X-TRACK message layer are candid: Notify and Pull go from subscriber to publisher, so it behaves more like client/server than broadcast pub/sub, and the author says so.
The build is pinned to an old toolchain. The README documents an sdkconfig.h failure caused by the Espressif32 platform version, and the fix is to update PlatformIO. A fresh install will likely hit framework version drift. The last push was April 2024, and the README is mostly Chinese with an unchecked roadmap item (USB CDC computer-accessory mode), so treat it as a reference build rather than a maintained project. LVGL is vendored as a full copy under 1.Firmware/lib/lvgl, including examples and CI config. That bloats the repo and makes any LVGL upgrade a manual merge. It is also tied to this exact hardware: a GC9A01 round display, the MT6701 encoder, and three custom PCBs. Porting to another board means reworking the motor driver and pin setup, and the README does not cover that.