Skip to the content
PCBKitNew board
2 layers360 × 124.3 mmKeeb pcb, the printed circuit board in 3D

Its a custom keyboard! My current keyboard is pretty bad, and I thought why not make one, so i designed it.

Size
360 × 124.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
357
Nets
207
Pads
1,190
Tracks, vias
3,173, 418
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Aug 2026
Updated
3 Nov 2026

Overview

Keeb pcb is an open-source printed circuit board by Catsarepro21, from the Catsarepro21/keyboard repository on GitHub. It is a 2-layer board of 360 × 124.3 mm with 357 parts on 207 nets, routed with 3,173 tracks and 418 vias.

It is built around the SN74LVC1T45DBVRE4, TPS2553DBVR-1 and SK6812MINI-E, with the BSS138LT1G and SS14 among its other parts. Its parts include 88 capacitors, 86 switches, 82 diodes, 12 resistors and 5 ICs. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

5

README

README.md

KEEB

Its a custom keyboard! My current keyboard is pretty bad, and I thought why not make one, so i designed it.

KEEB is an 80-key keyboard built around a Pico W, with USB and Bluetooth, a rechargeable battery, a volume encoder, and an OLED. It has a custom PCB and a 3D printed case with the switch plate built into the top. RGB only works when plugged into USB, which I think is fine.

Pictures

Renders (Blender + Onshape):

image image image image

The case and integrated switch plate:

Keyboard case with integrated switch plate

The full PCB layout:

Full keyboard PCB, front copper and silkscreen

A closer look at the routing around the Pico W and controls:

PCB routing around the Pico W and controls

The OLED and encoder area:

OLED opening and encoder area in the case

The schematic (open the image to zoom in):

KEEB schematic

Project files

If Onshape shows 403 when opened from GitHub for some reason, copy and paste this address into your browser:

text
https://cad.onshape.com/documents/a273834a75c8cf83eaf3eccf/w/175ac2f63e3c24ffd6632dd1/e/d788e341cf0c23216b358283

Wiring

The switches, diodes, encoder, and RGB are connected through the PCB. The OLED uses its included cable, with the board-side plug trimmed off and the four wires soldered directly to J1. Match the signal labels, since wire colors and connector order can vary.

text
PCB J1                         OLED
1  GND ----------------------- GND
2  +3V3 ---------------------- VCC
3  OLED_SCL (Pico GP21) ------- SCL / CLK
4  OLED_SDA (Pico GP22) ------- SDA / DIN

Protected 500 mAh LiPo -------- JST_1 battery connector
                               Check + and - before plugging it in.

The OLED is the Waveshare 0.91 inch SSD1306 module, using I2C at address 0x3c. Use the PCB pad numbers above, not the order the wires happen to come in.

How to assemble

  1. Order the PCB using the Gerbers, and get the parts in the BOM below. The board is 359.95 x 124.25 mm, 2 layers, and 1.6 mm thick.
  2. Import the case STEP into your slicer/CAD tool and export the three separate parts for printing: the bottom, top with integrated switch plate, and battery cover. Check the switch and stabilizer fit before committing to the full assembly.
  3. Install the M3 heat-set inserts in the printed mounting holes. Let them cool before fitting the screws.
  4. With USB and the battery disconnected, solder the small PCB components first: resistors, capacitors, diodes, power circuitry, and RGB LEDs. Follow the component references and orientations in KiCad, especially diode polarity, LED orientation, and IC pin 1.
  5. Solder the battery connector, power switch, encoder, and Pico W mounting pins. Fit the Pico W in the orientation shown on the PCB, with its USB port lined up with the case opening.
  6. Fit the PCB screw-in stabilizers before installing the switches. Clip the switches into the top's integrated plate, line their pins up with the PCB, and solder them. Check for bent pins as you go.
  7. Wire the OLED as shown above and position it behind the case opening. Keep the cable clear of the switches and screw holes.
  8. Check the solder joints for bridges and check for a short between power and ground. Leave the battery disconnected for the first USB test, then flash the firmware using the steps below.
  9. Test every key, the encoder, and the OLED before closing the case. The current firmware sets the LEDs to dim blue when USB is configured.
  10. Disconnect USB, check the battery connector polarity, and connect the protected LiPo. Secure and insulate it with the polyimide tape, keeping it clear of sharp pins and screws. Test battery power and Bluetooth before closing it up.
  11. Fit the assembly into the bottom, route the OLED wires so they aren't pinched, and fasten the case and battery cover with the M3 screws. Add the keycaps, encoder knob, and four feet.

How to flash

Use the included firmware for the original Pico W (RP2040).

  1. Download KEEB.uf2 using GitHub's download button, or use the file from a downloaded copy of this repo.
  2. Disconnect the battery and unplug USB.
  3. Hold the Pico W's BOOTSEL button while connecting it to your computer with a USB data cable, then release the button.
  4. A drive called RPI-RP2 should show up. Copy KEEB.uf2 onto it.
  5. The Pico should restart and the drive should disappear. Check that the keyboard is detected, then try the keys in a text editor.

The firmware uses RMK, with the keymap in keyboard.toml. The encoder is mapped to volume up/down, and its push switch is mapped to mute. Vial support is enabled for changing mappings over USB.

For Bluetooth, disconnect USB, connect the battery, turn on the power switch, and look for KEEB Wireless in your computer's Bluetooth pairing menu.

The OLED code displays KEEB and USB or BAT. BAT means battery mode, not a battery percentage. RGB and charging are enabled by the current firmware after the USB connection is configured.

What I learned

Helped a lot with large PCB design, wiring carefully, and just overall laying things out well. Adding Bluetooth also meant adding a battery and charger, rerouting around the antenna area, and changing the case to fit everything.

BOM

Original listed parts and PCB total: $106.13, with printing still to be priced. Check current prices and shipping before ordering.

PartSpecificationNeededBuyLine costLink
Wireless controllerRaspberry Pi SC0918 Pico W11$6.00Buy
MX key switchesGateron KS-3Y10B050NW-X18080$16.00Buy
Matrix diodesXCH 1N4148 / C743762081100$0.91Buy
RGB LEDsOPSCO SK6812MINI-E / C51492017985$5.53Buy
Rotary encoder with pushAlps EC11E18244AU11$2.22Buy
Battery chargerMCP73831T-2ACI/OT11$0.78Buy
Battery isolation diodeVishay SS14-E3/61T13$0.35Buy
Power slide switchWurth 450301014042, 300 mA / 24 V DC11$2.15Buy
Battery connectorJST B2B-PH-K-S(LF)(SN)120$0.71Buy
Charge-current resistorYageo RC0805FR-0710KL (10k, 0805)1100$0.58Buy
Charger capacitorsTDK C2012X5R1V106MT000E / C415295 (10uF, 0805)22$0.52Buy
RGB data translatorTI SN74LVC1T45DBVR15$0.42Buy
RGB current limiterTI TPS2553DBVR11$0.54Buy
Control/status expanderTI PCA9536DR11$1.56Buy
Charger load switchTI TPS22918DBVR11$0.59Buy
USB detection MOSFETonsemi BSS138LT1G110$0.44Buy
Local bypass capacitorsSamsung CL10B104KB8NNNC (100nF, 0603)82100$0.82Buy
USB switch input capacitorsSamsung CL21B105KAFNNNE (1uF, 0805)210$0.41Buy
RGB bulk capacitorSamsung CL31A226KAHNNNE (22uF, 1206)11$0.48Buy
Charger rise-time capacitorMurata GRM1885C1H103JA01D (10nF, 0603)11$0.14Buy
330 ohm LED data seriesYageo RC0603FR-07330RL (330, 0603)110$0.25Buy
100 kohm RGB pull-downsYageo RC0603FR-07100KL (100k, 0603)210$0.25Buy
2.2 kohm enables and VBUS bleedYageo RC0603FR-072K2L (2.2k, 0603)3100$0.18Buy
4.7 kohm I2C pull-ups to 3.3 VYageo RC0603FR-074K7L (4.7k, 0603)210$0.25Buy
10 kohm status pull-upsYageo RC0603FR-0710KL (10k, 0603)2100$0.34Buy
160 kohm RGB current limitYageo RC0603FR-07160KL (160k, 0603)1100$0.22Buy
OLED board-side connectionIncluded cable: trim plug and direct-solder four wires by signal; no header11$0.00Buy
Stabilizer kitFynmi black PCB screw-in kit, 4 x 2u + 1 x 6.25u51$4.09Buy
Protected LiPo batteryAdafruit 1578, 500 mAh11$7.95Buy
OLED moduleWaveshare 14657, SSD1306 128 x 3211$6.99Buy
Encoder knobAdafruit 509311$0.75Buy
USB data cableCvilux DH-20M5005511$1.58Buy
Keycap set129-key white pudding PBT, OEM profile, MX stems; required key sizes covered801$10.22Buy
Case insertsXHHD SZTB1150 / C51939019, M3 x 4.5 x 5 mm1020$0.47Buy
Case screwsM3 50pcs / 8mm ISO7380 button-head1050$1.75Buy
Adhesive feetAdafruit 550, pack of four approx 8 × 4 mm bumpers41$0.95Buy
Case printPrinted bottom, top with integrated MX switch plate, removable battery cover31Printing Legion?Buy
Controller mounting pinsBOOMELE 2.54-1*40P / C233715$0.80Buy
Battery retention/insulationJSZ-007 polyimide tape, 30 mm x 33 m x 0.05 mm11$2.34Buy
PCB359.95 x 124.25 mm; 2 layers; 1.6 mm FR4; green; HASL; no optional paid production-file confirmation15$25.60Buy
AliExpress shippingWhite keycaps and Fynmi stabilizers together; cart showed free shipping on 13 October 202611$0.00Buy

Parts

357
QtyValueFootprintReferences
82100nFCapacitor_SMD:C_0603_1608MetricC101, C102, C103, C104, C105, C106, C107, C108, C109, C110, C111, C112, C113, C114, C115, C116 +66
811N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24 +65
79SK6812MINI-ELED_SMD:LED_SK6812MINI-E_3.2x2.8mm_P1.5mm_ReverseMountRGB1, RGB2, RGB10, RGB11, RGB12, RGB13, RGB14, RGB15, RGB16, RGB17, RGB18, RGB19, RGB20, RGB21, RGB22, RGB23 +63
77SW_PushKeyboardVerified:SW_MX_1uSW2, SW10, SW11, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25 +61
4MX_stabPCM_marbastlib-mx:STAB_MX_2uS1, S3, S4, S7
32.2kResistor_SMD:R_0603_1608MetricR5, R6, R10
2100kResistor_SMD:R_0603_1608MetricR3, R4
210kResistor_SMD:R_0603_1608MetricR9, R11
210uFCapacitor_SMD:C_0805_2012MetricC1, C2
21uFCapacitor_SMD:C_0805_2012MetricC6, C10
24.7kResistor_SMD:R_0603_1608MetricR7, R8
110kResistor_SMD:R_0805_2012MetricR1
110nFCapacitor_SMD:C_0603_1608MetricC9
1160kResistor_SMD:R_0603_1608MetricR12
122uFCapacitor_SMD:C_1206_3216MetricC7
1330Resistor_SMD:R_0603_1608MetricR2
1BSS138LT1GPackage_TO_SOT_SMD:SOT-23Q2
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1EC11Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC1
1J_BATConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJST_1
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U1
1MX_stab_6.25uPCM_marbastlib-mx:STAB_MX_6.25uS8
1PCA9536DRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1Programmable 1KeyboardVerified:SW_MX_1uSW94
1Programmable 2KeyboardVerified:SW_MX_1uSW95
1Raspberry Pi Pico WKeyboardVerified:RaspberryPi_Pico_Common_THT_Bare_WA1
1SN74LVC1T45DBVRPackage_TO_SOT_SMD:SOT-23-6U2
1SS14Diode_SMD:D_SMAD1
1SW_PWRButton_Switch_THT:SW_Slide-03_Wuerth-WS-SLTV_10x2.5x6.4_P2.54mmSW1
1SW_PushKeyboardVerified:SW_MX_1u_RGB_ClearanceSW12
1TPS22918DBVRPackage_TO_SOT_SMD:SOT-23-6U5
1TPS2553DBVRPackage_TO_SOT_SMD:SOT-23-6U3

Questions

How big is the Keeb pcb PCB?

It measures 360 × 124.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keeb pcb use?

357 parts, built around the SN74LVC1T45DBVRE4, TPS2553DBVR-1, SK6812MINI-E and BSS138LT1G. 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 Keeb pcb KiCad files?

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

Can I use the Keeb pcb design in my own project?

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

Similar boards

  • 2 layers359.4 × 142.3 mmClavier drive 1, the printed circuit board in 3D

    Clavier drive 1

    MartinDrillon/CLAVICORE

    Pilotage d’un clavecin à distance grâce à un clavier ergonomique.

    285 parts1
  • 4 layers66 × 38 mmFan power health, the printed circuit board in 3D

    Fan power health

    AxelMcKenna/AFX-1000

    RMX-1000-inspired effects processor for macOS, AU and VST3, built on a shared C++20 engine. Standalone Daisy Seed 3 hardware with two main PCBs and a custom housing is in development.

    84 parts1
  • 4 layers195 × 58 mmEzo pmp controller, the printed circuit board in 3D

    Ezo pmp controller

    dephekt/dosing-pump-hardware

    Open schematics and design files for a computer controlled nutrient dosing system

    83 partsCERN-OHL-S-2.0
  • 4 layers100 × 100 mmEc30-tee, the printed circuit board in 3D

    Ec30-tee

    justinpirie/ec30

    Onan EC30 Tee Board with ESP32 Control

    167 partsApache-2.0
  • 4 layers160 × 100 mmEsp32 s3 dwm3000 uwb anchor with relay outputs, the printed circuit board in 3D

    Esp32 s3 dwm3000 uwb anchor with relay outputs

    Takingo/Mypcb35

    OmniCircuit AI is a local proof of concept for an autonomous PCB/PCBA design and manufacturing suite. The current implementation focuses on the ESP32-S3 + DWM3000 UWB Anchor example and establishes the architecture for:

    323 parts
  • 4 layers90 × 160 mmTool power supply v1, the printed circuit board in 3D

    Tool power supply v1

    UBC-Hacker-Fab/tool-power-supply

    general power supply for tools

    125 parts1
  • 4 layers100 × 75 mmAmos, the printed circuit board in 3D

    Amos

    des256/pcbs

    Making electronics as well

    322 parts
  • 4 layers137 × 141 mmPcb panel, the printed circuit board in 3D

    Pcb panel

    0xCB-dev/0xCB-1337

    Mechanical macropad with OLED running QMK

    485 parts61