

Combined
48 key ortholinear keyboard
- Size
- 234.6 × 172.5 mm
- Copper layers
- 2
- Thickness
- 1 mm
- Parts
- 260
- Nets
- 105
- Pads
- 1,279
- Tracks, vias
- 1,859, 576
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 16 Feb 2023
- Updated
- 12 Jun 2023
Overview
Combined is an open-source printed circuit board by weteor, from the weteor/Kong repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 234.6 × 172.5 mm with 260 parts on 105 nets, routed with 1,859 tracks and 576 vias.
It is built around the RP2040, W25Q128JVSIQ and USBLC6-2SC6. Its parts include 100 switches, 94 diodes, 28 capacitors, 16 resistors and 8 ICs. It belongs with the keyboards and input boards and the RP2040 boards of this library.
Main components
3RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q128JVSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 120ms@(32KB) 128Mbit 133MHz 1uA 2.7V~3.6V 20 Years 3ms Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)
README
README.mdKong
48 key orthogonal keyboard with offset bottom row

Features
- seperate pcbs/cases for choc v1 and mx switches.
- Hotswap sockets
- onboard rp2040
- production files for pcba
- case files are supplied (stl, dxf, as well as the freecad files)
- QMK with vial support
- completely open source, permissive license (CERN-OHL-P)
- bottom rows supported:
- 6x1u (MX)
- 3x1u - 2u (MX and Choc)
- 2x1u - 3u (MX)
Want one?
All production files you need to build your own board can be found here: choc / mx.
There are also production files with both pcbs combined to save on the assembly costs: combined
Case
Open bottom
The case is split in two parts connected by cylindrical 3mm diameter magnets. Two length are needed, 1.7mm and 3mm. The 3x3mm Magnets go into the shallow holes, so they poke out of the case. The 3x1.7mm magnets are pressed into the deeper holes. The longer magnet acting as a pin increasing stability and keeping the top part in place.
The bottom case is open by design and ends at a bit under the hotswap sockets. It's meant to be used with self adhesive neopren sheets (2-3mm thick), which are cut to be the same size as the pcb and then glued on top of the underside of the pcb.
Gasket mount
An alternative gasket mount case with a 4 degree tilt is also available for the MX version. 4mm x 3mm thick strips of foam is used to isolate the plate from PCB. Felt or other soft material similar in thickness can be used. M2 x 6mm flat head screws are used to fasten the case together.
Files
Parts
Parts needed beside the assembled pcbs:
- 48 hotswap sockets ( mx or choc)
- 48 of your favourite switches (mx or choc)
- (Choc only) 1x 1.6mm mid-mount 16-pin USB-C connector. I've omitted this from assembly to avoid needing the higher tier assembly. Those connectors can easily be found on Aliexpress, Mouse, Digikey etc. and are quite easy to handsolder
Firmware
firmware configs for qmk and vial can be found in the respective firmware folders: choc / mx.
The first time the pcb is plugged in, the bootloader will provide a drive to upload the firmware file. You may either build the firmware yourself or use the provided vial firmware files here. You can use VIAL (download to program your board after that, without need to build a new firmware.
The rest
Everything in this repository is free to use however you might see fit. If you want to support me and my projects, please consider linking back to this repository if you build/change/use anything.
If you would like to send me a tip, you could do it here (Please don't feel like you have to).
More pictures


Parts
260| Qty | Value | Footprint | References |
|---|---|---|---|
| 94 | D | weteor:D_SOD-123 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +78 |
| 44 | SW_Push | weteor:ChocV1_V2_Hotswap | SW1, SW2, SW3, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW23, SW24, SW25, SW26 +28 |
| 44 | SW_Push | weteor:CherryMX_Hotswap | SW500, SW501, SW502, SW503, SW504, SW505, SW506, SW507, SW508, SW509, SW510, SW511, SW512, SW513, SW514, SW515 +28 |
| 16 | 100nF | weteor:C_0402_HandSolder | C3, C4, C5, C8, C9, C10, C11, C14, C502, C504, C506, C507, C508, C509, C512, C513 |
| 8 | 1uF | weteor:C_0402_HandSolder | C6, C7, C12, C13, C500, C501, C503, C505 |
| 6 | 1k | weteor:R_0402_HandSolder | R1, R2, R5, R504, R505, R506 |
| 4 | 27R | weteor:R_0402_HandSolder | R3, R4, R502, R503 |
| 4 | 27pF | weteor:C_0402_HandSolder | C2, C2, C510, C511 |
| 4 | 5.1k | weteor:R_0402_HandSolder | R6, R7, R500, R501 |
| 4 | SW_Push | weteor:CherryMX_Hotswap_3u_stabs | SW539, SW541, SW542, SW544 |
| 4 | SW_Push | weteor:Micro_Push_Button_3x6x2.5mm | SW20, SW21, SW550, SW551 |
| 2 | 10k | weteor:R_0402_HandSolder | R8, R507 |
| 2 | BL_CONN | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1, J501 |
| 2 | Crystal_GND24_Small | Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mm | Y1, Y500 |
| 2 | RP2040 | RP2040_minimal:RP2040-QFN-56 | U1, U503 |
| 2 | SW_Push | weteor:ChocV1_V2_Hotswap_2u | SW29, SW34 |
| 2 | SW_Push | weteor:CherryMX_Hotswap_2u_stabs | SW540, SW543 |
| 2 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U3, U501 |
| 2 | XC6206PxxxMR | Package_TO_SOT_SMD:SOT-23 | U2, U500 |
| 1 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J4 |
| 1 | LOGO | LOGO | G*** |
| 1 | USB_C_Receptacle_USB2.0 | weteor:USB-C-12-Pin-MidMount | J3 |
| 1 | USB_C_Receptacle_USB2.0 | weteor:USB C-31-M-12 | J500 |
| 1 | W25Q128JVS | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U502 |
| 1 | W25Q128JVS | Package_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm | U4 |
The 254 most common of 260 parts.
More from weteor/Kong
2- 2 layers234.6 × 89.4 mm

- 2 layers220.4 × 80 mm

Similar boards
- 2 layers42 × 67 mm

- 2 layers307.7 × 89.2 mm

- 2 layers352.5 × 120 mm

PyKey87
jpconstantineau/PyKey60
The PyKey60 is a custom programmable mechanical keyboard with a standard ANSI 60% keyboard layout compatible with any cases made for the GH60. The PyKey60 uses mechanical switches (Cherry MX type).
310 parts57 - 4 layers141.9 × 131.1 mm

- 2 layers84.2 × 100 mm

Fabpack out v5 8
yuz207/agentpad13
agentpad13 — open-source 13-key macropad for agentic work (RP2040, vial-qmk, planar joystick, Raw HID agent-status protocol)
126 parts41 - 4 layers277.2 × 107.5 mm

Katia
ikajdan/katia
A split keyboard with 6 by 3 column staggered keys and 3 thumb keys, based on the Crkbrd design
230 parts33CERN-OHL-P-2.0 - 4 layers93.5 × 118.6 mm

RD56
lhm0/rotating_display_color
56 LED rotating color display with RP2040 and ESP32 microcontrollers
266 parts25 - 2 layers288.8 × 160.1 mm

GRAM SLIM
GRAMCTRL/GRAM-SLIM
Open source low-profile leverless design with an integrated RP2040.
64 parts24GPL-3.0
Questions
How big is the Combined PCB?
It measures 234.6 × 172.5 mm and has 2 copper layers, 1 mm thick.
What parts does the Combined use?
260 parts, built around the RP2040, W25Q128JVSIQ and USBLC6-2SC6. 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 Combined KiCad files?
From the weteor/Kong repository on GitHub, at the commit this page was made from: the board is pcb/mx/combined.kicad_pcb and its schematic pcb/choc/kongChoc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Combined design in my own project?
Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).