The SDVX Controller uses a custom single-layer PCB as the central wiring hub between the STM32F401 BlackPill, the seven MX-compatible buttons, two LPD3806 rotary encoders, and the optional WS2812B LED strip. Rather than running a tangle of hand-soldered point-to-point wires, the PCB keeps every connection clean and documented, while still being simple enough for home fabrication. The entire design lives in EasyEDA, so you can open, modify, or export it without any proprietary CAD licence.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.
Design Overview
The PCB was designed intentionally as a single-layer board — all signal traces sit on one copper layer with no inner planes or buried vias. This keeps manufacturing cost low at commercial fabs and makes the board feasible to produce at home with photo-resist or toner-transfer methods. The PCB connects the following peripherals to the BlackPill:- 7 tactile/mechanical buttons (BT-A, BT-B, BT-C, BT-D, START, FX-L, FX-R) — one GPIO pin and one GND pad per switch footprint
- 2 × LPD3806 incremental rotary encoders (VOL-L, VOL-R) — four signal pins (two per encoder) routed to timer-capable GPIO pins
- WS2812B LED strip connector — data line, 5 V power, and GND
- USB power and data — carried through the BlackPill’s onboard USB-C port; no extra USB circuitry on the PCB
Source Files
The EasyEDA project (schematic + board layout) is stored in the repository at:Fabrication Options
Option A — Order from an online PCB fab
Pre-exported Gerber files are in:| File | Layer |
|---|---|
Gerber_TopLayer.GTL | Top copper (signal traces) |
Gerber_BottomLayer.GBL | Bottom copper (unused for single-layer, included for fab compatibility) |
Gerber_TopSilkscreenLayer.GTO | Top silkscreen (component labels) |
Gerber_BottomSilkscreenLayer.GBO | Bottom silkscreen |
Gerber_TopSolderMaskLayer.GTS | Top solder mask (pad openings) |
Gerber_BottomSolderMaskLayer.GBS | Bottom solder mask |
Gerber_BottomPasteMaskLayer.GBP | Bottom paste mask (SMD stencil reference) |
Gerber_BoardOutlineLayer.GKO | Board outline / edge cuts |
Drill_PTH_Through.DRL | Plated through-hole drill file |
Drill_PTH_Through_Via.DRL | Via drill file |
Drill_NPTH_Through.DRL | Non-plated through-hole drill file |
hardware/pcb/gerbers/ and upload them directly to your chosen fab.
Option B — Home etch
Use the EasyEDA project athardware/pcb/easyeda_project/ to export a 1:1 PDF or PNG of the top copper layer (GTL). Print it onto transparency film (laser printer) or use the UV exposure method. Standard PCB ferric-chloride or ammonium-persulfate etchants work fine with the single-layer design.
Bill of Materials (BOM)
The BOM was exported from EasyEDA and is located at:| # | Component | Designators | Qty |
|---|---|---|---|
| 1 | Outemu Switch (MX-compatible) | S1, S2, S3, S4, S5, S6, S7 | 7 |
| 2 | STM32F401 / BlackPill v3.0 | U1 | 1 |
| 3 | LPD3806 Rotary Encoder | U9, U10 | 2 |
- 1 × WS2812B LED strip, 12 LEDs (optional, for lighting effects)
- 1 × 150 nF ceramic capacitor (optional, for the BlackPill DFU modification)
- Appropriate lengths of hookup wire for off-board connections (encoders, LED strip)
PCB Assembly
Inspect the bare board
Check that all pad openings are clean and that no traces are bridged. Confirm board orientation by matching the silkscreen labels to the schematic.
Solder the button switch footprints
Place and solder all seven MX-compatible switch footprints (S1–S7). Each footprint has two pads — one goes to a GPIO signal line, the other to GND.
Solder the BlackPill headers
Solder two rows of pin headers to the BlackPill module, then press the module onto the corresponding PCB footprint (U1). Alternatively, solder the BlackPill directly if you do not plan to remove it.
Solder encoder headers
Solder header pins or JST connectors for the two LPD3806 encoder positions (U9, U10). The encoders will attach via wire leads from their mounting positions on the front panel.
Attach the LED strip connector
Solder a 3-pin connector (or solder directly) for the WS2812B LED strip — data (PB0), 5 V, and GND. Observe polarity.