All Projects → todbot → qtpy-knob

todbot / qtpy-knob

Licence: other
QT Py Media Knob using rotary encoder & neopixel ring

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to qtpy-knob

awesome-webhid
Curated list of resources relating to the WebHID (Human Interface Device) API
Stars: ✭ 126 (+157.14%)
Mutual labels:  usb, usb-hid
CapableRobot USBHub Driver
www.crowdsupply.com/capable-robot-components/programmable-usb-hub
Stars: ✭ 17 (-65.31%)
Mutual labels:  usb, circuitpython
CH55x USB CompositeDevice
USB Composite Device Demo (Keyboard, Custom HID and Massive Storage) using CH55x
Stars: ✭ 94 (+91.84%)
Mutual labels:  usb, usb-hid
pyrfidhid
Python library to control Chinese USB HID 125Khz RFID Reader/Writer
Stars: ✭ 104 (+112.24%)
Mutual labels:  usb, usb-hid
Tinyusb
An open source cross-platform USB stack for embedded system
Stars: ✭ 2,257 (+4506.12%)
Mutual labels:  usb, usb-hid
FPGA-USB-Device
FPGA-based USB-device controller to implement USB-CDC, USB-HID, etc.
Stars: ✭ 29 (-40.82%)
Mutual labels:  usb, usb-hid
hid-tminit
Linux driver to properly initialize some Thrustmaster Wheels
Stars: ✭ 23 (-53.06%)
Mutual labels:  usb, usb-hid
stm32 i2c to usb hid multitouch
i2c to usb hid multi touch with stm32
Stars: ✭ 55 (+12.24%)
Mutual labels:  usb, usb-hid
DualSenseWindows UE4
Unreal Engine 4 port of the Windows API for the PS5 DualSense controller created at Ohjurot/DualSense-Windows
Stars: ✭ 25 (-48.98%)
Mutual labels:  usb, usb-hid
rpi-gadget-image-creator
Takes a standard Raspbian Lite image and adds USB Ethernet gadget config
Stars: ✭ 133 (+171.43%)
Mutual labels:  usb
8821au
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets
Stars: ✭ 67 (+36.73%)
Mutual labels:  usb
usbipd-win
Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.
Stars: ✭ 1,321 (+2595.92%)
Mutual labels:  usb
ut61e python
Captures and Interprets Data from the Digital Multimeter Uni-T UT61E using Python
Stars: ✭ 23 (-53.06%)
Mutual labels:  usb
nucular-keyboard
USB Keyboard Adapter for old ThinkPad keyboards
Stars: ✭ 27 (-44.9%)
Mutual labels:  usb
rasp vusb
This repo explains how to turn your Raspberry Pi Zero into USB Keyboard and Mouse. Also provides sample code and binaries to control them.
Stars: ✭ 85 (+73.47%)
Mutual labels:  usb-hid
libusbp
The Pololu USB Library (also known as libusbp) is a cross-platform C library for accessing USB devices.
Stars: ✭ 65 (+32.65%)
Mutual labels:  usb
droidducky-app
Android app to run duckyscript
Stars: ✭ 34 (-30.61%)
Mutual labels:  usb-hid
ESP32-USB-Soft-Host
An Arduino wrapper to @sdima1357's usb_soft_host esp-idf example
Stars: ✭ 119 (+142.86%)
Mutual labels:  usb
fix-linux-mouse
Hints how to fix USB mouse issues on Linux
Stars: ✭ 36 (-26.53%)
Mutual labels:  usb-hid
usbip-service-discovery
USB/IP Service Discovery - Provide GUI and some enhancement for USB/IP userspace
Stars: ✭ 25 (-48.98%)
Mutual labels:  usb

QTPy-Knob

QT Py USB Media Knob using rotary encoder & neopixel ring

The QTPy-Knob features:

  • Media knob for volume up/down/mute with "qtpy-knob.py" CircuitPython program
  • Stylish design reminiscent of Griffin Powermate
  • Recessed USB-C connector to for safety
  • No screws needed for assembly
  • Only 3 wires needed to solder (none if you want to forgo LED lighting)
  • Reprogrammable for any USB macro key action via CircuitPython

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:

Components

Parts needed:

Software

Software installation consists of:

  • Install CircuitPython on the QT Py
  • Install required CircuitPython libraries to QT Py
  • Copy qtpy_knob.py to QT Py

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

Variations

There are a few variations of the code provided:

  • qtpy_knob_scroller.py -- performs scrolling instead of volume knob
  • qtpy_knob_simple.py -- no neopixel stuff, just encoder and USB sending
  • qtpy_knob_midi_cc.py -- sends MIDI CC instead of keyboard/mouse

Assembly

Steps:

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

  1. 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 encoder
  • qtpyknob-basecap.stl -- Cap that goes on the bottom of the base
  • qtpyknob-knob.stl -- Knob that you turn
  • qtpyknob-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 case

Use the rotary encoder's washer & screw to hold QTPy+encoder assembly

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

  1. Snap the bottom cap on and the knob top on and you're done with physical assembly!

Wiring diagram

Assembly animation

Useful links

Resources that helped me out on this:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].