
T-Knob SmartKnob Fork — Haptic Encoder with Software Detents
A community fork of the LILYGO T-Knob that explores using its ESP32-C6, TMC6300 motor driver, and MT6701 magnetic encoder to build a SmartKnob-style haptic rotary controller with software-defined detents and position limits.
Overview
This fork of the LILYGO T-Knob investigates its potential as a SmartKnob-style haptic input device. The T-Knob hardware is uniquely positioned for this: it uses the same core components (ESP32, TMC6300 brushless motor driver, and MT6701 magnetic angle encoder) as Scott Bezek's popular SmartKnob DIY project. The goal is to enable software-defined detents, position limits, and haptic feedback — turning the T-Knob into a programmable haptic interface.
Hardware Components
| Component | Part |
|---|---|
| MCU | ESP32-C6-MINI-1U |
| Motor Driver | TMC6300 (3-phase brushless) |
| Angle Sensor | MT6701 magnetic encoder |
| Interface | SPI + I2C |
Example Programs
The repository includes progressive examples for controlling the motor and encoder:
- Simple 6-step motor commutation
- MT6701 magnetic encoder reading
- MCPWM controller for motor drive
- Combined MCPWM + encoder feedback
- FOC open-loop velocity control
- FOC open-loop angle control
- FOC closed-loop position + speed control
- PID control with low-pass filtering for smooth haptic feedback
Technical Details
Builds on the Arduino IDE with the ESP32-C6 boards package. All examples are self-contained and build to the official T-Knob factory firmware. Inspired by the SmartKnob project's approach to motor-as-haptic-input. Community discussion is happening in the repository's Discussions tab.
