SMARTKNOB — OPEN-SOURCE HAPTIC INPUT KNOB WITH SOFTWARE-DEFINED DETENTS

A knob where every click, spring, and endstop is created by a motor running closed-loop torque control — and you change the feel by editing code.

by Scott Bezek

FULL CAD BOM FIRMWARE DOCS

Open-hardwareDisplays

difficulty
●●●●
time
a long weekend
license
Apache-2.0
repo
repo ACTIVE21,962 stars

WHAT YOU’LL NEED

  • 3D printer + filamentprintable parts — files are in the repo
  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware

Partner

Reach your Pi from anywhereRemote desktop to the machine running this build — no port forwarding, works right from the browser.Try Getscreen.me
1

COMPAREE VERDICT

SmartKnob is a BLDC gimbal motor driving a magnetic encoder in closed loop, so it can simulate detents, springs, and hard stops purely in firmware. Turn the code dial and it becomes a smooth volume knob; change one parameter and it locks into 12 positions with a satisfying click. A round 240×240 LCD sits in the rotor behind watch glass, so the UI can match the haptic mode. The entire design is open — boards, code, enclosure — and Scott Bezek's build guide is thorough. The single thing most likely to go wrong is the soldering: the TMC6300 motor driver is a 0.5mm-pitch QFN, the MT6701 encoder is similarly tiny, and if you have never reflowed that scale of part you will spend longer on rework than assembly. The second trap is motor tuning — not every gimbal motor behaves the same, and getting smooth detents means tweaking PID gains. If you have built a 3D printer or soldered a keyboard PCB, this is the logical next step; if you have only done through-hole kits, it will eat your weekend and possibly the one after. The reward is a control that stops being hardware and starts being software, and that feeling the first time a virtual click lands exactly where you expect it is worth the flux.

NOT IN THE REPO

  • Full KiCad schematics and board files for the main PCB and strain gauge board.
  • Complete ESP32 firmware in the repo, PlatformIO project structure.
  • STL files for all printed parts — knob body, motor mount, back cover.
  • Detailed assembly docs with photos, BOM with supplier links, recommended motor back in stock at SparkFun.
  • Creator warns this is advanced-hobbyist territory: 0.5mm-pitch QFN chips, hand-soldering tiny SMD parts, motor tuning required.
  • Apache 2.0 licence, permits commercial use with attribution.

Can I build this?

PrintKnob body, motor mount, back cover, and LCD bezel — six STL files, PLA or PETG, no supports on most parts.
BuyESP32-PICO-V3-02 module, TMC6300 motor driver, MT6701 magnetic encoder, GC9A01 round LCD, brushless gimbal motor (5010 or 5208 recommended, SparkFun restocked), diametric magnet, watch glass, and the usual passives — full BOM with Mouser and Digikey links in the repo.
ToolsHot air or reflow oven for QFN chips, fine-tip soldering iron, PlatformIO, 3D printer, basic hand tools.
SkillsAdvanced soldering — 0.5mm-pitch surface-mount, drag soldering or hot air required. Firmware flashing, motor PID tuning, and patience for closed-loop debugging. Not a first electronics project.
TimeA long weekend if you have done SMD before; a weekend-plus if the QFN chips are new to you and you hit tuning trouble.
Cost$$ — motor and electronics dominate, around $60–80 in parts if you already have the passives stock; if you are buying everything including the LCD and magnet it will push higher.
SafetyNone beyond ordinary electronics care — low voltage throughout, no mains, no lithium cell in the design.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Videos

SmartKnob demo by creator

Scott Bezek's original demo video showing the haptic modes — bounded detents, smooth rotation, multi-rev, hard endstops. No voiceover, just the knob doing its thing.

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the full README and view demo video (Scroll to the hardware and firmware sections — Scott's notes on motor selection and tuning are buried halfway down and you need them before ordering.)
  2. 2.Check the BOM and order parts(The 5208 motor is back in stock at SparkFun as of the creator's last update; if it is out again, the 5010 works but needs different PID values.)
  3. 3.Print the enclosure parts(Six STL files; the knob body prints hollow-side-up, no supports. PETG recommended for the motor mount if your printer runs hot.)
  4. 4.Assemble and solder the main PCB(QFN chips go on first with hot air; if you have never done 0.5mm pitch, practice on a scrap board. The photos in the assembly doc are helpful but not step-by-step.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

Blu-ray drive, 10 Gbps hub and card reader in one boxPartner · Kickstarter
Blu-ray drive, 10 Gbps hub and card reader in one box

BluHub reads and burns Blu-ray/DVD/CD, adds USB-C, USB-A, SD/TF and 10 Gbps data — plug and play, grand-piano finish.

See the hub

KNOWN ISSUES

  • Ordering the wrong motor — the recommended 5208 goes in and out of stock, and substituting a random gimbal motor without checking the resistance and KV will leave you retuning PID values for hours.
  • Underestimating the SMD soldering — the TMC6300 and MT6701 are 0.5mm-pitch QFN chips; if you have only done SOIC or 0805 passives this will be a step up and you need flux, hot air, and patience.
  • Skipping the encoder alignment — the MT6701 reads the magnet position and if it is not centred over the shaft the readings will wobble, which shows up as inconsistent detent strength. The mechanical tolerance is tight.
  • Flashing firmware without setting up PlatformIO properly — the repo uses PlatformIO, not Arduino IDE, and if you skip the dependency install the build will fail halfway with cryptic errors.
  • Expecting plug-and-play haptics — every motor has different resistance and inertia, so the default PID values are a starting point. You will spend time tuning, and the creator's notes on that are brief.
  • Assuming the LCD is optional — it is not just decoration, the demo firmware uses it to show which mode is active and several UI elements assume it is there. You can run headless but you lose context.

Can I use a different motor if the recommended one is out of stock?

Yes, but it has to be a low-resistance brushless gimbal motor (under 10Ω per phase) and you will need to retune the PID gains in the firmware. The 5010 size works and is more common, but has higher inertia so detents feel softer unless you increase the torque.

Do I need a reflow oven or can I hand-solder the QFN chips?

Hot air is the practical minimum; drag soldering a 0.5mm-pitch QFN with an iron is possible but miserable. A cheap hot-air station is enough if you have flux and go slow.

How hard is the motor tuning?

If you are used to PID loops, an hour. If this is your first closed-loop motor project, expect an afternoon of tweaking and reading the TMC6300 datasheet. The repo has starting values but every motor is different.

Can I run this on battery?

The design is USB-powered (5V input); you could run it off a USB battery bank but the motor will drain it faster than you expect under load. There is no onboard charging or low-power mode.

Is there a prebuilt version or a kit?

No official kit exists. A few people have sold assembled versions on Tindie in the past but availability is sporadic. If you want one you are building it yourself.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

22,000 stars and the motor tuning is still the part that separates a weekend build from a month-long debug — how long did yours take to feel right?

CompareeTEAM1mo agoedited

Practical notes from our verification: the repo is actively maintained, the BOM links are current as of mid-2024, and the 5208 motor restocked at SparkFun after being out for months (check the README for the direct link). There is no official assembly video — the YouTube demo is Scott showing the modes, not the build — so the photos in /doc/assembly.md are what you get, and they are clear but not hand-holding. The single biggest time sink reported by builders is not the soldering, it is getting the encoder magnet aligned and the PID values dialed in; if the detents feel mushy or inconsistent, that is where you go back.

Scott Bezek

Scott Bezek is a hardware engineer who built SmartKnob to explore what happens when a control surface stops having fixed mechanical properties and becomes programmable. The project emerged from curiosity about haptic feedback and has since become one of the most-starred open-hardware input devices on GitHub.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.