Haptic input knob with software-defined endstops and virtual detents
Haptic input knob with software-defined endstops and virtual detents
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!
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:
Current status: Not recommended for general use, but may be a fun project for an advanced electronics hobbyist.
Latest Fusion 360 Model: https://a360.co/3BzkU0n
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:
(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/)
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:
Future plans:
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!
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⚠️:
⚠️ For tested/stable/recommended artifacts, use a release instead.
Ordering notes: Must be 1.2mm thick (not "standard" 1.6mm) per mechanical design. (The PCB silkscreen mentions 0.6mm thickness - this is the thickness of the VHB tape for adhering the LCD; the PCB should be 1.2mm thick)
There are few enough components on the Screen PCB that I chose to hand-solder them rather than reflow with solder paste and a stencil, but if you order a stencil, see the note above about selecting a "Customized size" to be easier to handle and save on shipping. Also make sure to select the Bottom side only; all the components are on the bottom side of the screen PCB.
Latest auto-generated (untested and likely broken!) artifacts⚠️:
⚠️ For tested/stable/recommended artifacts, use a release instead.
You will need six printed parts. The current stable designs can be found as STL assets in the v185 mechanical release or you can export the latest untested designs from the CAD model by opening it in Fusion 360: https://a360.co/3BzkU0n
The parts can probably be FDM 3D printed with a well-tuned printer, but the parts shown in videos/photos were MJF printed in nylon for tight tolerances and better surface finish.
If you wanted a simpler build, you could omit the LCD and just merge the knob + glass from the model into a single STL to get a closed-top knob.
Export and print the following 6 parts:
EnclosureKnob (RotorAssembly->KnobAssembly->Knob)ScreenPlatformRotorSpacer (RotorAssembly->RotorSpacer)MountBaseBackPlate⚠️ If you opt to go for MJF Nylon printing from JLCPCB, their system may complain about < 0.8mm wall thickness detected on the MountBase, ScreenPlatform and RotorSpacer parts. This appears to be a f
Motor out of stock
Fusion 360 source files
Can you consider accessing HomeAssistant?
Many improvements (battery, accelerometer, touch, MIDI, etc.)
Add buttons to the rim for various actions
Upgrade to a higher resolution display?
Is it possible to use it as a shuttle (not jog) wheel for video editing?
Has anyone looked into using a PCB stator motor for the Smart Knob?
Motor initialization
Idea: Give option to buy pre-made PCBs somewhere for less experienced people