close
Skip to main content
BERJAYA

r/circuitpython


Rovari Circuit Studio v0.1 Initial Release
Rovari Circuit Studio v0.1 Initial Release
BERJAYA r/circuitpython - Rovari Circuit Studio v0.1 Initial Release

Columbus Micro Center is being remodeled with a whole new look and upgrade you’ll love! Sign up for a FREE 128GB Flash Drive
BERJAYA Columbus Micro Center is being remodeled with a whole new look and upgrade you’ll love! Sign up for a FREE 128GB Flash Drive


I built "TheDeck", an open-source, touchscreen driven StreamDeck alternative running CircuitPython
I built "TheDeck", an open-source, touchscreen driven StreamDeck alternative running CircuitPython

Hey everyone,

I wanted a macro pad that felt more dynamic and customizable than a fixed grid of physical mechanical buttons, so I built TheDeck. Instead of static keys, it uses a 2.8" Adafruit touchscreen to create a flexible, ever changing interface that swaps between different functional layouts.

The hardware runs on a Seeed Studio XIAO RP2040. Because the XIAO has a fairly minimal pinout, I integrated an MCP23017 I2C port expander to give myself enough IO pins to route everything, including a rotary encoder for media control and two Cherry MX tactile switches (for instant play/pause/stop actions).

The entire firmware is written in Python using CircuitPython libraries. I’m running an internal UI engine with custom widget rendering (progress bars, arc widgets, animations, and transitions) that handles multiple screens like an App Launcher, Pomodoro Timer, and a "Now Playing" media screen.

For the "Now Playing" functionality, I wrote a lightweight Windows companion app using the WinSDK that grabs active media data from my PC and streams it over serial. The RP2040 parses it over UART and live-updates the screen layout.

Everything is open source (schematics, EasyEDA PCB files, 3D CAD files for the enclosure, and the CircuitPython firmware).

GitHub Repo: https://github.com/ItsAkshatSh/thedeck

Shoutout to Hack Club for supporting this project! I would love to hear your thoughts on the design, or any suggestions on the custom UI rendering in CircuitPython.

psst star it if you like it :)


The Python on Microcontrollers Newsletter: subscribe for free
The Python on Microcontrollers Newsletter: subscribe for free
BERJAYA r/circuitpython - The Python on Microcontrollers Newsletter: subscribe for free