Skip to the content
PCBKitNew board
2 layers275.5 × 105.6 mmULK, the printed circuit board in 3D

Low profile split keyboard with Corne 42 Layout and Cerry ULP switches. (6mm height)

Size
275.5 × 105.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
102
Nets
90
Pads
478
Tracks, vias
618, 63
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
16 Jun 2025
Updated
24 Apr 2026

Overview

ULK is an open-source printed circuit board by Goga64, from the Goga64/ULK repository on GitHub, published under the MIT licence. It is a 2-layer board of 275.5 × 105.6 mm with 102 parts on 90 nets, routed with 618 tracks and 63 vias.

It is built around the PCM12SMTR. Its parts include 44 switches, 42 diodes and 4 ICs. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

ULK

Low profile split keyboard with Corne 42 Layout and Cherry ULP switches. Made to be used on top of a laptop keyboard to provide the ultimate split experience on the go.

Contents

169full Gallery/ulk_sl_left_crop.jpg

Description

Switches

Sound

I have recorded some samples. For all of them the keyboard was on a mousepad.

I prefer the sound of the ULP Click, although it is still not as nice as the full size switches.

Feel

The Cherry ULP feel quite satifying to type on, however they are a bit heavy coming in at 65g. The PG1316s though I'm not as impressed by, I got the 35g version which is very light, it makes the typing feel effortless, it doesn't really feel like anything. With it I also struggle with typos while writing as extra letters will just appear out of nowhere. It is definetry something I need to get used to before I can give a better oppinion. I will probably want to try the 60g version of them in the future and if they made a 50g version I would build another keeb with them immediately.

Firmware

The non-solar versions use standard Conre ZMK firmware.

The solar version however is diodeless, thus it is direct wired. So you should use my a modified verion of the MC Technology's zmk-config GitHub link

The firmware was one of the biggest roadblock in getting the whole thing working. As it has 21 keys per side it uses all of the GPIO avaliable on a ProMicro including three marked purple here:

Screenshot 2026-04-16 212617

As they are not included in the original pinout on the main ZMK branch I needed fork and change the pinout to include them.

I have also not wired up both sides as a mirror of each other on the PCB which has lead to a weird keymap_transform.

Things to do:

  • Add a 3x5 option.
  • Update BOM for sl version
  • Solar writeup

Gallery

More images can be found in the Gallery folder. They were taken on a Cannon EOS5D mkii (2008) and an EF 24-70mm F/2.8 USM lens.

I had a lot of fun focus stacking them for the best sharpness.

BOM

Main Components (for the non solar version)

NameSpecificationNotes
SwitchesCherry ULP or Kailh PG1316SYou can find more about the ULP at Cherry_MX_ULP
Keycaps1U Kailh PG1316S Keycaps—
Diodes1N4148W in SOD-123 package—
MicrocontrollerSuperMini NRF52840Compatible with nice!nano V2 and alternatives (GitHub link)
Power switch7Pin Mini Slide Switch—
Reset button3x6x4.3mm push buttonWill change to an smd one after testing samples
Battery~100mAh 401525 LiPo or smallerPrototype photos show 750mAh HiV battery due to shipping delays

Optional Components

NameSpecificationNotes
Non-slip1 mm Silicone Rubber Strip, Self AdhesiveIncreases overall thickness to 6.8mm
Kapton tapePolyimide insulating tapeTo cover through-hole components on bottom of PCB

Inspirations

Parts

102
QtyValueFootprintReferences
42Dkbd:D3_SMD_v2D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26
42SW_PUSHPG1316:CPG1316S01D02_kailhspecsheet_mikefiveSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +26
8VAL**Panelization.pretty-master:mouse-bite-2mm-slotmouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot, mouse-bite-2mm-slot
2PCM12SMTRPCM12SMTR:SW_PCM12SMTRSW43, SW44
2ProMicrokbd:ProMicro_v3U1, U2
2SW_PUSkbd:ResetSW_1sideRSW1, RSW2
2~Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalU3, U5
1LOGOBongo:15mm bongo1_1G***
1LOGOBongo:15mm bongo1G***

Questions

How big is the ULK PCB?

It measures 275.5 × 105.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ULK use?

102 parts, built around the PCM12SMTR. 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 ULK KiCad files?

From the Goga64/ULK repository on GitHub, at the commit this page was made from: the board is KiCad/ULK_pg1316s_Stealth_Silkscreen/ULK.kicad_pcb and its schematic KiCad/ULK_pg1316s_Original_Silkscreen/ULK.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ULK design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from Goga64/ULK

2
  • 2 layers275.5 × 105.6 mmULK, the printed circuit board in 3D

    ULK

    Goga64/ULK

    Low profile split keyboard with Corne 42 Layout and Cerry ULP switches. (6mm height)

    124 parts58MIT
  • 2 layers275.5 × 105.6 mmULK, the printed circuit board in 3D

    ULK

    Goga64/ULK

    Low profile split keyboard with Corne 42 Layout and Cerry ULP switches. (6mm height)

    102 parts58MIT

Similar boards

  • 2 layers277.2 × 107.5 mmCorne V4 Pro Micro Edition, the printed circuit board in 3D

    Corne V4 Pro Micro Edition

    klouderone/CorneV4ProMicroEdition

    The Corne V4 with Pro Micro Micocontrollers, made specifically for beginners and support for wireless microcontrollers

    112 parts208CC-BY-4.0
  • 2 layers97.6 × 78.2 mmTired Seagull, the printed circuit board in 3D

    Tired Seagull

    klouderone/SeagullMacropad

    The Seagull Macropad is based off the Rhino Pad, that supports both MX and Choc switches. The Macropad features an aesthetic but functional diode layout, an encoder, and pads for a battery and battery switch for…

    38 parts31
  • 2 layers334.7 × 118.8 mmSplit, the printed circuit board in 3D

    Split

    tedraykov/spliteo

    Ergonomic split keyboard with a 3x6 matrix layout and a 4 key thumb cluster.

    102 parts31
  • 2 layers240.7 × 110.1 mmKiwi 36, the printed circuit board in 3D

    Kiwi 36

    klouderone/Kiwi36-Split

    A 36 Key Split Keyboard for beginners packed full of features, such as USB-C interconnect, an extensive case library, and wireless support

    99 parts23
  • 2 layers64.4 × 42.2 mmSharp ce140f emul v2, the printed circuit board in 3D

    Sharp ce140f emul v2

    ffxx68/Sharp_ce140f_emul

    At the time (I'm talking about mid '80s early '90s), what I thought my Sharp-PC was missing the most was a convenient way to store and load programs.

    54 parts22
  • 2 layers116.3 × 59.2 mmRhino Pad Board V2, the printed circuit board in 3D

    Rhino Pad Board V2

    klouderone/therhinopad

    The Rhino Pad is a compact Macro Pad tailored for Computer-Aided Drawing, with 13 keys and an encoder that can be programmed for any macro in your program.

    31 parts22
  • 4 layers100 × 100 mmD1600e psu breakout board, the printed circuit board in 3D

    D1600e psu breakout board

    antmicro/d1600e-psu-breakout

    Breakout board for DELL D1600E-S0 Power Supply Unit

    237 parts20Apache-2.0
  • 2 layers104 × 127.4 mmShorky21, the printed circuit board in 3D

    Shorky21

    gzowski/shorky21

    Shorky - 21 key game pad with 2 rotary encoders

    57 parts10GPL-3.0