Hacker News new | past | comments | ask | show | jobs | submit login
SmartKnob – Haptic input knob with software-defined endstops and virtual detents (github.com/scottbez1)
311 points by e3a8 on Sept 9, 2023 | hide | past | favorite | 47 comments



Wonderful to see such a well documented open source hardware project! It does show though how much more difficult these are than software projects. 3d design and printing, hardware sourcing issues, the need for careful component selection, very poor support for automation of the toolchain, etc etc. As a minor hardware tinkerer this is both impressive and daunting. Bravo!


Not to mention the cost of failure and iteration.


It's all relative. It has gotten at least an order of magnitude less expensive over the last 10-15 years- 3D printing, low cost PCB manufacturers, availability and cost of automated machine tools like CO2 laser-cutters.

It has actually gotten to a point where often time is the most "expensive" component of hobby/open-source hardware projects- while the cost of CAD software has decreased (mostly due to competition and increased demand that allows to spread the development cost over larger customer base), the productivity of CAD-related tasks has not increased much, if at all.


After many years of being a father of 3 active kids, you can remove the "often" in your sentence :-D


test


I absolutely love that this is open source hardware; there have been multiple circuits available on the web for this kind of peripheral, but nothing even approaching the level of polish that this has.

If the designer happens to be here, I have a question regarding the circuit. Is there any protection against voltage produced by a user's rotation of the knob? The TMC6300 IC that the schematic shows is directly connected to the BDCM without any intermediate circuitry, but the only 'protections' listed in its datasheet are related to failures related to the motor being used as a motor, not as a generator.


Designer here - I will admit that I just do this as a bit of a hobby and I'm not an EE, so I don't have a great answer for you, but generally speaking since this is a high resistance/low KV motor and there's only so fast you could spin it by hand realistically, I think the voltages you could generate that way shouldn't be so high as to cause damage in most cases. The TMC6300 datasheet does show it directly connected to the BLDC motor so that's what I based this design on.

There are probably some best practices that I'm missing though (diode on the main supply maybe?), so if anyone knowledgeable wants to chime in, I'm all ears! (Or I suppose pull requests are welcome too).


Thanks for the swift response! I've been interested in haptic feedback for a long time, but so far have not come across any general way to calculate the acceptable power dissipation for a given motor and driver circuit. Physical controls have so much to offer in ease-of-use, but the chief downside of them currently is that there is no easy 'two-way binding'.


Motors often run at high rpm and then shut off, coasting to a stop. I would expect any standard bldc controller circuit to be able to handle any potential generated by manual movements without difficulty.


Many ESCs these days have a brake function, where they short-circuit two of the phases together, stopping the motor abruptly, too.


The UX in your project is fantastic, well done. The motor kicks to simulate clicks, for example, are a really nice touch. I still don't get how the PCB detects flexing, I'll just put it down to magic.


MechE here. The way strain gauges work is with a long conductive trace that loops back on itself like a snake, or a radiator. This creates a conductive line that passes back and forth many times along the direction you want to measure strain in.

When the surface that the gauge is attached to flexes, the PCB itself actually stretches and shrinks by a very small amount, on the order of a thousandth of a percent. This causes the long conductive trace to get slightly longer, which measurably increases its resistance.


Oh wow, I had no idea about this effect, thanks!


Interactions like these are the reason why HN is so worth reading!


Why hello there. I am building a digital jukebox with physical controls and was looking for a few different knob like controls to use to shuffle through tracks. Definitely going to be using this in the project. Thanks for a well documented and Open Source piece of hardware.


Past submission from 2022 with a dozen comments:

https://news.ycombinator.com/item?id=30646371


Tried searching by link before submission, it showed no results


No worries, this is definitely worth another submission. I pointed out the earlier one because the creator of SmartKnob had answered some questions there already.


the resubmit is worthwhile even for just the motor stocking updates


Exactly, last time it was posted here there were no motors available. I checked back a few times but there wasn't anything that worked. Glad to see there is a working option now.

Definitely a project I want to make when I have some free time.


Brilliant execution. I see so many knob-based inputs on home appliances where they have physical detents but the input encoder does not match the detents. Say you turn the appliance on, it starts at setting one, and you need to turn the dial to setting three. Any reasonable person would expect one physical click to take you to setting two, another click would take you to setting three. But I keep seeing devices where the detents are completely arbitrary and you have no idea how many “clicks” it takes to get to the setting you want. This makes the detents actively misleading.


SimpleFOC is one of the best things I learnt after graduation! So many projects can make use of the features, hardware & software both.


Apparently this and many other cool projects were demoed at Open Sauce in SF https://opensauce.live/


I definitely need a use case for that


Kind of obsolete now but a radio tuner where the strength of the detent is proportional to the strength of the signal.


Control panels for various hardware. I could think of many uses in music synthesizers for example where access to many parameters for quick modification during live performance can make the difference.


I have a Roland/Boss GT-100 guitar processor (a big pedal board), which features 8 programmable/assignable open-ended rotary knobs (open ended as they can just be kept rotating without hitting some kind of stop). It would be great to be able to _feel_ hitting certain settings when brushing them with my foot, without having to look at all.

As a musician, I think the introduction of haptics to electric/electronic instruments allows you to move in unexplored aural directions, which is sometimes very musical.


On a related music/audio note, I recently came across videos of the teenage engineering TP-7 which looks like a really cool application of similar haptic feedback concepts. Unfortunately it's out of the price range where I can justify picking one up just to tinker around with it, so I've only seen videos of it so far.


The TP-7’s disc does have haptic feedback in the menus, it clicks and resists based on the context. It’s a solid design.


DIY smart thermostat? One button/rotary knob stereo interface?


there was a microsoft surface dial, not sure if that ever took off or not. I thought there was another product that had this form factor


Surface dial was very cool. I haven't heard much about it, though. Wouldn't surprise me to find that there may be patent clashes with this project. Most hardware is heavily patented with highly enforceable patents. It's a damn minefield.

One of the problems with "Cool UX," is that it is too "in your face."

I know of what I speak. I have designed "cool" UX elements for most of my career.

It's a mistake I keep making. I guess I like the challenge.

One of my latest efforts, is a "prize wheel" spinner for Swift (iOS/iPadOS, via UIKit)[0]. I have considered creating a SwiftUI version of it (and even started work on that), but I can't justify it.

It's really very lightweight, high Quality, and easy to use.

I keep on not using it in my projects, because it's too "attention-grabbing." There's a reason that waitstaff usually wear black.

[0] https://github.com/RiftValleySoftware/RVS_Spinner


Another product that looks slightly similar to this, but behaves differently:

3Dconnexion SpaceNavigator

https://www.amazon.com/3Dconnexion-3DX-700028-SpaceNavigator...

And then there are the bigger siblings to that, which basically add a bunch of buttons around the SpaceNavigator:

3Dconnexion SpaceMouse Pro

https://www.amazon.com/3Dconnexion-3DX-700040-SpaceMouse-Pro...

3Dconnexion SpaceMouse Enterprise

https://www.amazon.com/3Dconnexion-SpaceMouse-Enterprise-31-...


3Dconnexion mice don't rotate, they are joysticks with twist and push/pull, just shaped like a dial rather than that on a jet fighter. Surface Dial is a scroll wheel to replicate and improve on features in Wacom drawing tablets that its host device competes with, so it's completely different.


I know. That’s why I said it looks slightly similar and behaves differently.


There was a guy that made his own and open sourced it:

https://youtu.be/iHBgNGnTiK4


This is great! I've been thinking about building something similar for sleep training with my toddler--need something that works in a dark room by feel and has variable intervals. Love it.


I have been looking for good-feeling large rotary encoders and this looks like the best option available. Having software-based detents means that they are perfectly aligned with the actual trigger, besides all the other flexibility demonstrated.

Sadly it's too big and costly to put into a dimmer switch, but maybe I'll get it as a general peripheral.


Make sure to watch the demo videos, they're great.

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


Ooh this project is among the most impressive ones I've ever seen. I saw it years ago and I still remember it (and want one) from time to time. Well done.


Love to see open source hardware on HN. Great job with this one! If I were not overwhelmed with projects this one would be on my list.


Can the parts be swapped out for automotive grade versions? I need it for the new Tesla Highland since it doesn't have a shifter


These would be awesome for flight simming.


Being a sim racing guy, my initial thought was for brake bias / traction control / fuel map.


I'd love to build a thermostat out of that. That seems like the perfect use case.


I don't know how much you adjust your thermostat, but I would want more excuses to use it - something more interactive such as a TV remote! But it would be interesting to have a thermostat knob that 'resists' your twisting based on the estimated energy usage to produce your requested temperature, as an intuitive way of conveying heating/cooling costs.


The flight/space sim community would love this.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: