QT Py USB Media Knob using rotary encoder & neopixel ring
The QTPy-Knob features:
A small video about it: https://www.youtube.com/watch?v=pt7JgoSlgOg
This is an attempt to make a minimal and easy-to-build version of similar, previous projects like:
Parts needed:
fakerotaryio
hack)For some of the scripts and for some QT Py variants, there are prebuilt UF2 firmware images in Releases.
Otherwise, software installation consists of:
The CircuitPython installation step is described here: https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython
The last two steps can be accomplished with the below
git clone https://github.com/todbot/qtpy-knob
cd qtpy-knob
pip3 install circup
circup install -r requirements.txt
cp qtpy_knob.py /Volumes/CIRCUITPY/code.py
RP2040 NOTE: And if you have a QTPy RP2040, be sure to copy the "fakerotaryio.py" file to CIRCUITPY as well.
There are a few variations of the code provided:
qtpy_knob.py
-- volume up / down and muteqtpy_knob_scroller.py
-- performs vertical & horizontal scrollingqtpy_knob_midi_cc.py
-- sends MIDI CC instead of keyboard/mouseqtpy_knob_simple.py
-- no neopixel stuff, just encoder and USB vol up/down sendingSteps:
Plug rotary encoder to bottom of QT Py. If your encoder has metal on the bottom, add a bit of tape (Kapton, Scotch, electrical) in between the QT Py and the encoder. If your encoder has mounting tabs, cut them off. Solder the five pins.
Print out the enclosure on your 3d printer. Standard 0.2mm at 20% infill is fine. The STL files are:
qtpyknob-base.stl
-- Base that houses the QT Py & rotary encoderqtpyknob-basecap.stl
-- Cap that goes on the bottom of the baseqtpyknob-knob.stl
-- Knob that you turnqtpyknob-diffuser.stl
-- Light diffuser that goes between base & knob, should be printed with translucent or clear plastic. Or you can leave it out. Or you can approxiate it with a disk cut out clear plastic like a CD caseUse the rotary encoder's washer & screw to hold QTPy+encoder assembly
Solder three wires to the Neopixel ring, insert the ring into the enclosure and solder the wires to the 3V, Gnd, and MI pins of the QT Py. Use a bit of hot glue to secure the Neopixel ring if it doesn't snap in.
Snap the bottom cap on and the knob top on and you're done with physical assembly!
Resources that helped me out on this: