What does HackerNews think of smartknob?

Haptic input knob with software-defined endstops and virtual detents

Language: C++

I made a rotary input device that provides software-defined "virtual" detents and end-stops, implemented using a BLDC gimbal motor. It can dynamically switch from completely smooth unbounded rotation, to having detents with configurable spacing and strength and "end-stops" that spring back if you try to rotate past them.

https://www.youtube.com/watch?v=ip641WmY4pA

It's got a round LCD on the front of the knob (wired and supported via the hollow shaft of the motor) and uses the flex of the PCB and strain gauge sensors (in the latest revision, simply SMD resistors whose resistance changes when stretched) to detect when the knob is pressed down.

It's open source hardware and software - https://github.com/scottbez1/smartknob

HN folks might appreciate that it communicates with host software on the computer via protobuf-encoded USB serial messages -- nanopb is awesome for embedded C protobuf support, and having the defined schema, autogenerated serialization code, and compile-time type safety is so much nicer than ArduinoJson or hand-written binary protocols!

I'd love to get it hooked up to some real software eventually (video editors or home-assistant control are my 2 main ideas), but it's really just been a fun project to tinker with and try out some new ideas and parts I've never used before.

As an hardware guy with a love for good interfaces I can only say: told ya so (ca. 5 years ago).

Touch screens can be nice for a lot of things, but sometimes actual haptic feedback and positional consistency is worth more than the flexibility gained. Especially in devices or machines we interact with multiple hours a day, where flexibility isn't the point. E.g. a tablet using a touch screen makes a lot of sense, as that flexibility makes sense here. But it makes less sense in a car, except maybe for the entertainment system and even there actual physical switches, dials and levers can be superiour in terms of usability.

What I love are really nice things like motor faders on upper class mixing desks. You have a physical interface that can follow whatever digital state you have stored, it is just perfect.

There is a future in devices that combine screens, physical dials, levers and latches with haptic feedback, e.g. like this amazing project: https://github.com/scottbez1/smartknob

(A dial with a motor and a screen, which allows for virtual "limits" and dedents)

I think force feedback (and or haptic feedback) is truly the future of interaction design.

To see an amazing example of this, check out the smartknob project: https://github.com/scottbez1/smartknob

Code, for anyone who found it hard to locate: https://github.com/scottbez1/smartknob

Per the repo, project was inspired by this video w/virtual detents: https://www.youtube.com/watch?v=1gPQfDkX3BU

Sharing a little side project I've been working on in my free time (and open-sourced [0]), using a BLDC gimbal motor and a magnetic encoder to create a rotary input knob with all sorts of software-configurable haptic feedback.

You can find gimbal motors for pretty cheap these days, and some of them have hollow shafts, so I was able to mechanically and electrically support a round LCD wired up through the middle of the motor, with no need for a slip ring or anything expensive/complicated.

I also experimented with mounting strain gauges to the main PCB, which has some cutouts so it acts as a little bit of a flexure, for push/pull detection (and haptic feedback "click" provided by a super short torque of the BLDC motor) [1]

Happy to answer any questions you might have!

[0] https://github.com/scottbez1/smartknob/ [1] https://twitter.com/scottbez1/status/1499514054624169993