Build a video scrubber knob that lets you feel clip boundaries as you turn it.
Create a playback speed controller that snaps to specific rates and springs back to pause.
Design custom haptic input devices for music production, gaming, or industrial control.
Prototype interactive interfaces where the knob's feel changes based on context or mode.
Requires hardware assembly (motor, sensor, ESP32, display, RGB ring) and embedded firmware flashing; not software-only.
SmartKnob is an open-source hardware project for a rotary input device, a physical knob you can press and turn, whose mechanical feel is controlled entirely by software. On a traditional knob the bumps you can feel as you rotate (called detents) and the points where the knob refuses to turn any further (endstops) are fixed by the mechanical parts inside. On the SmartKnob there is nothing physical doing that work: the position, strength, and spacing of detents and endstops can be changed by software, and even varied on the fly. It achieves this by pairing a brushless gimbal motor, a small electric motor of the kind used to steady camera mounts, with a magnetic encoder that measures the shaft angle very precisely. A control loop reads the angle many times a second and tells the motor exactly how much torque to push back with, so the firmware can simulate the feel of a click, a smooth dial, a spring-loaded jog wheel, or a hard wall. The flagship variant, SmartKnob View, is a more complete design that also embeds a small round LCD screen inside the knob itself, with strain-sensitive press detection, ambient-light sensing, an LED ring around the rim, and a USB-C connector for power and programming. The README describes example uses such as a video-editing jog wheel that lets you feel clip boundaries, or a playback-speed dial that snaps to common multipliers. The project is documented for advanced electronics hobbyists rather than as a plug-and-play product; the firmware is written in C++ and the README warns that the build requires fine surface-mount soldering and some willingness to troubleshoot. The full README is longer than what was provided.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.