Skip to the content
PCBKitNew board
2 layersErgonomicGamepad, the printed circuit board in 3D

ErgonomicGamepad

vemcg/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

12

README

README.md

ErgonomicGamepad

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

ItemValue
MCUATmega32U4 (TQFP-44)
Key Matrix4 rows x 6 columns (24 keys)
Switch InterfaceMX-compatible Kailh hot-swap sockets
USBUSB-C receptacle
Clock16 MHz crystal
Passive Size0603 resistors/capacitors
Protection/Diodes1N4148 matrix diodes, 1N5819WS Schottky

Core Project Files

  • ErgonomicGamepad.kicad_sch - Schematic
  • ErgonomicGamepad.kicad_pcb - PCB layout
  • ErgonomicGamepad.kicad_pro - KiCad project
  • jlcpcb/production_files/jlc_sourcing_bom_template.csv - Main sourcing/BOM table
  • jlcpcb/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

SignalPins
ROW1-ROW4PF7, PF6, PF5, PF4
COL1-COL6PD1, PD2, PD3, PD4, PD5, PD6

Programming Header (ISP)

SignalPin Mapping
SCKPB1
MOSIPB2
MISOPB3
RESETJ5 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-2SC6 ESD 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 (1N5819WS Schottky) 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.5mm footprint - 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.5mm footprint (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, LCSC C5156480 - 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 (search B5B-XH-A directly), or cheaper from LCSC/JLCPCB (search "XH 5P" or the part number B5B-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
QtyValueFootprintReferences
241N4148WSDiode_SMD:D_SOD-323DM01, DM02, DM03, DM04, DM05, DM06, DM07, DM08, DM09, DM10, DM11, DM12, DM13, DM14, DM15, DM16 +8
24SW_DIP_x01Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.00uSW01, SW02, SW03, SW04, SW05, SW06, SW07, SW08, SW09, SW10, SW11, SW12, SW13, SW14, SW15, SW16 +8
7TestPointTestPoint:TestPoint_Pad_D1.5mmTP1, TP2, TP3, TP4, TP5, TP6, TP7
4Conn_01x05Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ2, J3, J4, J6
220RResistor_SMD:R_0603_1608MetricR1, R2
222pFCapacitor_SMD:C_0603_1608MetricC1, C2
25.1kResistor_SMD:R_0603_1608MetricR4, R5
2Jumper_2_OpenConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1, JP2
2TestPointTestPoint:TestPoint_THTPad_D3.0mm_Drill1.5mmTP8, TP9
1100nFCapacitor_SMD:C_0603_1608MetricC5
110KResistor_SMD:R_0603_1608MetricR3
110kResistor_SMD:R_0603_1608MetricR8
11824417Connector_Phoenix_MC_HighVoltage:PhoenixContact_MCV_1,5_2-G-5.08_1x02_P5.08mm_VerticalJ7
11N5819WSDiode_SMD:D_SOD-323D1
11kResistor_SMD:R_0603_1608MetricR6
11uFCapacitor_SMD:C_0603_1608MetricC3
1330Resistor_SMD:R_0603_1608MetricR7
14.7uFCapacitor_SMD:C_0603_1608MetricC4
1ATmega32U4-APackage_QFP:TQFP-44_10x10mm_P0.8mmU1
1AVR-ISP-6Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMDJ5
1B3U-3000PButton_Switch_SMD:SW_SPST_B3U-3000PSWR1
1CrystalCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY1
1LED DbgLED_SMD:LED_0603_1608MetricLED2
1LED PwrLED_SMD:LED_0603_1608MetricLED1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U2
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

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 mmAuraClicker, the printed circuit board in 3D

    AuraClicker

    AayushmanDas/AuraClicker

    Presentation device

    29 partsMIT
  • 4 layers111.8 × 59.1 mmControleurPulve, the printed circuit board in 3D

    ControleurPulve

    Mobilab-AgroTIC/debitdouille

    Système pour controler le fonctionnement d'un pulvérisateur

    107 parts
  • 4 layers233.4 × 147.3 mmOpenPLC Hardware, the printed circuit board in 3D

    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 mmLoTiBloxy, the printed circuit board in 3D

    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 layers30 × 30 mmReCamera S101 v1.0, the printed circuit board in 3D

    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 mmAmp board, the printed circuit board in 3D

    Amp board

    splogdes/Audio-Engine-A5-Input-Stage

    198 parts