Smartknob
Haptic input knob with software-defined endstops and virtual detents
Install / Use
/learn @scottbez1/SmartknobREADME
SmartKnob
SmartKnob is an open-source input device with software-configurable endstops and virtual detents.
A brushless gimbal motor is paired with a magnetic encoder to provide closed-loop torque feedback control, making it possible to dynamically create and adjust the feel of detents and endstops.
Join the Discord community to discuss the project with others, show off your build, or help answer each others' questions!
Designs
SmartKnob View
The "SmartKnob View" is the premium SmartKnob experience with an integrated display shown in my demo video. Under active development.
🎉 Motors are now available! If you've been following this project, you'll know that the recommended motors went out of stock nearly immediately after it was published. Thanks to the community, we were able to identify the likely original manufacturer, and recently SparkFun Electronics has been getting them produced and regularly stocking them! (However, they've been selling out quickly each time they restock, so definitely sign up for backorder notifications if they're out of stock when you check). Thanks to everyone who helped search and investigate different motor options along the way!
Features:
- 240x240 round LCD ("GC9A01"), protected by 39.5mm watch glass on rotor
- BLDC gimbal motor, with a hollow shaft for mechanically & electrically connecting the LCD
- Powered by ESP32-PICO-V3-02 (Lilygo TMicro32 Plus module)
- PCB flexure and SMD resistors used as strain gauges for press detection (haptic feedback provided via the motor)
- 8 side-firing RGB LEDs (SK6812-SIDE-A) illuminate ring around the knob
- USB-C (2.0) connector for 5V power and serial data/programming (CH340)
- VEML7700 ambient light sensor for automatic backlight & LED intensity adjustment
- Versatile back plate for mounting - use either 4x screws, or 2x 3M medium Command strips (with cutouts for accessing removal tabs after installation)
- Front cover snaps on for easy access to the PCB
Current status: Not recommended for general use, but may be a fun project for an advanced electronics hobbyist.
Demo video
<a href="https://www.youtube.com/watch?v=ip641WmY4pA"> <img src="https://img.youtube.com/vi/ip641WmY4pA/maxresdefault.jpg" width="480" /> </a>How it works
<a href="https://www.youtube.com/watch?v=Q76dMggUH1M"> <img src="https://img.youtube.com/vi/Q76dMggUH1M/maxresdefault.jpg" width="480" /> </a>3D CAD

Latest Fusion 360 Model: https://a360.co/3BzkU0n
DEMO: video editor timeline control
If you edit audio/video, imagine having a jog wheel where you could feel the clip boundaries as you scrolled through the timeline. Then switch to playback speed control, with a wheel that's spring-loaded to return to "paused," with snaps at 1x, 2x, 4x, etc. The SmartKnob can do this; it just needs some software integrations to be written. Check out a demo using a SmartKnob prototype to control a mock video timeline:
<a href="https://www.youtube.com/watch?v=J9192DfZplk"> <img src="https://img.youtube.com/vi/J9192DfZplk/maxresdefault.jpg" width="480" /> </a>(you can actually try this demo yourself if you've already built a SmartKnob; plug it in over USB and go to https://scottbez1.github.io/smartknob/)
Build your own?
While this is a "DIY" open-source project, it is not yet a mature plug-and-play project. If you intend to build your own, note that it requires advanced soldering experience to build - very small-pitch surface-mount soldering is required (reflow or hot air recommended), and assembly is quite time-consuming and delicate. Please go into it with the expectation that you will almost certainly need to be able to troubleshoot some hardware and firmware issues yourself - I recommend reviewing/understanding the schematics and basic firmware before jumping in!
More documentation on the BOM and what parts you need to order is coming in the future - thanks so much for your interest! Follow me on Twitter for the latest updates on this and other projects.
View the latest auto-generated (untested) Base PCB Interactive BOM and Screen PCB Interactive BOM (or, the combined BOM csv) for electronics/hardware parts list. ⚠️ These are auto-generated from the latest untested revision on GitHub. For tested/stable/recommended artifacts, use a release instead.
A few miscellaneous notes in the meantime:
- There's limited space inside the LCD mount for wiring, and 8 wires need to fit through the hole in the center. I used 30 AWG wire-wrapping wire. Enamel-coated wire would probably work too.
- Older versions of the design (as seen in the videos) used glued-on BF350-3AA strain gauges to detect presses; in v0.5 these were replaced with footprints for SMD resistors, which exhibit similar properties when stretched/compressed and are much easier to assemble.
- The TMC6300 is tiny and has a bottom pad, so I would seriously consider getting a stencil along with the PCB order. Even with the stencil I needed to manually clean up some bridging afterward; I highly recommend Chip Quik NC191 gel flux, available on Amazon (or use this non-affiliate link instead) or from your electronics distributor of choice. Flux is also very helpful when soldering the LCD ribbon cable to to screen PCB.
- For breadboard prototyping, the TMC6300-BOB or SparkFun's TMC6300 driver board are awesome and way easier to work with than the bare chip if you just want to play around with low current BLDC motors
- For AliExpress purchases: I highly recommend only using AliExpress Standard Shipping (purchasing in the US). I have had multiple purchases take months or never get delivered when purchased with Cainiao or other low cost shipping options, whereas AliExpress Standard is very reliable and generally faster in my experience.
- Make sure to check the open issues - this design is not yet "stable", so beware that everything may not go smoothly.
Future plans:
- consider switch to using an ESP32-S3-MINI-1 module
- get wifi configured and working (probably MQTT?). Currently memory is an issue with the full display framebuffer sprite. PSRAM might fix this (requires newer ESP-IDF & unreleased Arduino core, and from a brief test I got horrible performance with PSRAM enabled), or the next item might help reduce memory:
- migrate to LVGL, for better display rendering and easy support for menus, etc. Shouldn't require a full 240x240x24b framebuffer in memory, freeing some for wifi, etc.
- Home Assistant integration, or other real-world applications
- ???
- Profit 😉
Already built one?
Check out the firmware/software documentation for tips on getting it programmed and hooking it up to your own software integrations.
If you've already uploaded the standard firmware and gone through the calibration process (see guide linked above if you don't know what this means), go to https://scottbez1.github.io/smartknob/ to try out an interactive web-based demo that uses Web Serial to talk to a SmartKnob that's plugged into your computer's USB port!
Base PCB
<a href="https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-front-3d.png"> <img src="https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-front-3d.png" width="300" /> </a> <a href="https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-back-3d.png"> <img src="https://smartknob-artifacts.s3.us-west-1.amazonaws.com/master/electronics/view_base-back-3d.png" width="300" /> </a>Ordering notes: use white soldermask, for reflecting light from RGB LED ring around the knob. Should be 1.2mm thick (not "standard" 1.6mm).
If you are ordering a stencil for solder paste from JLCPCB and plan to apply paste by hand (as shown in the video) without a stencil frame/machine, make sure to select "Customized size" and enter smaller dimensions (e.g. 100mm x 100mm) to avoid getting a much larger stencil than you need. This will also likely reduce the cost of shipping substantially! Also, select only the Top side; the bottom only has 2 SMT components - the motor connector and VEML7700 ALS - so it's not worth getting a stencil for that.
Latest auto-generated (untested and likely broken!) artifacts⚠️:
[PCB Packet](https://smar
Related Skills
node-connect
337.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.1kCommit, push, and open a PR
