

ErgonomicGamepad
Custom ergonomic gaming keypad PCB project (KiCad) with a 4x6 key matrix, hot-swap sockets, and USB-C.
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 86
- Nets
- 70
- Pads
- 413
- Tracks, vias
- 72, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 16 Jun 2026
- Updated
- 11 Aug 2026
Overview
ErgonomicGamepad is an open-source printed circuit board by vemcg, from the vemcg/ErgonomicGamepad repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board with 86 parts on 70 nets, routed with 72 tracks and 0 vias.
It is built around the ATMEGA32U4-AU, USBLC6-2SC6 and 1N4148WS, with the CPG151101S11-16, B5B-XH-A(LF)(SN) and CC0603JRNPO8BN220 among its other parts. Its parts include 24 switches, 8 resistors, 7 connectors, 5 capacitors and 3 diodes. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
12ATMEGA32U4-AU
QFP-44(10x10)-40℃~+85℃ 10bit 16MHz 1KB 2.5KB 2.7V~5.5V 26 32KB 8 Bit AVR Built-in FLASH QFP-44(10x10) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)USBLC6-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)1N4148WS
SOD-3231.25V@150mA 100V 150mA 1uA@75V 200mW 2A 4ns Independent SOD-323 Switching Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Switching DiodesCPG151101S11-16
SMD- Mechanical Keyboard Shaft ROHSKailhMechanical Keyboard ShaftB5B-XH-A(LF)(SN)
插件,P=2.5mm-25℃~+85℃ 1 14.9mm 1x5P 2.5mm 250V 3A 5 5.75mm 5P 7mm Brass K Pin PA66 Through Hole Tin UL94V-0 White XH 插件,P=2.5mm Wire To Board Connector ROHSJSTWire To Board ConnectorCC0603JRNPO8BN220
060322pF 25V NP0 ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSYAGEOMultilayer Ceramic Capacitors MLCC - SMD/SMTB-2100S02P-A110
插件,P=2.54mm-40℃~+105℃ 1 1x2P 2.54mm 2.54mm 2P 3A 3mm 6mm Black Brass Gold Square pin Through Hole Plugin,P=2.54mm Pin Headers ROHSCkmtwPin HeadersCC0603KRX7R9BB104
0603100nF 50V X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSYAGEOMultilayer Ceramic Capacitors MLCC - SMD/SMTRC0603FR-0710KL
UncategorisedUnknown maker1N5819WS
SOD-3231 Independent 1A 25A 40V 500uA@40V 600mV@1A SOD-323 Schottky Diodes ROHSGuangdong HottechSchottky DiodesRC0603FR-071KL
UncategorisedUnknown makerCC0603KRX5R7BB105
060316V 1uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSYAGEOMultilayer Ceramic Capacitors MLCC - SMD/SMT
README
README.mdErgonomicGamepad
Custom ergonomic gaming keypad PCB project (KiCad) with a 4x6 key matrix, hot-swap sockets, and USB-C.
Overview
This repo contains the schematic, PCB, and production support files for an ATmega32U4-based ergonomic keypad.
Hardware Summary
| Item | Value |
|---|---|
| MCU | ATmega32U4 (TQFP-44) |
| Key Matrix | 4 rows x 6 columns (24 keys) |
| Switch Interface | MX-compatible Kailh hot-swap sockets |
| USB | USB-C receptacle |
| Clock | 16 MHz crystal |
| Passive Size | 0603 resistors/capacitors |
| Protection/Diodes | 1N4148 matrix diodes, 1N5819WS Schottky |
Core Project Files
ErgonomicGamepad.kicad_sch- SchematicErgonomicGamepad.kicad_pcb- PCB layoutErgonomicGamepad.kicad_pro- KiCad projectjlcpcb/production_files/jlc_sourcing_bom_template.csv- Main sourcing/BOM tablejlcpcb/production_files/verify_stock_before_ordering.csv- Pre-order stock/sourcing risk checklist (MCU lead time, hand-sourced sockets/connectors/switches)jlcpcb/gerber/- Manufacturing output folder
Pinout Baseline
Matrix
| Signal | Pins |
|---|---|
| ROW1-ROW4 | PF7, PF6, PF5, PF4 |
| COL1-COL6 | PD1, PD2, PD3, PD4, PD5, PD6 |
Programming Header (ISP)
| Signal | Pin Mapping |
|---|---|
| SCK | PB1 |
| MOSI | PB2 |
| MISO | PB3 |
| RESET | J5 pin 5 -> U1 ~RESET |
USB-C Implementation (Resolved)
J1 is an HRO TYPE-C-31-M-12 receptacle - hybrid retention (SMT signal/power
pins plus through-hole shell tabs) for stronger cable-insertion durability
than an SMT-only part. This is a USB 2.0 device-only implementation (power +
D+/D-); no SuperSpeed/Alt-Mode pins are used.
- Orientation: fully reversible. Both D+ pads (A6 and B6) are tied together at the connector, and both D- pads (A7 and B7) are tied together, so the plug works in either orientation.
- Signal path: connector D+/D- -> U2 (
USBLC6-2SC6ESD protection array) -> series resistors R1/R2 (20R) -> U1 D-/D+ pins, with TP3/TP4 tapping the MCU-side D-/D+ nets for debug access. - CC (device-mode/UFP): CC1 and CC2 each pull down to GND through a 5.1k resistor (R4, R5) - the standard passive UFP presentation, no CC logic IC.
- Shield/GND: J1's shield pin (
SH) ties directly to GND (no RC/ferrite isolation). - Power path: VBUS feeds +5V through D1 (
1N5819WSSchottky) gated by JP1 (power-path select jumper - see Jumper Shunts below); J7 (external 2-pin power connector) feeds +5V directly. The Schottky prevents VBUS from being back-fed if J7 external power is connected while a USB cable is also plugged in.
Debug / Test Points
- TP1-TP7: internal signal debug points (power-select node, GND
reference, USB D+/D-, crystal XTAL1/XTAL2, USB regulator cap node) using
the small
TestPoint_Pad_D1.5mmfootprint - sized for a fine meter probe or hook, not a full-size clip. - TP8 (+5V) / TP9 (GND): dedicated power-rail clip points, intended to
be placed at the board edge for easy alligator-clip access during bring-up
and testing. These use the larger
TestPoint_THTPad_D3.0mm_Drill1.5mmfootprint (a real drilled through-hole pad, not just a flat SMD pad) so an actual clip has something to bite onto. Kept separate from TP2 (which stays with the internal signal-debug cluster near the MCU) since GND is a single net and a second access point elsewhere costs nothing electrically.
Footprint Baseline (Current)
- SW1-SW24:
Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00u - J1:
Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 - R1-R7:
Resistor_SMD:R_0603_1608Metric - C1-C5:
Capacitor_SMD:C_0603_1608Metric - D25-D26:
LED_SMD:LED_0603_1608Metric - TP1-TP7:
TestPoint:TestPoint_Pad_D1.5mm - TP8/TP9:
TestPoint:TestPoint_THTPad_D3.0mm_Drill1.5mm(edge-mounted power/ground clip points - see Debug / Test Points above) - J2/J3/J4/J6:
Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_Vertical(DNP - see Satellite Board Cables below) - J7:
PinHeader_1x02_P2.54mm_Vertical - J5:
PinHeader_2x03_P2.54mm_Vertical - JP1/JP2:
Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical - Y1:
Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm - SWR1:
Button_Switch_SMD:SW_SPST_B3U-3000P
Jumper Shunts Needed (Not Part of PCBA)
JP1 (power-path select) and JP2 (forces hardware bootloader via U1 pin 33 / HWB when bridged) are populated as bare 2-pin headers during JLCPCB assembly, but the assembly process does not install a shunt on them - a jumper shunt is a friction-fit plastic/metal cap, not a soldered part, so it has to be installed by hand after the boards arrive.
Buy separately (not on the PCBA BOM):
- 2.54mm 2-pin jumper shunt cap - e.g. BOOMELE, LCSC
C5305(~$0.01/unit, 50-piece minimum order on LCSC). Any standard 2.54mm/0.1" shunt works; this is a common commodity part also sold on Amazon/DigiKey/etc. - Need at least 2 (one per jumper), but buy a small handful (the LCSC MOQ is 50 anyway) since they're easy to lose.
Switches & Keycaps Needed (Not Part of PCBA)
SW01-SW24 are Kailh MX hotswap sockets, soldered directly to the board (see Footprint Baseline above), but the actual keyswitches and keycaps are separate hand-sourced items that get plugged in after assembly - the whole point of a hotswap board is that these aren't soldered.
- Hotswap sockets (on-board, hand-soldered): Kailh
CPG151101S11-16, LCSCC5156480- https://www.lcsc.com/datasheet/C5156480.pdf. Currently shows near-zero LCSC stock (consignment-style listing), so plan to hand-source and hand-solder these rather than rely on JLCPCB auto-placement - see Progress notes below. Need 24 plus a few spares. Each socket takes 2 solder joints (through-hole); the extra alignment pins in the footprint hold it steady while soldering. For practical hobbyist purchasing, the real path is AliExpress - there are multiple listings selling genuine Kailh hotswap sockets in small hobbyist-friendly quantities (30/90/110-packs), which is how most individual keyboard builders actually buy these - or a specialty keyboard-parts retailer like splitkb.com, which stocks Kailh hotswap sockets specifically for this use case. - Keyswitches (plug into the sockets, not soldered): Cherry MX Brown
(tactile), official part
MX1A-G1NW. Also frequently out of stock on LCSC - source from a specialty mechanical-keyboard parts retailer instead (e.g. KBDfans, NovelKeys, Mechanicalkeyboards.com, or similar). Since the socket is switch-agnostic (any standard MX-footprint switch fits), a well-regarded MX-compatible clone switch would also work if genuine Cherry isn't available. Need 24 plus a few spares. - Keycaps: MX-compatible (cross-stem) keycaps, not yet specced - profile (OEM/Cherry/DSA/etc.), material, and colorway are a personal choice. Note this layout is a non-standard ergonomic 4x6 matrix, not a regular keyboard row layout, so a generic pre-made keycap set is unlikely to have correctly-sculpted keycaps for every position - uniform-profile (same shape regardless of position) or blank keycaps are the simplest option unless a custom set is planned.
Satellite Board Cables Needed (Not Part of PCBA)
J2/J3/J4/J6 connect the two satellite switch boards to the main board (ROW1-4
- COL1 per connector - no power needed, see Pinout Baseline). They're marked DNP on the JLCPCB assembly BOM since through-hole headers get hand-soldered after the boards arrive, same reasoning as the hotswap sockets above.
- Male headers (on-board, hand-soldered): JST-XH 5-pin,
B5B-XH-A(matches the footprint above). Genuine JST stock from Digi-Key or Mouser (searchB5B-XH-Adirectly), or cheaper from LCSC/JLCPCB (search "XH 5P" or the part numberB5B-XH-A(LF)(SN)) - the latter is also orderable through JLCPCB assembly if DNP is ever lifted. Generic multi-packs from Amazon/AliExpress work fine too for prototyping. Need 4 (one per connector) plus spares. - Female-to-female cables: JST-XH 5-pin, both ends female, connecting
each main-board header to its matching satellite-board header. Target
length ~3-4in. Best sourced from AliExpress (search "JST XH 2.54 5 pin
cable" - widely available in 10/15/20/30cm, some sellers offer custom
lengths) or Amazon (search "JST XH 5 pin cable" - mostly RC/battery
sellers, lengths cluster around 15-30cm with some 10cm/
4in options). If the exact length/pinout combo isn't available premade, a JST-XH crimp tool ($15-20) plus loose housings/terminals (pennies each, same vendors) makes it easy to build the 2 needed cables to spec. Individual wires are flexible (stranded, not ribbon) so routing/twisting around the enclosure isn't a concern.
Progress (Brief)
Done:
- Schematic is component-complete.
- Footprints assigned for all currently tracked parts.
- Schematic and PCB baseline are synced.
- ISP signal mapping corrected and documented.
- JLC sourcing workflow files are in place.
- USB-C orientation, CC, ESD, shield, and power-path decisions locked and documented.
Not done yet:
- Component placement refinement.
- PCB routing completion.
- Panelization/mechanical finalization.
- Final DRC-clean release candidate.
- Gerber/BOM/CPL release package for fabrication.
- Firmware development.
Process Checklist
For the full detailed build, verification, and manufacturing checklist, use PROCESS.md.
Last Updated: July 2026 Project Status: Pre-Layout Baseline
Parts
86| Qty | Value | Footprint | References |
|---|---|---|---|
| 24 | 1N4148WS | Diode_SMD:D_SOD-323 | DM01, DM02, DM03, DM04, DM05, DM06, DM07, DM08, DM09, DM10, DM11, DM12, DM13, DM14, DM15, DM16 +8 |
| 24 | SW_DIP_x01 | Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00u | SW01, SW02, SW03, SW04, SW05, SW06, SW07, SW08, SW09, SW10, SW11, SW12, SW13, SW14, SW15, SW16 +8 |
| 7 | TestPoint | TestPoint:TestPoint_Pad_D1.5mm | TP1, TP2, TP3, TP4, TP5, TP6, TP7 |
| 4 | Conn_01x05 | Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_Vertical | J2, J3, J4, J6 |
| 2 | 20R | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 22pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R4, R5 |
| 2 | Jumper_2_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP1, JP2 |
| 2 | TestPoint | TestPoint:TestPoint_THTPad_D3.0mm_Drill1.5mm | TP8, TP9 |
| 1 | 100nF | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | 10K | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 1824417 | Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_Vertical | J7 |
| 1 | 1N5819WS | Diode_SMD:D_SOD-323 | D1 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C4 |
| 1 | ATmega32U4-A | Package_QFP:TQFP-44_10x10mm_P0.8mm | U1 |
| 1 | AVR-ISP-6 | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMD | J5 |
| 1 | B3U-3000P | Button_Switch_SMD:SW_SPST_B3U-3000P | SWR1 |
| 1 | Crystal | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | LED Dbg | LED_SMD:LED_0603_1608Metric | LED2 |
| 1 | LED Pwr | LED_SMD:LED_0603_1608Metric | LED1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U2 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
Questions
What parts does the ErgonomicGamepad use?
86 parts, built around the ATMEGA32U4-AU, USBLC6-2SC6, 1N4148WS and CPG151101S11-16. 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 ErgonomicGamepad KiCad files?
From the vemcg/ErgonomicGamepad repository on GitHub, at the commit this page was made from: the board is ErgonomicGamepad.kicad_pcb and its schematic ErgonomicGamepad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ErgonomicGamepad design in my own project?
Its repository publishes it under the GPL-3.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).
Similar boards
- 2 layers46 × 90.7 mm

- 4 layers111.8 × 59.1 mm

ControleurPulve
Mobilab-AgroTIC/debitdouille
Système pour controler le fonctionnement d'un pulvérisateur
107 parts - 6 layers50 × 50 mm

- 4 layers233.4 × 147.3 mm

OpenPLC Hardware
gasiepgodoy/Open-Source-PLC
Open Source Programmable Logic Controller (Hardware and Software). Based on the Master of Science in Electrical Engineering of João Vitor Rocha Santana
494 parts2 - 2 layers58.9 × 25.7 mm

LoTiBloxy
GiovaSanta/PulseOxyemeter-LotiBloxy
a bluetooth pulse oxymeter Printed Circuit Board Design Project. PCB is meant to take spo2 measurements and sends results to an application via Bluetooth
51 parts - 4 layers100 × 100 mm

- 4 layers30 × 30 mm

ReCamera S101 v1.0
Seeed-Studio/OSHW-reCamera-Series
reCamera is a series of open-source AI cameras.
90 parts495Apache-2.0 - 4 layers64 × 115 mm
