Skip to the content
2 layers349 × 159 mmKeyboard 80pct, the printed circuit board in 3D

Keyboard 80pct

PetrouilFan/ergon801

80% mechanical keyboard PCB: ESP32-S3, Kailh Choc V2, per-key SK6812 RGB, OLED, RTC, USB hub

Size
349 × 159 mm
Copper layers
2
Thickness
1.6 mm
Parts
297
Nets
226
Pads
872
Tracks, vias
178, 0
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20241229)
Created
18 Jun 2026
Updated
18 Jun 2026

Overview

Keyboard 80pct is an open-source printed circuit board by PetrouilFan, from the PetrouilFan/ergon80 repository on GitHub. It is a 2-layer board of 349 × 159 mm with 297 parts on 226 nets, routed with 178 tracks and 0 vias.

It is built around the ESP32-S3-WROOM-1-N8, USB2512B/M2 and SK6812. Its parts include 166 diodes, 83 switches, 18 capacitors, 13 resistors and 2 ICs. It belongs with the keyboards and input and lEDs and displays boards and the ESP32 boards of this library.

Main components

3

README

README.md

Ergon80

An 80% mechanical keyboard PCB designed around the ESP32-S3, featuring low-profile Choc V2 switches, per-key RGB, an OLED display, and a USB hub.

Features

  • MCU: ESP32-S3-WROOM-1 (dual-core, Wi-Fi, Bluetooth)
  • USB Hub: USB2512B with 3x USB-C ports
  • Switches: 80x Kailh Choc V2 low-profile (5.5mm travel)
  • Lighting: 80x SK6812 Mini-E addressable RGB LEDs (reverse-mount on B.Cu)
  • Display: SSD1306 0.91" OLED (128x32, I2C)
  • RTC: DS3231SN precision real-time clock (I2C)
  • Encoder: EC11E rotary encoder with push switch
  • Mounting: 8x M2 mounting holes

Project Structure

text
ergon80/
├── generate_schematic.py     # Generates KiCad 10 schematic
├── generate_pcb.py           # Generates KiCad 10 PCB layout
├── keyboard-layout.json      # KLE layout definition (80% TKL)
├── keyboard_80pct.kicad_sch  # Generated schematic
├── keyboard_80pct.kicad_pcb  # Generated PCB layout
├── keyboard_80pct.kicad_pro  # KiCad project file
├── keyboard_80pct_BOM.csv    # Bill of materials with MPNs
├── fp-lib-table              # Footprint library table
├── keyboard_80pct.pretty/    # Custom footprints
│   ├── SW_Kailh_Choc_V2.kicad_mod
│   └── Module_DS3231.kicad_mod
└── jlcpcb_output/            # JLCPCB fabrication files (Gerbers, BOM, PnP)

Prerequisites

  • KiCad 10 (for opening/editing the project)
  • Python 3.13+ (for running the generators)

Usage

Generating the schematic and PCB

bash
python3 generate_schematic.py
python3 generate_pcb.py

Opening in KiCad

Open keyboard_80pct.kicad_pro in KiCad 10 to view and edit the schematic or PCB layout.

Ordering PCBs

Pre-exported JLCPCB fabrication files are in jlcpcb_output/:

  • Upload the Gerber files (*.gbr + *.drl) to JLCPCB
  • Use keyboard_80pct_jlcpcb_bom.csv for the BOM
  • Use keyboard_80pct_pos.csv for pick-and-place

Bill of Materials

ComponentQtyMPNPackage
ESP32-S3-WROOM-11ESP32-S3-WROOM-1Module
USB-C Receptacle3USB4125-GF-AUSB-C
USB2512B-I/ML1USB2512B-I/MLQFN-32
SSD1306 OLED1ER-OLEDM0.91-1Module
DS3231SN RTC1DS3231SNModule
EC11E Rotary Encoder1EC11ETHT
Kailh Choc V280PG1353THT
1N4148W Diode801N4148WTSOD-323
SK6812 Mini-E80SK6812MINI-ELED_SMD
5.1k Resistor2RC0603FR-075K1L0603
100R Resistor1RC0603FR-07100RL0603
10k Resistor6RC0603FR-0710KL0603
1000uF Cap1CL10A106MQ8NRNC1210
100uF Cap3CL21A106KBCNNNC0805
10uF Cap4CL10A104KQ8NNNC0805
100nF Cap4CL10A104KO8NNNC0603
5-pin Debug Header11x05 2.54mmTHT
M2 Mounting Hole8M2_PadMechanical

License

CC BY-NC-SA 4.0 - This project is based on klepcbgen by Jeroen Bouwens.

Parts

297
QtyValueFootprintReferences
831N4148Diode:D_SOD-323D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +67
83Choc V2Switch:SW_Kailh_Choc_V2SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +67
83SK6812LED:LED_SK6812MINI-ELED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +67
8M2MountingHoleMH1, MH2, MH3, MH4, MH5, MH6, MH7, MH8
610kR_0603R9, R10, R11, R12, R13, R14
5100nFC_0402C20, C21, C22, C23, C24
41000uFC_1210C1, C2, C3, C4
4100nFC_0805C5, C6, C7, C8
222RR_0402R17, R18
222pFC_0402C18, C19
25.1kR_0603R5, R6
1100RR_0603R7
1100nFC_0603C12
110kR_0402R16
110uFC_0805C13
112kR_0402R15
124MHzCrystal:3215Y1
14.7uFC_0603C25
1ESP32-S3-WROOM-1ESP32:ESP32-S3-WROOM-1U1
1ESP_DEBUGPinHeader_1x05HDR1
1EncoderRotaryEncoderENC1
1SSD1306OLEDOLED1
1USB-C 1USB_C:USB_C_6PUSB1
1USB-C 2USB_C:USB_C_6PUSB2
1USB-C 3USB_C:USB_C_6PUSB3
1USB2512BUSB2512B:QFN-36U2

Similar boards

  • 4 layers58 × 18 mmUpm, the printed circuit board in 3D

    Upm

    jonasblixt/upm

    USB Power monitor

    72 parts46
  • 4 layers50.5 × 29.5 mmColobus hardware, the printed circuit board in 3D

    Colobus hardware

    tihmstar/colobus_hardware

    RP2040 based iPhone (lightning) UART cable, that actually works (hardware)

    57 parts39CERN-OHL-S-2.0
  • 6 layers85 × 85 mmController Board, the printed circuit board in 3D

    Controller Board

    MichalVarsanyi/VoxLink

    VoxLink is a high-speed solution that allows interfacing of up to 100 sensors using a single high-speed host device.

    298 parts1MIT
  • 4 layers49.2 × 28 mmAis usbc, the printed circuit board in 3D

    Ais usbc

    xenbedded/pixel-c-support

    Support hardware and software for running custom code on the Google Pixel C.

    61 parts
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    663 parts915
  • 2 layers168.6 × 70 mmBailabox main board v2, the printed circuit board in 3D

    Bailabox main board v2

    dr-harvey/BailaBox

    BailaBox - RFID enabled, ESP32-based music toy for kids that works with Home Assistant and network speakers.

    87 parts29
  • 2 layers62.1 × 60.6 mmSmart home software, the printed circuit board in 3D

    Smart home software

    azaslavskis/smart-home-software

    Software for smart home project (e.g backup)

    40 parts1MIT
  • 2 layers80.4 × 120 mmNext Gen MacroPad, the printed circuit board in 3D

    Next Gen MacroPad

    DevX-Dragon/Next-Gen-MacroPad

    This is a integrated macropad with all an programmable SoC

    85 parts1

Questions

How big is the Keyboard 80pct PCB?

It measures 349 × 159 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keyboard 80pct use?

297 parts, built around the ESP32-S3-WROOM-1-N8, USB2512B/M2 and SK6812. 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 Keyboard 80pct KiCad files?

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

Can I use the Keyboard 80pct design in my own project?

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