Mighty Mini Media Controller

by KeepEverythingYours in Circuits > Microcontrollers

67 Views, 0 Favorites, 0 Comments

Mighty Mini Media Controller

output.gif

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

20260607_142809.jpg

Gather Components

FWI8F4SMPX8QSDM.jpg

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

20260607_142036.jpg

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

20260607_142215.jpg

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

F0IS9EGMPX8QSC9.jpg

The soldered device should fit nicely into the 3D printed base.

Put on Lid

FHRJ72SMPX8QSCO.jpg

The lid will slide over everything and friction fit.

Screw Down Encoder

F1I4TGUMPX8QSD1.jpg

Use the nut and washer to firmly attach the encoder to the lid.

Attach the Knob

FKZUEIWMPX8QSDB.jpg

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.