The SDVX Controller is a fully open-source, DIY arcade controller for Sound Voltex and compatible rhythm games. It runs on an STM32F401 (BlackPill v3.0) microcontroller and presents itself to any PC as a standard USB HID joystick — no drivers required. The project covers everything from PCB fabrication to 3D-printed enclosure parts to firmware that handles button debouncing, quadrature encoder decoding, and animated WS2812B RGB lighting — all from a single repository.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/MrJefter/sdvx-controller/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
Learn what the controller is, how it works, and what you need to build one
Bill of Materials
Full list of components, tools, and materials required for the build
PCB Design
Schematic, layout, Gerber files, and BOM for the custom single-layer PCB
Enclosure
3D-printed case parts, STEP files, and printing recommendations
Assembly Guide
Step-by-step instructions to go from parts to a working controller
Firmware
Firmware architecture, how to build with STM32CubeIDE, and flash via DFU
GPIO Pinout
Complete pin assignments for buttons, encoders, LEDs, and BOOT0
USB HID Report
HID report descriptor, byte layout, and axis/button mapping
How it works
Build the hardware
Etch or order the single-layer PCB, solder the components, and wire up the BlackPill, two LPD3806 encoders, seven Cherry MX buttons, and an optional WS2812B LED strip.
Print the enclosure
Print the eight STL files — top panel, bottom shell, side walls, keycaps, knobs, and spacers — then assemble the case around the PCB.
Flash the firmware
Open the project in STM32CubeIDE, build it, and flash the BlackPill over USB using DFU mode or an ST-Link adapter.
This project is licensed under CC BY-NC-SA 4.0. You are free to build, modify, and share it for non-commercial purposes with attribution.