Skip to the content
PCBKitNew board
2 layers321.8 × 112.3 mmHexKey60, the printed circuit board in 3D

Just a custom mechanical keyboard project designed by me

Size
321.8 × 112.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
206
Nets
173
Pads
836
Tracks, vias
3,601, 467
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Jul 2026
Updated
8 Sep 2026

Overview

HexKey60 is an open-source printed circuit board by HexFud, from the HexFud/HexKey60 repository on GitHub. It is a 2-layer board of 321.8 × 112.3 mm with 206 parts on 173 nets, routed with 3,601 tracks and 467 vias.

It is built around the SK6812MINI-E. Its parts include 136 diodes, 68 switches and 1 connector. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

HexKey60

HexKey60

Just a custom mechanical keyboard project designed by me

Specs

  • Layout: 68 keys, 15 columns x 5 rows matrix, ANSI 65% (up arrow between right Shift and Delete, left/down/right arrows on the bottom row, Fn next to AltGr)
  • Microcontroller: Raspberry Pi Pico (RP2040), mounted under the spacebar
  • LEDs: SK6812MINI-E, one per key, same color across the whole board
  • Matrix diodes: 1N4148, one per switch
  • USB: routed from the microcontroller (under the spacebar) up to the connector at the top of the case via a Treedix USB-C breakout

Why the Pico and not something smaller

Originally I was going for something more compact (Orpheus Pico, then XIAO RP2040, then RP2040-Zero) because the standard Pico seemed too bulky to fit between the switches. That problem went away once I moved the microcontroller under the spacebar, where there's way more free space, at that point the regular Pico made more sense, i had space to place it and it has enough pins to fit evry component.

Matrix

  • Rows: GPIO0-GPIO4
  • Columns: GPIO5-GPIO19
  • Every switch has its own diode to prevent ghosting

LEDs

Driven via PIO on GPIO21.

LED power comes straight from VBUS (5V), not from the Pico's 3.3V regulator, so the current spikes from 68 LEDs at once don't stress it. Max brightness needs to stay capped in firmware.

USB

The Pico sits under the spacebar, away from the case edge where the connector needs to come out. D+/D- are hand-wired to test points TP2/TP3 on the back of the Pico (not routed through the PCB), going to a Treedix USB-C breakout mounted in the case. CC1/CC2 on the breakout already have pull-down resistors built in, so they're left unconnected.

Plate

The plate and the case are fully 3d printed

Firmware

Live control from a PC over Raw HID (tastiera68_controller.py, requires pip install hidapi):

  • change LED color on the fly (persistent, saved to the Pico's emulated EEPROM)
  • remap any key without reflashing (also persistent, saved to a dedicated EEPROM area)

Building the firmware

1. Get QMK

If you don't already have a QMK checkout:

text
git clone https://github.com/qmk/qmk_firmware.git
cd qmk_firmware

Follow QMK's own setup guide once (https://docs.qmk.fm/#/newbs_getting_started) to install the build environment (Python, the ARM toolchain, etc.) if you haven't done that before — it's a one-time setup per PC.

2. Drop this keyboard into the QMK tree

Copy the whole HexKey60 folder into qmk_firmware/keyboards/, so you end up with:

text
qmk_firmware/
  keyboards/
    HexKey60/
      info.json
      keymaps/
        default/
          keymap.c
          rules.mk

3. Compile

From the qmk_firmware root:

text
qmk compile -kb HexKey60 -km default

If everything is set up correctly this produces a file called something like HexKey60_default.uf2 in the qmk_firmware root folder.

If the build fails on the EEPROM driver lines in rules.mk (EEPROM_DRIVER / WEAR_LEVELING_DRIVER), check QMK's current docs for the exact driver name used for RP2040 in your checkout's version — the name has changed between QMK releases.

4. Put the Pico into bootloader mode

The RP2040 shows up as a USB mass-storage drive (RPI-RP2) when it's ready to receive new firmware:

  1. Unplug the keyboard.
  2. Hold down the BOOTSEL button on the Pico (the small white button on the board itself).
  3. While still holding it, plug the USB cable back in.
  4. Let go of the button — a drive called RPI-RP2 should appear on your computer, the same way a USB flash drive would.

5. Flash

Just drag and drop the .uf2 file you built in step 3 onto the RPI-RP2 drive. The Pico reboots on its own as soon as the copy finishes, and the keyboard should now be running your firmware.

If qmk flash is set up on your system instead, this also works and does the copy for you:

text
qmk flash -kb HexKey60 -km default

Parts

206
QtyValueFootprintReferences
681N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24 +52
68SK6812MINI-Efootprints:SK6812MINI-E_fixedD100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115 +52
68SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +52
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1USB_C_Plug_USB2.0usbc:usbc boardP1

Questions

How big is the HexKey60 PCB?

It measures 321.8 × 112.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the HexKey60 use?

206 parts, built around the SK6812MINI-E. 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 HexKey60 KiCad files?

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

Can I use the HexKey60 design in my own project?

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

Similar boards

  • 4 layers234 × 84 mmMain panel, the printed circuit board in 3D

    Main panel

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    234 parts3kApache-2.0
  • 4 layers180.8 × 300.3 mmDilemma, the printed circuit board in 3D

    Dilemma

    Bastardkb/Dilemma

    The Dilemma is a vertical stagger low-profile keyboard with mods.

    383 parts590
  • 4 layers48 × 32 mmFlatSat, the printed circuit board in 3D

    FlatSat

    Pwnsat/FlatSat

    Flatsat v1.0 is a hardware based platform for aerospace cybersecurity research

    106 parts575GPL-2.0
  • 2 layersDemo, the printed circuit board in 3D

    Demo

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    48 parts547GPL-3.0
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    62 parts517GPL-2.0
  • 4 layers82.5 × 39.4 mmV4head, the printed circuit board in 3D

    V4head

    makerforgetech/modular-biped

    An open source framework for creating a bipedal modular companion robot.

    26 parts493GPL-3.0
  • 2 layers115.7 × 95.7 mmFifi split keeb, the printed circuit board in 3D

    Fifi split keeb

    raychengy/fifi_split_keeb

    Fifi Keyboard 🐶 ⌨️

    66 parts334
  • 4 layers70 × 54 mmPicoLab, the printed circuit board in 3D

    PicoLab

    CoretechR/PicoLab

    Web-GUI Embedded Multitool

    285 parts327GPL-3.0