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

Low profile split keyboard with Corne 42 Layout and Cerry ULP switches. (6mm height)
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.
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.

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.
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.
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:
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.
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.
| Name | Specification | Notes |
|---|---|---|
| Switches | Cherry ULP or Kailh PG1316S | You can find more about the ULP at Cherry_MX_ULP |
| Keycaps | 1U Kailh PG1316S Keycaps | — |
| Diodes | 1N4148W in SOD-123 package | — |
| Microcontroller | SuperMini NRF52840 | Compatible with nice!nano V2 and alternatives (GitHub link) |
| Power switch | 7Pin Mini Slide Switch | — |
| Reset button | 3x6x4.3mm push button | Will change to an smd one after testing samples |
| Battery | ~100mAh 401525 LiPo or smaller | Prototype photos show 750mAh HiV battery due to shipping delays |
| Name | Specification | Notes |
|---|---|---|
| Non-slip | 1 mm Silicone Rubber Strip, Self Adhesive | Increases overall thickness to 6.8mm |
| Kapton tape | Polyimide insulating tape | To cover through-hole components on bottom of PCB |
| Qty | Value | Footprint | References |
|---|---|---|---|
| 42 | D | kbd:D3_SMD_v2 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26 |
| 42 | SW_PUSH | PG1316:CPG1316S01D02_kailhspecsheet_mikefive | SW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +26 |
| 8 | VAL** | Panelization.pretty-master: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, mouse-bite-2mm-slot, mouse-bite-2mm-slot |
| 2 | PCM12SMTR | PCM12SMTR:SW_PCM12SMTR | SW43, SW44 |
| 2 | ProMicro | kbd:ProMicro_v3 | U1, U2 |
| 2 | SW_PUS | kbd:ResetSW_1side | RSW1, RSW2 |
| 2 | ~ | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | U3, U5 |
| 1 | LOGO | Bongo:15mm bongo1_1 | G*** |
| 1 | LOGO | Bongo:15mm bongo1 | G*** |
It measures 275.5 × 105.6 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
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).

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

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…

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

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

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.

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.

antmicro/d1600e-psu-breakout
Breakout board for DELL D1600E-S0 Power Supply Unit
