Mighty Mini Media Controller
by KeepEverythingYours in Circuits > Microcontrollers
67 Views, 0 Favorites, 0 Comments
Mighty Mini Media Controller
A CircuitPython USB HID media controller built from an RP2040 board and a rotary encoder. Plug it into any computer and it works instantly as a media keyboard — no drivers required.
Rotate the encoder to raise or lower volume. Press down for play/pause. All pins and timing constants are configurable at the top of `code.py`.
Works on Windows, macOS, Linux, and ChromeOS. The firmware is open source and CC BY-NC 4.0 licensed.
For more info about where to get one check here
If you like this project come check out my others at keepeverythingyours.com
Supplies
Gather Components
Before starting, make sure you have everything on the components list. You will need an RP2040 zero and a 12mm x 12mm footprint rotary encoder.
You will also need a computer with a USB port and a USB cable to connect the board and a soldering iron to attach the encoder to the board.
Bend Encoder Tabs
The tabs on the encoder must be bent up so that the encoder will sit flush on top of the RP2040 board.
The image shows the tabs before and after bending them up flush with the body of the encoder.
Solder on the Encoder
The encoder should be soldered on as shown. The 3 pin side connects to GPIO 27, 28, and 29. The two pin side connects to GPIO 3 and 5.
Put Device Into Base 3D Print
The soldered device should fit nicely into the 3D printed base.
Put on Lid
The lid will slide over everything and friction fit.
Screw Down Encoder
Use the nut and washer to firmly attach the encoder to the lid.
Attach the Knob
Line up the D shaped mark and press the knob onto the encoder. It will friction fit.
Flash the Firmware
Download and install CircuitPython for your board by dragging the `.uf2` file onto the board while it is in bootloader mode (hold BOOTSEL while plugging in on a Pico).
Copy the `adafruit_hid` folder from the Adafruit CircuitPython Bundle into the `/lib` directory on your `CIRCUITPY` drive.
Copy `code.py` from this git repo to the root of the `CIRCUITPY` drive. If you used different pins in the previous step, edit the `*_PIN` constants near the top of the file before copying. The board will reboot automatically and the controller will start working immediately.