Karl Makes Music, and He Does So with a Customized SmartKnob Powered by an STMicro STM32

Offering programmable haptic feedback, including detents under software control, this SmartKnob packs in a lot of power.

Gareth Halfacree
24 days agoHW101 / 3D Printing

Semi-pseudonymous YouTuber "Karl Makes Music" is working on a customized SmartKnob powered by an STMicro STM32 Nucleo64 — and is aiming to make "one knob to rule 'em all," packing a wealth of features into his spin on Scott Bezek's original SmartKnob design.

"Why did I build this project? Well, primarily for fun," Karl explains. "I wanted to experiment on force feedback and haptics, and I also wanted this device to control my audio system. With the right API [Application Programming Interface], you can have the one knob that rules them all — it could be programmed to be used as a MIDI interface or MIDI device, it could be programmed to be used as a device controlling smart home equipment such as dimmers, thermostats, and similar devices, or you could pair three to six devices just like this one and create your own color grading or video editing surface."

This clever STM32-powered controller aims to be "one knob to rule 'em all." (📹: Karl Makes Music)

The SmartKnob, as the name implies, is more than just a rotary input. Originally created by Scott Bezek, who was in turn inspired by work on haptic textures by Jesse Schoch, the SmartKnob pairs a brushless gimbal motor with a magnetic encoder for closed-loop torque feedback control — allowing the knob to adjust detents and end-stops under software control. A central circular screen provides visual feedback, and a strain gauge combined with PCB deflection offers pressure-sensitive push control in addition to rotary operation.

Where Bezek's original design uses an Espressif ESP32, though, Karl's spin moves to an STMicro STM32. "The primary reason for this is," Karl explains, "is that I wanted to have a lot of in/out lines [general-purpose input/output pins]. For example, if I want to run six PWM [Pulse Width Modulation] motor drivers I need 12 pins on the controller configured as PWM outputs."

The project is a respin of Scott Bezek's SmartKnob, which is powered by an ESP32. (📹: scottbez1)

As well as the STM32 microcontroller, in the form of a Nucleo64 board, the project uses an AMS AS5047U encoder, a Trinamic TMC6300-BOB motor driver breakout board, a Waveshare GC09A1 TFT display, a ring of individually addressable WS2812 RGB LEDs, and a TMOTOR GB36-1 BLCD motor. Everything is housed, as with the original design, in a 3D-printed casing.

More details are available in Karl's video, while the original SmartKnob source code and design files are available on GitHub under the permissive Apache 2.0 license.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles