Skip to the content
PCBKitNew board
4 layers431.5 × 125.5 mmClavier, the printed circuit board in 3D

An FPGA-based mechanical keyboard with an integrated USB hub and communication interfaces

Size
431.5 × 125.5 mm
Copper layers
4
Thickness
1.61 mm
Parts
344
Nets
289
Pads
1,317
Tracks, vias
2,802, 270
Pours
1,148
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 May 2025
Updated
15 Dec 2025

Overview

Clavier is an open-source printed circuit board by lsartory, from the lsartory/Clavier repository on GitHub. It is a 4-layer board of 431.5 × 125.5 mm with 344 parts on 289 nets, routed with 2,802 tracks and 270 vias.

It is built around the LFE5U-25F-6BG256C, TLV62569DBVR-TP and CH347F, with the GL852G-OHY60, W25Q128JVSIQ and TPESD0594PA among its other parts. Its parts include 107 switches, 40 capacitors, 32 resistors, 19 ICs and 10 connectors. It belongs with the interfaces and adapters and keyboards and input boards and the FPGA and CPLD boards of this library.

Main components

9

README

README.md

Clavier

Clavier (French for ‘keyboard’) is an FPGA-based mechanical keyboard with an integrated USB hub, and numerous communication interfaces (JTAG, SPI, I²C, UART).

Clavier assembled

Features

  • Full size 105 keys ISO keyboard + one extra
  • Compatible with PCB mounted Cherry MX switches
  • N-key rollover
  • 1000 Hz polling rate
  • No multiplexing, no ghosting
  • 2-port USB 2.0 hub
  • JTAG, SPI, I²C, 2 × UART, and 8 × GPIOs
  • FPGA-based, VHDL only, no ALU
  • Fully open-source, including all design tools (see below)

What's the extra key for?

It's the coffee key. Use it to lock your computer and go have a break.

It can also be long-pressed for 5 seconds to reset the FPGA.

Required tools

PCB

The PCB layout

The PCB has 4 layers and requires no unusual capabilities to produce. It is however not easy to assemble by hand mostly due to 0402 passives and the FPGA in BGA packaging.

Schematics

A PDF version of the schematics is available here, for convenience: PCB/doc/clavier.pdf.

Housing

Version 1

An OpenSCAD version of the housing was created first and is fine for 3D printing. The FreeCAD version was created afterwards for exporting to STEP, which is more suitable for CNC machining. Both alternatives are functionally equivalent.

Version 2

The first version fits properly, but it turns out that it is not angled in a comfortable way. To correct this, a second version was created with an angle of 8° that makes the front part much thinner. This one is only available in FreeCAD.

FPGA

How to build

Simply run make in the FPGA subfolder. If using OSS CAD Suite, make sure the environment is set first.

How to program

The integrated JTAG interface can be used to program the FPGA. The switch SW18 is used to toggle the interfaces on or off. The LED D1 close by displays the current status. Connect the JTAG interface with jumper cables, then run either make prog-sram or make prog-flash, depending on if the configuration needs to be permanent or not.

How to connect the JTAG interface

Communication interfaces

Except for the GPIOs that are connected directly to the FPGA, communications are handled by the CH347F.

3D renders

Clavier render

Clavier housing render

Licenses

Parts

344
QtyValueFootprintReferences
89~clavier:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW19, SW20, SW103, SW104, SW105, SW107 +73
26~clavier:KC_Cherry_MX_R1_1.00u_BlackKC1, KC2, KC3, KC10, KC11, KC12, KC13, KC14, KC15, KC16, KC18, KC23, KC26, KC32, KC33, KC34 +10
171µFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC14, C16, C17, C19, C20, C22, C24, C25, C26, C27, C28, C31, C33, C35, C37, C38 +1
15~clavier:KC_Cherry_MX_R4_1.00u_WhiteKC77, KC78, KC79, KC80, KC81, KC82, KC83, KC84, KC85, KC86, KC87, KC90, KC91, KC92, KC105
15~clavier:KC_Cherry_MX_R2_1.00u_WhiteKC40, KC41, KC42, KC43, KC44, KC45, KC46, KC47, KC48, KC49, KC50, KC51, KC55, KC56, KC57
13~clavier:KC_Cherry_MX_R3_1.00u_WhiteKC61, KC62, KC63, KC65, KC66, KC68, KC69, KC70, KC71, KC72, KC73, KC74, KC75
12TPESD0594PAPackage_DFN_QFN:Diodes_UDFN-10_1.0x2.5mm_P0.5mmU1, U2, U3, U4, U5, U9, U10, U11, U12, U13, U14, U15
1022µFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5, C6, C7, C8, C9, C10
10~clavier:KC_Cherry_MX_R1_1.00u_WhiteKC19, KC20, KC21, KC22, KC24, KC25, KC27, KC28, KC29, KC30
8100nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC15, C21, C29, C30, C32, C34, C36, C39
810kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR10, R11, R12, R23, R24, R25, R29, R32
8~clavier:SW_Cherry_MX_1.25u_PCBSW77, SW95, SW96, SW97, SW99, SW100, SW101, SW102
8~clavier:KC_Cherry_MX_R4_1.25u_BlackKC76, KC94, KC95, KC96, KC97, KC98, KC99, KC100
72.55kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1, R2, R3, R4, R5, R6, R13
7MountingHole_PadMountingHole:MountingHole_3.2mm_M3_ISO7380_Pad_TopBottomH1, H2, H3, H4, H5, H6, H7
6100kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR19, R20, R21, R22, R26, R27
6LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D2, D3, D4, D5, D6
6Pin header, 2x4Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ1, J2, J3, J4, J5, J6
6~clavier:Stabilizer_2.00uST1, ST2, ST3, ST4, ST5, ST7
42.2µHInductor_SMD:L_1210_3225MetricL1, L2, L3, L4
4~clavier:KC_Cherry_MX_R4_1.00u_BlackKC89, KC101, KC102, KC103
310µFCapacitor_SMD:C_0805_2012MetricC11, C12, C13
3TLV62569DBVRPackage_TO_SOT_SMD:SOT-23-5U6, U7, U8
3~clavier:KC_Cherry_MX_R2_1.00u_BlackKC52, KC53, KC54
21.5kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR15, R31
212MHzCrystal:Crystal_SMD_2520-4Pin_2.5x2.0mmY2, Y3
220pFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC18, C23
25.1kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR7, R8
2901-211A1021D10100clavier:USB_A_Molex_67643_HorizontalJ9, J10
2~clavier:SW_Cherry_MX_2.00u_PCBSW32, SW106
2~clavier:KC_Cherry_MX_R3_1.00u_Barred_BlackKC64, KC67
2~clavier:SW_Cherry_MX_2.00u_Vertical_PCBSW60, SW94
11.37kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR18
11.65kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR17
111.5kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR14
11kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR9
14.75kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR16
147kΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR28
1680ΩResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR30
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1918-418K2023S40001Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ7
1CH347FPackage_DFN_QFN:QFN-28-1EP_4x4mm_P0.4mm_EP2.4x2.4mmU17
1DSIC01LS-PButton_Switch_SMD:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W8.61mm_P2.54mm_LowProfileSW18
1GL852G-OHY60Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.75x3.75mmU16
1LFE5U-25F-6BG256CPackage_BGA:BGA-256_14.0x14.0mm_Layout16x16_P0.8mm_Ball0.45mm_Pad0.32mm_NSMDU18
1Logo_Open_Hardware_LargeSymbol:OSHW-Symbol_13.4x12mm_SilkScreenOSHW1
1Pin header, 1x4Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ8
1PolyfuseFuse:Fuse_0805_2012Metric_Pad1.15x1.40mm_HandSolderF1
1SD05C-7Diode_SMD:D_SOD-323D7
1W25Q128JVSIQPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU19
1~clavier:KC_Cherry_MX_R4_2.75u_BlackKC88
1~clavier:KC_Cherry_MX_R4-R4_1.00u_BlackKC93
1~clavier:SW_Cherry_MX_1.75u_PCBSW61
1~clavier:KC_Cherry_MX_R1_2.00u_BlackKC31
1~clavier:SW_Cherry_MX_1.50u_PCBSW40
1~clavier:SW_Cherry_MX_2.75u_PCBSW89
1~clavier:KC_Cherry_MX_R3_1.75u_BlackKC60
1~clavier:KC_Cherry_MX_R2_1.50u_BlackKC39
1~clavier:KC_Cherry_MX_R4_2.00u_WhiteKC104
1~clavier:SW_Cherry_MX_ISOEnter_PCBSW59
1~clavier:KC_Cherry_MX_R2-R3_1.00u_BlackKC59
1~clavier:KC_Cherry_MX_R2-R3_ISO_Enter_BlackKC58
1~clavier:Stabilizer_6.25uST6
1~clavier:KC_Cherry_MX_R1_1.00u_RedKC17
1~clavier:KC_Cherry_MX_R4_6.25u_BlackKC106
1~clavier:SW_Cherry_MX_6.25u_PCBSW98

Questions

How big is the Clavier PCB?

It measures 431.5 × 125.5 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Clavier use?

344 parts, built around the LFE5U-25F-6BG256C, TLV62569DBVR-TP, CH347F and GL852G-OHY60. 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 Clavier KiCad files?

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

Can I use the Clavier design in my own project?

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

Similar boards

  • 4 layers63 × 20 mmTwinusb.kicad, the printed circuit board in 3D

    Twinusb.kicad

    s-t-e-f-a-n/twinusb

    H₂H³ | Twin USB Host Switch × Triple USB Hub (with OLED Telemetry)

    120 parts7
  • 4 layers130 × 105 mmHomeDeck, the printed circuit board in 3D

    HomeDeck

    Kilan777/HomeDeck

    Jarvis HomeDeck: a Raspberry Pi CM4 carrier board and voice-assistant software for a 7-inch smart display (KiCad hardware, generated from Python, plus the Python/JS assistant)

    228 parts1
  • 6 layers90 × 90 mmClock odial, the printed circuit board in 3D

    Clock odial

    JulienKluge/Clock-odial

    Clock-odial is a PCB featuring a ECP5 fpga for frequency/clock signal processing

    370 partsMIT
  • 4 layers54.8 × 45.1 mmFPGA SDRAM, the printed circuit board in 3D

    FPGA SDRAM

    Rahul9-spb/FPGA-1

    A compact 4-layer FPGA development board based on the Lattice LFE5U-25F-6BG256C, designed to explore high-speed PCB design, FPGA hardware, memory interfaces, and signal integrity practices.

    126 parts
  • 4 layers33 × 11 mmWch probe, the printed circuit board in 3D

    Wch probe

    korken89/wch-probe

    CH347F-based JTAG & SWD debug probe

    36 parts1CERN-OHL-P-2.0
  • 2 layers80.1 × 70 mmUSB TO UART SPI I2C, the printed circuit board in 3D

    USB TO UART SPI I2C

    LuizFernandoOliveira/Conversor-USB-UART-SPI-I2C-JTAG

    This work is licensed under a [Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International License][cc-by-nc-nd].

    76 parts
  • 4 layers66.2 × 30.9 mmUni dap, the printed circuit board in 3D

    Uni dap

    Reutronix/uni-dap-v3

    UniDAP hardware repo

    149 parts