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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.