Skip to main content

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.

The SDVX Controller lives inside a fully 3D-printed enclosure made up of eight distinct parts. The enclosure was modelled in KOMPAS-3D and covers everything from the structural base plate up through the top panel cutouts, side walls, keycaps, encoder knobs, and internal spacers. Every part is available as a ready-to-slice STL file, and the full parametric source (.a3d / .m3d) and neutral STEP exports are included so you can adapt the design in any CAD tool you prefer.

File Locations

The enclosure files are split across three directories in the repository:
DirectoryContents
hardware/enclosure/source_cad/Native KOMPAS-3D source files (.a3d, .m3d)
hardware/enclosure/export_step/STEP (.step) files for import into other CAD applications
hardware/stl_for_printing/STL files ready for slicing and printing
3D reference models for the major components that mount inside the enclosure — the BlackPill board, the LPD3806 encoder, and an Outemu MX switch — are stored in:
hardware/enclosure/component_models_3d/
These component models were used during design to verify clearances and fit; they are not intended for printing.
If you want to modify the enclosure — for example, to add a USB-C pass-through slot, resize the encoder cutouts, or change the overall height — import the STEP files from hardware/enclosure/export_step/ into Fusion 360, FreeCAD, SolidWorks, or any other STEP-capable editor. The STEP format preserves solid geometry and is far easier to manipulate than STL meshes.

Parts Reference

The enclosure consists of eight printed parts. The table below lists each part, its file name in hardware/stl_for_printing/, and how many copies to print.
PartSTL FilePrint QtyDescription
BottomSDVX Controller - Bottom.stl1Base plate of the controller; sits on the desk and closes the underside of the assembly
Front (top panel)SDVX Controller - Front.stl1Top-facing panel with precision cutouts for all seven button switches and both encoder shafts
Walls (middle)SDVX Controller - Walls (middle).stl1Side walls that bridge the front panel and the bottom plate, forming the body of the controller
Keycap (ABCD and Start)SDVX Controller - Keycap (ABCD and Start).stl5Keycap that fits over the MX switch stem for BT-A, BT-B, BT-C, BT-D, and START
Keycap (FX)SDVX Controller - Keycap (FX).stl2Smaller keycap profile for the FX-L and FX-R buttons
KnobSDVX Controller - Knob.stl2Encoder knob that presses onto the D-shaft of each LPD3806 — one for VOL-L, one for VOL-R
SpacerSDVX Controller - Spacer.stlAs neededInternal standoff / spacer; used to position the PCB or other internals at the correct height
Spacer 2SDVX Controller - Spacer 2.stlAs neededSecondary spacer variant with a different geometry for a specific internal mounting point

Main Buttons (×5)

Print five copies of the Keycap (ABCD and Start) — one each for BT-A, BT-B, BT-C, BT-D, and START. These share the same keycap profile.

FX Buttons (×2)

Print two copies of the Keycap (FX) — one for FX-L and one for FX-R. The FX keycap is slightly smaller than the main keycap to match the in-game button layout.

Encoder Knobs (×2)

Print two copies of the Knob — one per LPD3806 encoder. The knob is designed to press-fit onto the encoder’s D-shaped shaft.

Structural Shell (×1 each)

Print one each of Bottom, Front, and Walls (middle) to form the complete controller chassis.

Printing Recommendations

The following settings are a practical starting point for a standard FDM printer. Adjust based on your printer’s calibration and the filament brand you are using.
SettingRecommended Value
MaterialPLA or PETG
Layer height0.2 mm
Infill (structural — Bottom, Front, Walls)20–30%
Infill (keycaps and knobs)40%+
Perimeters / wall loops4+ for keycaps and knobs; 3 for other parts
SupportsCheck per-part; the Front panel cutouts may require minimal support depending on slicer orientation
Bed adhesionBrim recommended for the Front panel and Walls
PETG is a good choice if the controller will sit in a warm environment (e.g., next to a PC with poor airflow) because it has a higher heat-deflection temperature than PLA. For most indoor use, standard PLA prints perform well and are easier to tune.

Assembly Order

1

Print all parts

Slice and print all eight part files from hardware/stl_for_printing/. Check each part for layer adhesion and verify that the encoder shaft holes in the Knob and the switch stem receptacles in the Keycaps are clean and unobstructed.
2

Mount switches into the Front panel

Press each MX-compatible switch (Outemu Red or equivalent) into its cutout on the Front panel. The switches clip in with a standard 5-pin or 3-pin MX footprint depending on your switch choice.
3

Mount encoders into the Front panel

Thread the LPD3806 encoders through the encoder cutouts in the Front panel and secure with their included lock-nuts.
4

Attach the Walls

Align the Walls (middle) around the perimeter of the Front panel and fasten as designed. The walls form the side faces of the controller body.
5

Install the PCB and wiring

Place the assembled PCB inside the enclosure, using the Spacer and Spacer 2 parts to hold the board at the correct height. Run encoder and LED strip wiring to their respective connectors on the PCB.
6

Close with the Bottom plate

Fit the Bottom plate to close the enclosure. Fasten with M3 screws through the bottom into the walls or spacers.
7

Fit keycaps and knobs

Press each Keycap (ABCD and Start) and Keycap (FX) onto the corresponding switch stem, and press each Knob onto its encoder D-shaft.

Build docs developers (and LLMs) love