

Programmable Input Handler — a DIY, fully customizable macro keypad and Stream Deck alternative, designed as a low-cost, open-source answer to expensive commercial input devices.
- Size
- 100.1 × 81.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 73
- Pads
- 201
- Tracks, vias
- 228, 23
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 13 Jul 2026
- Updated
- 16 Jul 2026
Overview
PID is an open-source printed circuit board by ChiragCS-08, from the ChiragCS-08/diy_stream_deck repository on GitHub. It is a 2-layer board of 100.1 × 81.3 mm with 20 parts on 73 nets, routed with 228 tracks and 23 vias.
It is built around the RP2040. Its parts include 6 switches, 3 capacitors, 3 resistors, 3 ICs and 1 connector. It belongs with the RP2040 boards of this library.
Main components
1README
README.mddiy_stream_deck
Open-source, low-cost Stream Deck alternative built on the RP2040 (MicroPython). Features a TCA9548A I²C multiplexer driving 6 OLED displays for dynamic key icons, USB HID macro execution, and a fully custom KiCad PCB with zero-violation ERC. An affordable, hackable input handler for streamers, devs, and productivity workflows.
Programmable Input Handler — a DIY, fully customizable macro keypad and Stream Deck alternative, designed as a low-cost, open-source answer to expensive commercial input devices. Built around an RP2040 microcontroller running MicroPython, the device uses a TCA9548A I²C multiplexer to drive 6 independent OLED displays, giving each key a dynamic, reprogrammable icon. It acts as a USB HID device, sending keyboard shortcuts and macros to trigger actions in tools like OBS Studio, VS Code, and Spotify.
=======
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | SW_MMI_Q5-100 | Button_Switch_THT:SW_PUSH_LCD_E3_SAxxxx_SocketPins | SW1, SW2, SW3, SW4, SW5, SW6 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3mm_Pad_TopBottom | H1, H2, H3, H4 |
| 2 | 10u | Capacitor_SMD:C_0201_0603Metric_Pad0.64x0.40mm_HandSolder | C2, C3 |
| 2 | 5k1 | Resistor_SMD:R_01005_0402Metric | R2, R3 |
| 1 | 10u | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C1 |
| 1 | 220 R | Resistor_SMD:R_01005_0402Metric | R1 |
| 1 | LT1962-3.3 | Package_SO:MSOP-8_3x3mm_P0.65mm | U2 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U3 |
| 1 | TCA9548APWR | Package_SO:TSSOP-24_4.4x7.8mm_P0.65mm | U1 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_GCT_USB4085 | J1 |
Questions
How big is the PID PCB?
It measures 100.1 × 81.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the PID use?
20 parts, built around the RP2040. 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 PID KiCad files?
From the ChiragCS-08/diy_stream_deck repository on GitHub, at the commit this page was made from: the board is hardware/PID.kicad_pcb and its schematic hardware/PID.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the PID design in my own project?
Its repository states no licence, so its author keeps all rights: ask ChiragCS-08 before reusing the design.
Similar boards
- 2 layers290.1 × 130 mm

- 4 layers50 × 30 mm

Picodvi
Fr4nkFletcher/ESP32-Marauder-Cheap-Yellow-Display
ESP32Marauder Cheap Yellow Display
55 parts1.8kMIT - 4 layers299 × 127 mm

- 2 layers42 × 67 mm

- 2 layers181 × 97 mm

OpenDeck r3.1.2
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
262 parts960Apache-2.0 - 4 layers82.6 × 82.5 mm

- 4 layers102.9 × 96.7 mm

PicoGUS chipdown
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
99 parts805 - 2 layers53.2 × 24.8 mm
