Skip to the content
PCBKitNew board
2 layers175 × 150 mmSdvx proto, the printed circuit board in 3D

Various peripheral hardware tests for the upcoming Sound Voltex Controller (Mini-size).

Size
175 × 150 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
15
Pads
69
Tracks, vias
153, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
11 Mar 2026
Updated
16 Mar 2026

Overview

Sdvx proto is an open-source printed circuit board by Norumai01, from the Norumai01/SDVX_Peripherals_Tests repository on GitHub. It is a 2-layer board of 175 × 150 mm with 11 parts on 15 nets, routed with 153 tracks and 0 vias.

Its parts include 9 switches and 2 connectors. It belongs with the audio and music boards of this library.

README

README.md

controller_subtests

Breadboard prototyping tests for a custom Sound Voltex (SDVX) controller built on the Raspberry Pi Pico 2 H (RP2350).

Each subfolder is a self-contained test with its own CMakeLists.txt and main.c.


Project Structure

text
controller_subtests/
├── CMakeLists.txt          ← top-level, registers all subtests
├── pico_sdk_import.cmake
├── serial_monitor.py       ← Python serial monitor for debugging
├── mx_switch_test/
│   ├── CMakeLists.txt
│   └── main.c              ← Cherry MX Brown button + onboard LED test
└── encoder_test/
    ├── CMakeLists.txt
    └── main.c              ← Bourns PEC11R rotary encoder test

Hardware

ComponentPart
MicrocontrollerRaspberry Pi Pico 2 H (RP2350, pre-soldered headers)
ButtonsCherry MX Brown switches (jumper wires soldered directly to pins)
EncodersBourns PEC11R-xxxxK (no detents, with push switch)

Subtest: mx_switch_test

Tests a single Cherry MX Brown switch on GPIO 0. Jumper wires are soldered directly to the two switch pins. Toggles the onboard LED on press/release and prints state over USB serial.

Wiring:

text
Switch Pin 1  → GPIO 0  (pin 1)
Switch Pin 2  → GND

Note: Uses the Pico's internal pull-up — no external resistor needed. Pin reads HIGH at rest and LOW when pressed.


Subtest: encoder_test

Tests a Bourns PEC11R rotary encoder — quadrature rotation via interrupt and push switch via polling.

Wiring:

text
ENC A    → GPIO 10  (pin 14)
ENC C    → GND
ENC B    → GPIO 11  (pin 15)
SW pin 1 → GPIO 12  (pin 16)
SW pin 2 → GND

How it works:

  • An interrupt fires on every rising/falling edge of channel A
  • Inside the ISR, A and B are compared — if they differ, direction is CW (+1), if same, direction is CCW (-1)
  • The push switch is polled in the main loop with debounce

Building

Requires the Raspberry Pi Pico SDK. Set PICO_SDK_PATH in your environment or let CLion handle it via the CMake Environment field.

bash
mkdir cmake-build-debug && cd cmake-build-debug
cmake ..
make

Each subtest outputs its own .uf2 into its own subfolder:

text
cmake-build-debug/
├── mx_switch_test/
│   └── mx_switch_test.uf2
└── encoder_test/
    └── encoder_test.uf2

To flash:

  1. Hold BOOTSEL on the Pico while plugging in USB
  2. It mounts as a drive called RP2350
  3. Drag and drop the .uf2 onto the RP2350 drive

Serial Monitor

Use the included serial_monitor.py to watch output over USB serial.

Requirements:

bash
pip install pyserial

Run:

bash
python serial_monitor.py

Defaults to COM3 at 115200 baud. Edit PORT at the top of the script if your Pico is on a different port (check Device Manager → Ports (COM & LPT)).

CLion Serial Monitor (alternative)

CLion has a built-in serial monitor under Tools → Serial Monitor.

Settings that must be enabled for it to work with the Pico:

  • Enable HW Flow Control — on
  • Local Echo — on
  • DTR — enabled (this is what actually triggers the Pico to send output)

Without DTR enabled, the monitor connects but receives nothing.


Notes

  • Both encoder A and B pins use the Pico's internal pull-ups — no external resistors needed for basic testing
  • For final PCB design, add a hardware filter (10KΩ + 0.01µF on each channel) per the PEC11R datasheet recommendation to reduce contact bounce at higher RPM
  • The encoder's position counter is unbounded (volatile int) — for HID use, report the delta each frame rather than an absolute value

Parts

11
QtyValueFootprintReferences
7SW_PushMX_Solderable:MX-Solderable-1USW1, SW2, SW3, SW4, SW5, SW6, SW9
2Conn_01x10_PinConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ1, J2
2RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW7, SW8

Questions

How big is the Sdvx proto PCB?

It measures 175 × 150 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Sdvx proto use?

11 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Sdvx proto KiCad files?

From the Norumai01/SDVX_Peripherals_Tests repository on GitHub, at the commit this page was made from: the board is pcb_prototype/PCB/sdvx_proto.kicad_pcb and its schematic pcb_prototype/PCB/sdvx_proto.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Sdvx proto design in my own project?

Its repository states no licence, so its author keeps all rights: ask Norumai01 before reusing the design.

Similar boards

  • 2 layers60 × 30 mmController, the printed circuit board in 3D

    Controller

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    11 parts3kApache-2.0
  • 2 layers103 × 30.5 mmTS Front Endcap, the printed circuit board in 3D

    TS Front Endcap

    EEVengers/ThunderScope

    ThunderScope GitHub Repo

    11 parts1.3kMIT
  • 2 layers26 × 30 mmExpansion Card, the printed circuit board in 3D

    Expansion Card

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    11 parts1.1kCC-BY-4.0
  • 2 layers53.9 × 23.2 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    11 parts1kGPL-3.0
  • 2 layers10 × 20 mm2 connector Sensor Board, the printed circuit board in 3D

    2 connector Sensor Board

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    11 parts915
  • 2 layersFet module, the printed circuit board in 3D

    Fet module

    ByteWelder/Decktility

    A handheld PC

    11 parts855CC-BY-SA-4.0
  • 2 layers47 × 33 mmSevensegment led display module, the printed circuit board in 3D

    Sevensegment led display module

    tardate/LittleArduinoProjects

    a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

    11 parts803MIT
  • 2 layers42.5 × 36.8 mmDevboard, the printed circuit board in 3D

    Devboard

    basilfx/TRADFRI-Hacking

    Hacking IKEA TRÅDFRI products, such as light bulbs, window blinds and other accessories.

    11 parts743CC-BY-4.0