

Keyboard
Cool HE keyboard i designed myself!
- Size
- 285 × 94.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 169
- Nets
- 107
- Pads
- 600
- Tracks, vias
- 1,565, 153
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 10 Oct 2026
- Updated
- 2 Nov 2026
Overview
Keyboard is an open-source printed circuit board by FishyNavi, from the FishyNavi/keyboard repository on GitHub. It is a 2-layer board of 285 × 94.6 mm with 169 parts on 107 nets, routed with 1,565 tracks and 153 vias.
It is built around the STM32G431CBT6, SC4702SO-N-TR and 74HC4051, with the AP7361C-33E and GT-TZ084B-H015-L1 among its other parts. Its parts include 63 switches, 18 capacitors, 10 ICs, 3 resistors and 2 connectors. It belongs with the keyboards and input boards and the STM32 boards of this library.
Main components
5STM32G431CBT6
LQFP-48(7x7)-40℃~+85℃ 1.71V~3.6V 128KB 12bit 12bit 170MHz 32 Bit 32KB 38 ARM Cortex-M4F Built-in FLASH LQFP-48(7x7) Microcontrollers (MCU/MPU/SOC) ROHSSTMicroelectronicsMicrocontrollers (MCU/MPU/SOC)SC4702SO-N-TR
SOT-23-3L-40℃~+105℃ 0.04%/℃ 2.5V~5.5V 2mV/Gs 700uA ±0.5% ±72.5mT SOT-23-3L Linear Hall Sensors ROHSSemimentLinear Hall Sensors74HC4051
SOP-16-40℃~+85℃ 1 170MHz 28ns 29ns 3V~9V 5ns 5pF 80Ω 8:1 SOP-16 Analog Switches, Multiplexers ROHSWuxi I-core ElecAnalog Switches, MultiplexersAP7361C-33E
SOT-223-40℃~+85℃@(Ta) 1 1A 3.3V 340mV@(1A) 6V 75dB@(1kHz) 80uA Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown、Enable control Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsGT-TZ084B-H015-L1
SMD-4P,5.2x5.2mm-40℃~+85℃ 1.5mm 100,000 cycles 12V 2.5N 5.2mm 5.2mm 50mA No Round Button SMD(SMT) Tab SPST Surface Mount,Vertical Without Bracket Yellow SMD-4P,5.2x5.2mm Tactile Switches ROHSG-SwitchTactile Switches
README
README.mdHackyboard!
Overview
They main reason of why this was made is the fact that i play osu. My laptop's keyboard probably doesn't like being smashed at the rate of 12cps so one day i thought that it would be nice to have something to click on.
I also thought that i should make a keyboard just because i can(and for various other reasons). Routing was kinda time consuming and i tried to minimize the interference between traces.
I will update this and share the result once i build it!
All of the stuff along with links can be found in bom.md

PCB
pcb/
The PCB was designed in KiCAD 10.
- The PCB is designed for Cherry magnetic switches.
- The sensors' measurement range is ~82.5mT.
- The MCU that's used is STM32G431CBT6
CASE
case/
The case was designed in oneshape.
- Fits with the pcb (wow)
- Looks simple
It's nothing very special actually. Bottom part, pcb and switch plate are sandwiched together and then it is sandwiched again with (another) bottom and top parts of the case. You can see it on the image on top.
All of the parts except the switch plate are designed to be 3d printed. The switch plate should be machined with cnc from 1.5 aluminium plate.
[!NOTE] The switch plate can be cut with lser instead but then you will have to use diffrent kind od screws
About screws, the case should be assembled using M2 screws along with M2 heat inserts. Female to female spacers are required in between pcb and switch plate.
FIRMWARE
./firmware
The firmware is libhmk
by peppapighs, which is licensed under GPL-3.0. Changes and additions in
firmware/ (including the MCU support) will be therefore also
released under GPL-3.0, see firmware/LICENSE.
For now it just is. I didn't test it yet
Parts
169| Qty | Value | Footprint | References |
|---|---|---|---|
| 61 | SC4702SO | Keyboard:SOT-23-3_HE_SENSOR | S1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +45 |
| 46 | SW_Cherry_MX_PCB_1.00u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.00u_no_pins | REF1, REF2, REF10, REF11, REF12, REF13, REF16, REF17, REF18, REF19, REF20, REF21, REF22, REF23, REF24, REF25 +30 |
| 14 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C4, C5, C8, C11, C12, C13, C14, C15, C16, C17, C18 |
| 8 | 74HC4051 | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U3, U4, U5, U6, U7, U8, U9, U10 |
| 7 | SW_Cherry_MX_PCB_1.25u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.25u_no_pins | REF54, REF55, REF56, REF58, REF59, REF60, REF61 |
| 3 | 4.7uF | Capacitor_SMD:C_0805_2012Metric | C7, C9, C10 |
| 2 | 5K1 | Resistor_SMD:R_0805_2012Metric | R2, R3 |
| 2 | GT-TZ084B-H015-L1 | Button_Switch_SMD:SW_SPST_TL3342 | SW1, SW2 |
| 2 | SW_Cherry_MX_PCB_1.50u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.50u_no_pins | REF15, REF28 |
| 2 | SW_Cherry_MX_PCB_2.25u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.25u_no_pins | REF41, REF42 |
| 1 | 10K | Resistor_SMD:R_0805_2012Metric | R1 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C6 |
| 1 | AP7361C-33E | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U1 |
| 1 | Conn_01x05_Socket | Connector_Wire:SolderWire-1sqmm_1x05_P5.4mm_D1.4mm_OD2.7mm | J1 |
| 1 | Korean Hroparts Elec TYPE-C-31-M-12 | Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASV | J2 |
| 1 | LOGO | LOGO | G*** |
| 1 | STM32G431CBT6 | Package_QFP:LQFP-48_7x7mm_P0.5mm | U2 |
| 1 | SW_Cherry_MX_PCB_1.75u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_1.75u_no_pins | REF29 |
| 1 | SW_Cherry_MX_PCB_2.00u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.00u_no_pins | REF14 |
| 1 | SW_Cherry_MX_PCB_2.75u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_2.75u_no_pins | REF53 |
| 1 | SW_Cherry_MX_PCB_6.25u_no_pins | PCM_Switch_Keyboard_Cherry_MX:SW_Cherry_MX_PCB_6.25u_no_pins | REF57 |
The 158 most common of 169 parts.
Questions
How big is the Keyboard PCB?
It measures 285 × 94.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Keyboard use?
169 parts, built around the STM32G431CBT6, SC4702SO-N-TR, 74HC4051 and AP7361C-33E. 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 KiCad files?
From the FishyNavi/keyboard repository on GitHub, at the commit this page was made from: the board is pcb/keyboard.kicad_pcb and its schematic pcb/keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Keyboard design in my own project?
Its repository states no licence, so its author keeps all rights: ask FishyNavi before reusing the design.
Similar boards
- 2 layers

- 4 layers42 × 42 mm

- 2 layers37.1 × 39.5 mm

Perdican V1
Gabouin/perdican
A shipped, polished and polyvalent 4cm long IMU-equipped STM32 devboard with cool renders
55 parts19MIT - 4 layers80 × 50.5 mm

- 4 layers80 × 60 mm

CAN ECU
dhruxraj/stm32-can-ecu
A compact, "ECU-style" CAN node for learning and prototyping automotive-type embedded software. It has an STM32G4 MCU, a CAN transceiver with protection and switchable termination, a 6-axis IMU, a protected 8-18 V…
77 parts2 - 6 layers170 × 172.2 mm

Esc rev b
iamdarshg/drone-arm
Reworked cheaper, maybe faster but less redundant drone controller.
681 parts2 - 2 layers23.4 × 40.3 mm

- 4 layers71.1 × 50.8 mm

Stm32 audio class device
IsaacHo072/STM32-USB-Microphone-Interface
USB Audio Class Device with STM32G431CB and TLV320ADC6120
64 parts1