explaingit

scottbez1/smartknob

21,774C++Audience · developerComplexity · 5/5DormantSetup · hard

TLDR

Open-source programmable knob that uses a motor and sensor to simulate different physical feels, clicks, detents, springs, in software, with a display and RGB ring.

Mindmap

mindmap
  root((SmartKnob))
    What it does
      Motor-driven knob
      Programmable haptics
      Simulates mechanical feels
    Hardware
      ESP32 microcontroller
      Brushless motor
      Magnetic sensor
      Display and LEDs
    Features
      Press detection
      Haptic feedback
      Auto brightness
      USB-C connection
    Use cases
      Video editing
      Playback control
      Custom interfaces
    Audience
      Electronics hobbyists
      DIY makers
      Hardware hackers

Things people build with this

USE CASE 1

Build a video scrubber knob that lets you feel clip boundaries as you turn it.

USE CASE 2

Create a playback speed controller that snaps to specific rates and springs back to pause.

USE CASE 3

Design custom haptic input devices for music production, gaming, or industrial control.

USE CASE 4

Prototype interactive interfaces where the knob's feel changes based on context or mode.

Tech stack

C++ESP32Brushless motorMagnetic sensor

Getting it running

Difficulty · hard Time to first run · 1day+

Requires hardware assembly (motor, sensor, ESP32, display, RGB ring) and embedded firmware flashing; not software-only.

License could not be detected automatically. Check the repository's LICENSE file before use.

In plain English

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.

Copy-paste prompts

Prompt 1
I want to build a SmartKnob. Walk me through the soldering and assembly steps, and what tools I'll need.
Prompt 2
How do I write firmware for SmartKnob to make the knob feel like it has detents at specific angles?
Prompt 3
Show me how to use the SmartKnob's display and LED ring to give visual feedback while turning.
Prompt 4
I'm building a video editor control surface. How would I integrate SmartKnob to detect scrubbing and provide haptic feedback at clip boundaries?
Prompt 5
What are the common firmware bugs or hardware issues people run into with SmartKnob, and how do I debug them?
Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.