explaingit

scottbez1/smartknob

Analysis updated 2026-05-18

21,774C++Audience · developerComplexity · 5/5Setup · 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
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

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.

What is it built with?

C++ESP32Brushless motorMagnetic sensor

How does it compare?

scottbez1/smartknobpqrs-org/karabiner-elementselectronicarts/cnc_remastered_collection
Stars21,77422,06021,345
LanguageC++C++C++
Setup difficultyhardeasyhard
Complexity5/52/54/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get 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 a hardware project for building a physical knob whose feel, the clicks, stops, and resistance you feel as you turn it, is controlled entirely in software. Instead of a fixed mechanical mechanism, the knob uses a small brushless motor (the same kind used in camera gimbals) paired with a magnetic position sensor. The motor pushes back against your fingers in real time, which lets the code decide where the detents are, where the endstops live, and how much resistance the knob should give at any moment. The README walks through a more elaborate variant called SmartKnob View, which adds a small round LCD screen mounted inside the knob itself. That version pairs the motor with a 240x240 circular display, an ESP32 microcontroller for the brains, side-firing RGB LEDs around the edge, a USB-C connector for power and programming, an ambient light sensor for automatic brightness, and a strain-gauge setup so the knob can also detect being pressed. The README sketches scenarios where this kind of input shines: a video editor jog wheel where you can physically feel the clip boundaries, a playback-speed wheel that snaps at 1x, 2x, and 4x and springs back to paused, and other tactile interfaces that a normal mouse or touchscreen cannot reproduce. Planned future work mentioned in the README includes wifi support and Home Assistant integration. The author is upfront that this is a do-it-yourself open-source project, not a finished consumer product, building one requires advanced surface-mount soldering and patience for hardware debugging.

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?

Frequently asked questions

What is smartknob?

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.

What language is smartknob written in?

Mainly C++. The stack also includes C++, ESP32, Brushless motor.

What license does smartknob use?

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

How hard is smartknob to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is smartknob for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub scottbez1 on gitmyhub

Verify against the repo before relying on details.