

Cybdokeebs keyboard
ecosystem of hotswappable keyboard modules
- Size
- 294 × 114 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 176
- Nets
- 130
- Pads
- 792
- Tracks, vias
- 1,254, 385
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 23 Apr 2026
- Updated
- 27 Jun 2026
Overview
Cybdokeebs keyboard is an open-source printed circuit board by Cybdo, from the Cybdo/CybdoKeebs repository on GitHub. It is a 2-layer board of 294 × 114 mm with 176 parts on 130 nets, routed with 1,254 tracks and 385 vias.
It is built around the BM03B-SRSS-TB(LF)(SN) and 1N4148W. Its parts include 63 switches, 61 diodes, 16 connectors, 15 capacitors and 8 resistors. It belongs with the keyboards and input boards and the RP2350 boards of this library.
Main components
2BM03B-SRSS-TB(LF)(SN)
SMD,P=1mm-25℃~+85℃ 1 1A 1mm 1x3P 3 3.6mm 3P 4.25mm 50V 5mm Auxiliary Solder Pin Copper alloy PA SH Surface Mount,Vertical Tin UL94V-0 White SMD,P=1mm Wire To Board Connector ROHSJSTWire To Board Connector1N4148W
SOD-123150mA 1A 1V@50mA 1uA@75V 400mW 4ns 75V Independent SOD-123 Switching Diodes ROHSSTMicroelectronicsSwitching Diodes
README
README.mdCybdoKeebs!
A hotswappable ecosystem of i2c powered keyboard modules!
I made this project because I wanted to make something cooler than a macropad, and being able to just swap stuff around seemed really sick.
Inspired by Ocreeb!
File structure
everything for each module is found under modules/[module name], including CAD files, EDA files and firmware.
Features
- plug and play
- hotswappable modules
- exposed I2C buses
- fully open source!
- supports any MX-footprint keyswitches!
- inbuilt USB hub in the controller
Firmware
Firmware runs on circuitpython, and the firmware for each module is under modules/[module name]/firmware. Flash it using the SWD ports on each module, or via USB on the controller hub. You may need a SWD to USB converter, which can be made using a Raspberry Pi Pico.
Custom modules
Each module is made as a composite of "sub units", each being 6cm tall and 5cm wide, with male pogo pins on the top and left sides, and female recievers on the bottom and right sides. These can be found here: https://www.aliexpress.com/item/1005005284441979.html
Assembly
Everything is designed to be tray mounted, as to not obstruct the pogo pin assemblies! This means, the plate snaps into and are held up by keyswitches.
To put the keyboard together, put 4 keyswitches in each of the corners of the plate, then put the keyswitches through their sockets. After checking that everything is aligned, put in the rest of the switches!
BOM
found at bom.csv, assuming 1 controller hub, one keyboard and one macropad
Schematics
Hub
Macropad
Keyboard
PCB
Hub
Macropad
Keyboard
Acknowledgements
Parts
176| Qty | Value | Footprint | References |
|---|---|---|---|
| 61 | 1N4148W | Diode_SMD:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +45 |
| 46 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.00u | SW10, SW11, SW12, SW13, SW14, SW15, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25, SW26, SW27 +30 |
| 16 | Conn_01x05_Pin | imports:pogo 5pin 2.54 | J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12, J13, J14, J15, J16 |
| 9 | 100nF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C1, C3, C4, C5, C6, C7, C8, C9, C10 |
| 7 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.25u | SW56, SW57, SW58, SW60, SW61, SW62, SW63 |
| 6 | 10kR | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R1, R2, R4, R6, R7, R8 |
| 4 | 4.7uF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C2, C13, C14, C15 |
| 3 | , , | ||
| 2 | 0.1uF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C16, C17 |
| 2 | 1kR | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R9, R10 |
| 2 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.25u | SW43, SW44 |
| 2 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.50u | SW17, SW30 |
| 1 | 3.3uF | imports:INDC1608X95N | L1 |
| 1 | BM03B-SRSS-TB | easyeda2kicad:CONN-SMD-3P-P1.00_BM03B-SRSS-TB-LF-SN | U3 |
| 1 | BOOTSEL | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | Backspace Stabiliser | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | H1 |
| 1 | Enter Stabiliser | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | H2 |
| 1 | LShift Stabiliser | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | H4 |
| 1 | RESET | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW2 |
| 1 | RP2350_60QFN | RP2350_60QFN_minimal:RP2350-QFN-60-1EP_7x7_P0.4mm_EP3.4x3.4mm_ThermalVias | U2 |
| 1 | RShift Stabiliser | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_2.00u | H3 |
| 1 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_1.75u | SW31 |
| 1 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_6.25u | SW59 |
| 1 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.75u | SW55 |
| 1 | SW_Push | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_2.00u | SW16 |
| 1 | Spacebar Stabiliser | PCM_Mounting_Keyboard_Stabilizer:Stabilizer_Cherry_MX_6.25u | H5 |
| 1 | TCA4307DGKR | easyeda2kicad:VSSOP-8_L3.0-W3.0-P0.65-LS4.9-BL | U1 |
The 175 most common of 176 parts.
More from Cybdo/CybdoKeebs
3- 2 layers94 × 114 mm

- 2 layers290 × 24 mm

- 2 layers

Similar boards
- 4 layers100 × 100 mm

- 4 layers101.2 × 28 mm

Controller
mikesmitty/power-manifold
Six-port USB-C power supply: up to 100 W per port from one 24 V supply, with per-port control, priority-based power sharing and Home Assistant support. 100% local, no cloud required.
103 parts3MIT - 4 layers49.1 × 54.3 mm

Rp2350-hdmi hexpansion
Corteil/rp2350-hdmi-hexpansion
RP2350 HDMI hexpansion for the EMF Tildagon badge -- mirrors the badge's display to a monitor over HSTX/DVI
57 parts2 - 4 layers273 × 178 mm

Pico thing
markrvmurray/pico-thing
An 8-bit MC6809E / HD6309E single-board computer with a pair of Raspberry Pi Pico 2 (RP2350 / Pimoroni PGA2350) modules acting as intelligent bus peripherals, a 1–2 MB banked-RAM DAT/MMU, a 40-pin PATA hard-disk…
206 parts1BSD-2-Clause - 2 layers50.1 × 27.8 mm

- 4 layers41 × 41 mm

Flight Controller
benwys/SparrowHawk
Open source flight controller for FPV drones. Includes two complete hardware designs (kicad) with production files. Will include custom firmware (bare-metal cpp). In progress :-)
103 partsMIT - 4 layers140.5 × 58.6 mm

- 6 layers63.5 × 38.5 mm

Questions
How big is the Cybdokeebs keyboard PCB?
It measures 294 × 114 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Cybdokeebs keyboard use?
176 parts, built around the BM03B-SRSS-TB(LF)(SN) and 1N4148W. 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 Cybdokeebs keyboard KiCad files?
From the Cybdo/CybdoKeebs repository on GitHub, at the commit this page was made from: the board is modules/keyboard/PCB/cybdokeebs_keyboard.kicad_pcb and its schematic modules/controller_hub/pcb/CybdoKeebs_hub.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Cybdokeebs keyboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask Cybdo before reusing the design.