With your 3D-printed parts ready and your PCB fully soldered and tested, it is time to bring everything together into the finished controller. Final assembly is a satisfying process — each step locks another piece into place until you are left with a proper, arcade-style SDVX controller ready to plug in. Work methodically, do not rush the cable routing, and resist the temptation to close the enclosure before running a quick firmware smoke test. Build photos for every stage of this process are available in theDocumentation 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.
docs/images/ folder of the repository.
A see-through full assembly render is available in the repository under
docs/images/. Refer to it whenever you need to understand how internal components are positioned relative to each other before committing to a fastening step.Assembly Steps
Mount the PCB into the bottom shell
Place the 3D-printed Spacer and Spacer 2 standoffs into their recesses in the Bottom shell. These standoffs elevate the PCB off the base plate and protect the copper traces from shorting against the enclosure. Lower the assembled PCB onto the standoffs and secure it with the appropriate screws or friction-fit posts as designed into the spacer geometry. Confirm the USB connector on the BlackPill is accessible from the correct edge of the Bottom shell before tightening.
Insert the Cherry MX switches into the front panel
Orient the Front panel face-down on a clean, flat surface. Press each Cherry MX-compatible switch (7 total) firmly into its cutout from the top side until both plastic retention clips click audibly. Verify that every switch sits flush and square — a tilted switch will misalign the keycap and bind against the panel during gameplay.
Connect the encoders through the front panel
Thread each LPD3806 encoder into its circular cutout in the Front panel and secure it with the encoder’s locking nut. Route the encoder cables (four wires each:
+5 V, GND, channel A, channel B) toward the PCB header positions. Build photos showing the correct routing path are available in the repository under docs/images/. Plug the cables into the encoder headers on the PCB:| Encoder | Connector | Signals |
|---|---|---|
| VOL-L | TIM3 header | +5V, GND, PA6 (A), PA7 (B) |
| VOL-R | TIM4 header | +5V, GND, PB6 (A), PB7 (B) |
Route and attach the LED strip
Peel the backing off the WS2812B LED strip and adhere it to the inside surface of the enclosure in the position that will illuminate the button area most evenly. Reference installation photos are available in the repository under
docs/images/. Connect the three wires to the PCB:- DIN →
PB0data pad - +5 V →
+5 Vrail - GND →
GND
Thread the USB cable or install a panel-mount connector
Route the USB-C cable from the BlackPill out through the rear opening of the Bottom shell. If your build uses a panel-mount USB-C connector, secure it in the rear cutout and connect the short internal cable to the BlackPill. Ensure the cable has enough slack to not pull the BlackPill off its socket when the enclosure flexes during play.
Attach the walls (middle) section
Align the Walls (middle) section over the Bottom shell, engaging any snap or screw posts designed into the geometry. Bring the Front panel assembly down to meet the top edge of the Walls, aligning the PCB switch solder legs through their corresponding holes. Fasten all screws or press all snap clips — work from corner to corner rather than one side at a time to ensure even seating without warping the printed parts.
Press the keycaps onto the switches
Press the 5× Keycap (ABCD and Start) caps onto their respective Cherry MX stems — one keycap per main button. Then press the 2× Keycap (FX) caps onto the FX button stems. Each keycap should seat with a firm click and sit level with the front panel surface. If a keycap rocks or catches, remove it and lightly sand the inside bore before re-seating.
Press the knobs onto the encoder shafts
Press both Knob parts onto the protruding encoder shafts. The knobs should fit snugly with friction alone — do not glue them, as you may need to remove them for maintenance. Give each knob a full rotation to confirm it spins freely without scraping the front panel surface.
Plug in via USB and verify before final closure
Before applying any final fasteners that would require disassembly, plug the controller into your PC via USB. The operating system should detect it as a standard HID game controller (no driver installation required). Open your OS game controller panel and:
- Press each button and confirm the corresponding input is registered.
- Turn both encoder knobs and confirm axis movement is detected.
- Confirm the LED strip illuminates if the firmware’s LED feature is active.