Skip to the content
PCBKitNew board
2 layers100 × 95.5 mmValkDeck, the printed circuit board in 3D

Hey there, I'm Subham, a 14 year old kid (currently) from Chennai, India

Size
100 × 95.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
43
Nets
78
Pads
252
Tracks, vias
504, 5
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
10 May 2026
Updated
11 May 2026

Overview

ValkDeck is an open-source printed circuit board by SubhamSaiSamal, from the SubhamSaiSamal/ValkDeck repository on GitHub. It is a 2-layer board of 100 × 95.5 mm with 43 parts on 78 nets, routed with 504 tracks and 5 vias.

It is built around the WS2812B. Its parts include 18 diodes, 9 capacitors, 1 IC, 1 connector and 1 switch. It belongs with the RP2040 boards of this library.

Main components

1

README

readme.md

VALKDECK

Hey there, I'm Subham, a 14 year old kid (currently) from Chennai, India

I needed a better way to manage my flight sim telemetry, trigered automation workflows, and also blindly control my volume while locked into a game. I could have bought a generic macropad off Amazon for $20.

Instead, I spent 40 hours learning KiCad, routing my own custom PCB, designing an enclosure in onshape, and writing a CircuitPython program from scratch.

Welcome to ValkDeck.

It's a 9-key, fully hotswappable cyberdeck module powered by a Raspberry Pi Pico. It features per=key WS2812B underglow, a rotary encoder for media control, and a 0.91" I2C OLED display that feeds back live system status so I can actually know what my macros are doing.

ValkDeckFull

FEATURE PIVOT

If you look at the top right of the board, you'll see a machined metal blanking plug.

Originally, that 12mm hole was meant for a massive, avionics-grade MTS-101 toggle switch (the "Nuke Switch") to act as a hardware reset. I measured the top plate perfectly. What i forgot to measure was the internal Z-axis clearance. The massive rectangular block of the toggle switch slammed right into the PCB.

Physical reality remains undefeated. Instead of spending the next 6 hours rearranging the whole top-case, I pivoted. I covered it with a sleek metal plug for a premium industrial look. It's not a bug; it's an aesthetic hardware change.

OnshapeCase

THE PCB

PCB PCB_FRONT PCB_BACK

I have been familiar with breadboards and scary jumper wire connections for quite a while. Instead of a terrifying 3D web of hand-soldered jumper wires, ValkDeck runs on a custom-routed, two layer FR-4 board.

Bottom-Mount SMD : The kailh hotswap sockets and 1N4148 diodes are all surface mounted on the upperside of the board. Ghost-Free Matrix : The diodes are correctly routed (Row to Column) to ensure complete N-key rollover without ghosting. Through-Hole Anchors : The Raspberry Pi Pico, Rotary Encoder, and OLED screen are all through-hole soldered for maximum regidity 💪.

HARDWARE

ValkDeck runs on a custom FR-4 PCB with a proper diode-protected switch matrix.

  • The Brain : Raspberry Pi Pico (RP2040)
  • The Matrix : 9x Kailh Hotswap Sockets (with 1N914 diodes pointing Row -> Col)
  • The Display : 0.91" SSD1306 OLED (128x32)
  • The Input : 9x Mechanical Switches 1x M274 Rotary Encoder (with push-to-mute)
  • The RGB : 9x WS2812B NeoPixels
  • The Alert : 1x Active Buzzer for audio feedback (and 8 bit pokemon and mario sfx)

PINOUT ARCHITECTURE

If you're trying to understand the exact tracing or trying to make your very own ValkDeck, here is the routing:

ComponentPico Pin (GPIO)Note
Matrix RowsGP09, GP10, GP11Row 0,1,2
Matrix ColsGP00, GP01, GP02Col 0,1,2
EncoderGP04(A), GP03(B), GND(C), GND(S2), GP05(S1)Volume sweeping and mute
OLEDGP16(SCL), GP17(SDA)Standard I2C
NeoPixelsGP15Single data line for all 9 LEDs
BuzzerGP19PWM Audio (retro pokemon)
Image 9-WS2812B 3x3_Matrix

RUNNING THE FIRMWARE

ValkBlox is run using Adafruit's CircuitPython. It uses the keypad library for the background matrix scanning, and displayio to dynamically update the OLED based on what macro you just fired

To Deploy :

  • Flash your Pico with the latest CircuitPython.uf2

  • Grab the Adafruit Library Bundle and drop this stuff into your CITCUITPY/lip folder

    • adafruit_hid
    • adafruit_displayio_ssd1306.mpy
    • adafruit_display_text
    • neopixel.mpy
  • Drop firmware.py from this repo to the root drive

BOM (Bill of materials)

NamePurposeQuantityTotal Cost (USD)LinkDistributor
Raspberry Pi PICOMicrocontroller (Controls everything lol)1$4.05View ProductSilverzone
0.91 Inch I2C OLEDOLED Display to display backend info1$1.94View ProductRoboticsDNA
Cherry MX RGB SwitchBrown RBG Switch (Pack of 10)1$3.7View ProductMeckeys
Kalih SocketHot-Swap socket for cherry mx switches (Pack of 10)1$0.84View ProductMeckeys
Deep Purple KeycapsPurple Keycaps (Pack of 5)2$2.00View ProductMeckeys
Rotary EncoderM274 Rotary Encoder Switch1$0.46View ProductRobu
rotary encoder knob3D printed1--------------
100nF capacitor100nF ceramic capacitor (Pack of 25)1$0.15View ProductroboticsDNA
1N4148 DiodeIN4148 DIODE (Pack of 10)2$0.50View ProductRoboticsDNA
WS2812B RGBWS2812B 5050RGB (Pack of 10)1$2.43View ProductRobu
AC1255 BuzzerBuzzer1$0.074View ProductRobu
2.54mm male headerMale header for PICO2$0.55View ProductRobu
Custom PCBCustom PCB printed from JLCPCB (includes shipping)5$9.20View ProductSilverzone
Total-----0$25.82----------
Image

(ps. this repo will be updated to v1.1 after i build this board irl, stay tuned! :3)

Parts

43
QtyValueFootprintReferences
91N914Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
9C_SmallCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC2, C3, C4, C5, C6, C7, C8, C9, C10
9WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD10, D11, D12, D13, D14, D15, D16, D17, D18
10,0PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua8
10,1PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua9
10,2PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua10
11,0PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua6
11,1PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua2
11,2PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua4
12,0PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua7
12,1PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua3
12,2PCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1ua5
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1ER_OLEDM0.91_1x-I2CDisplay:ER_OLEDM0.91_1x-I2CU1
1LOGOLogos and Stickers:valkdeckiei
1LOGOLogos and Stickers:bannerfinalg
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1

Questions

How big is the ValkDeck PCB?

It measures 100 × 95.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ValkDeck use?

43 parts, built around the WS2812B. 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 ValkDeck KiCad files?

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

Can I use the ValkDeck design in my own project?

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

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers26 × 30 mmMicrocontroller, the printed circuit board in 3D

    Microcontroller

    FrameworkComputer/ExpansionCards

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

    34 parts1.1kCC-BY-4.0
  • 4 layers82.6 × 82.5 mmJumperless2, the printed circuit board in 3D

    Jumperless2

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    208 parts914
  • 2 layers95.3 × 161.9 mmDfh badge, the printed circuit board in 3D

    Dfh badge

    tanaes/whopping_Voron_mods

    135 parts787GPL-3.0
  • 2 layers42.8 × 28.8 mmMM Skirt, the printed circuit board in 3D

    MM Skirt

    PrintersForAnts/Micron

    If you want to purchase full kits there are 3 available (Kits are slowly updating to R1 hardware just make sure to double check the included hardware in your kit and if you have any questions reach out in the discord)

    11 parts741GPL-3.0
  • 2 layers149.6 × 127.1 mmErgodash, the printed circuit board in 3D

    Ergodash

    omkbd/ErgoDash

    keyboard

    187 parts732MIT
  • 2 layers285.5 × 95 mmReviung46 ver1 1, the printed circuit board in 3D

    Reviung46 ver1 1

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    119 parts517MIT
  • 2 layers177.7 × 144.5 mmCOMM PANEL, the printed circuit board in 3D

    COMM PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    275 parts431