Skip to the content
2 layers149.9 × 103 mmWesk, the printed circuit board in 3D

[screenshot — hero photo of both halves side by side]

Size
149.9 × 103 mm
Copper layers
2
Thickness
1.6 mm
Parts
70
Nets
58
Pads
588
Tracks, vias
1,020, 182
Pours
618
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 May 2026
Updated
14 May 2026

Overview

Wesk is an open-source printed circuit board by 18nelli18, from the 18nelli18/Wesk repository on GitHub. It is a 2-layer board of 149.9 × 103 mm with 70 parts on 58 nets, routed with 1,020 tracks and 182 vias.

Its parts include 31 switches, 29 diodes, 2 capacitors and 1 IC. It belongs with the nRF52 and nRF5x boards of this library.

README

README.md

WESK — Wireless Ergonomic Splitted Keyboard

A fully custom, open-source wireless split keyboard built from scratch — custom PCB, hand-picked components, 3D-printed case, and a bespoke AZERTY layout.

[screenshot — hero photo of both halves side by side]


Table of Contents


Overview

WESK (Wireless Ergonomic Splitted Keyboard) is a handcrafted 56-key wireless split keyboard designed for ergonomics and daily productivity. Every part of it was chosen or made intentionally: the PCB was designed in KiCad and manufactured at JLCPCB, the case is 3D-printed in PETG, and the firmware runs on ZMK. Both halves communicate over Bluetooth and are completely cable-free during use.

[screenshot — both halves on a desk, keycaps on]


Features

  • 56 keys — 28 per half, fully symmetric split layout
  • Wireless — Bluetooth via ZMK, no cable between halves
  • Low-profile — Kailh Choc v2 Red switches + NuPhy COAST Twilight keycaps
  • Custom PCB — designed in KiCad, manufactured by JLCPCB
  • 1 rotary encoder per half — for volume, scroll, or any mapped action
  • 500 mAh LiPo battery per half — integrated into the 3D-printed case
  • PETG case — fully 3D-printed, designed to house all components
  • Custom AZERTY layout — tailored key positions and layers

Layout

The layout is a custom AZERTY split, inspired by ergonomic principles (staggered columns, thumb cluster). Each half has 28 keys + 1 rotary encoder.

Left Half — Base Layer

[screenshot — your layout diagram, left half]

Right Half — Base Layer

[screenshot — your layout diagram, right half]

Additional Layers

WESK uses multiple ZMK layers accessible via the FN, OPT, and CMD thumb keys:

LayerActivationDescription
Base—Default AZERTY layout
LowerFNNumbers, symbols
RaiseOPTNavigation, media
AdjustCMDBluetooth profiles, system

[screenshot — layer map / ZMK keymap diagram]


Bill of Materials

Per Half (× 2 for full keyboard)

ComponentDescriptionQtyWhere to Buy
Nice!Nano v2 clonenRF52840-based BLE microcontroller1AliExpress
Kailh Choc v2 RedLow-profile linear switch28[vendor]
NuPhy COAST TwilightLow-profile Choc v2 keycaps28NuPhy
SOD-123 diode1N4148W SMD diode28AliExpress / LCSC
Rotary encoderEC11 or equivalent1AliExpress
Encoder knobTo fit encoder shaft1AliExpress
LiPo battery 500 mAh3.7V, must fit case recess1AliExpress
On/off switchMSK-12C02 or equivalent1AliExpress
Custom PCBKiCad project, ordered from JLCPCB1JLCPCB
M2 screwsFor case assembly~6Hardware store
M2 heat-set insertsFor PETG case~6AliExpress

Note: Order PCBs in batches of 5 (JLCPCB minimum). The Gerber files are in the GRB/ folder.


PCB

The PCB was designed in KiCad and ordered from JLCPCB.

[screenshot — KiCad PCB layout top view] [screenshot — KiCad schematic] [screenshot — received PCBs from JLCPCB]

Key design choices

  • Matrix wiring — standard row/column matrix with SOD-123 diodes for n-key rollover
  • Choc v2 footprints — low-profile switch footprints with proper spacing
  • Rotary encoder footprint — EC11 compatible, placed at thumb cluster corner
  • Battery connector — JST PH 2.0 connector for the LiPo
  • Power switch footprint — MSK-12C02 slide switch inline on the battery positive rail

Ordering from JLCPCB

  1. Export Gerbers from KiCad: File → Fabrication Outputs → Gerbers
  2. Zip the GRB/ folder
  3. Upload to jlcpcb.com
  4. Recommended settings:
    • Layers: 2
    • PCB thickness: 1.6 mm
    • Surface finish: HASL (lead-free)
    • Color: your choice

3D-Printed Case

The case is designed to snugly fit the PCB, microcontroller, battery, and power switch. It consists of a bottom shell and a top plate per half.

[screenshot — CAD render or photo of printed case, top view] [screenshot — case bottom showing battery compartment]

Print settings (recommended)

ParameterValue
MaterialPETG
Layer height0.2 mm
Infill20–30%
Wall count3
SupportsYes (for encoder cutout)
Bed adhesionBrim recommended

PETG is recommended for its durability and slight flex — avoid PLA for keyboard cases as it can crack under screw pressure.

Assembly

  • The battery sits in a recessed pocket in the bottom shell
  • M2 heat-set inserts are pressed into the bottom shell pillars
  • The PCB sits on top of the standoffs and is secured with M2 screws
  • The top plate snaps or screws over the PCB

[screenshot — exploded view or assembly photo]


Build Guide

Follow these steps for one half. Repeat identically for the second half.

Step 1 — Prepare your PCB

  1. Inspect the PCB for any manufacturing defects
  2. Clean with isopropyl alcohol if needed

[screenshot — bare PCB]

Step 2 — Solder the diodes

  1. Orient all SOD-123 diodes correctly — the cathode line must match the PCB silkscreen
  2. Solder all 28 diodes using a fine-tip iron and no-clean flux

[screenshot — diodes soldered, close-up]

Step 3 — Solder the rotary encoder

  1. Place the EC11 encoder in its footprint
  2. Solder the 5 pins; the mechanical legs can be soldered or clipped flush

[screenshot — encoder soldered]

Step 4 — Solder the power switch

  1. Place the MSK-12C02 switch in its footprint
  2. Solder carefully — pads are small

Step 5 — Flash and test the microcontroller

  1. Flash ZMK firmware to the Nice!Nano clone before soldering it in (easier to re-flash)
  2. See the Firmware section for instructions
  3. Test USB connection and BLE pairing

Step 6 — Solder the microcontroller

  1. Use low-profile machine pin sockets if you want the MCU to be removable (recommended)
  2. Solder the sockets to the PCB, then seat the MCU

[screenshot — MCU seated on PCB]

Step 7 — Connect the battery

  1. Solder or plug the JST connector from the LiPo battery
  2. Double-check polarity before connecting — reversed polarity will destroy the MCU

Step 8 — Install switches

  1. Snap the Kailh Choc v2 switches into the PCB from the top
  2. Solder all 28 switch pins on the bottom

[screenshot — switches installed]

Step 9 — Install keycaps

  1. Press the NuPhy COAST Twilight keycaps onto the switches

[screenshot — keycaps installed, half complete]

Step 10 — Assemble the case

  1. Press M2 heat-set inserts into the bottom shell with a soldering iron
  2. Place the battery into the battery pocket
  3. Lower the PCB assembly onto the standoffs
  4. Secure with M2 screws
  5. Route cables neatly and close the case

[screenshot — finished half, side view]


Firmware (ZMK)

WESK runs ZMK Firmware — open-source, BLE-native, and designed for wireless split keyboards.

Prerequisites

Repository structure (ZMK)

text
Sources/
└── config/
    ├── wesk.keymap       # Key bindings and layers
    ├── wesk.conf         # Bluetooth, battery, sleep settings
    └── west.yml          # ZMK module dependencies

Building the firmware

Using GitHub Actions (recommended):

  1. Fork the ZMK repo and add your config files
  2. Push — GitHub Actions builds the .uf2 files automatically
  3. Download the artifacts from the Actions tab

Flashing

  1. Put the Nice!Nano clone into bootloader mode: double-tap the reset button
  2. It appears as a USB drive (NICENANO)
  3. Drag and drop the .uf2 file onto the drive
  4. Repeat for the second half with the right-side firmware

Bluetooth pairing

  • The left half is the central and connects to your computer
  • The right half connects to the left half
  • Hold the Bluetooth profile key to switch between up to 5 paired devices

[screenshot — ZMK keymap editor or keymap diagram]


Repository Structure

text
Wesk/
├── GRB/                  # Gerber files for PCB manufacturing (JLCPCB)
├── Sources/              # ZMK firmware config files
├── Wesk.kicad_pcb        # KiCad PCB layout
├── Wesk.kicad_sch        # KiCad schematic
├── Wesk.kicad_pro        # KiCad project file
├── PCB.step              # 3D STEP export of the PCB
├── .step                 # 3D STEP file (case or assembly)
├── LOGO.kicad_mod        # Custom logo footprint
├── LOGO.kicad_sym        # Custom logo symbol
├── DRC.rpt               # KiCad Design Rule Check report
└── README.md

License

This project is open-source. Hardware design files (KiCad, Gerbers, STEP) and firmware configuration are released under the MIT License.

Feel free to build your own WESK, modify the design, and share your builds!


Built with ❤️ and too much solder.

Parts

70
QtyValueFootprintReferences
29DDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +13
28~PCM_marbastlib-xp-choc:SW_choc_v2_HS_CPG135001S30_1u_REVS1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +12
4MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
2100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2
1BATINConnector_Wire:SolderWirePad_1x01_SMD_2x4mmTP1
1BATOUTConnector_Wire:SolderWirePad_1x01_SMD_2x4mmTP2
1LOGOErgoKeyboard:LOGO18NELLI
1ON/OFFButton_Switch_SMD:SW_SPDT_Shouhan_MSK12C02SW2
1RESETPCM_marbastlib-xp-choc:SMD PAD 3X3X1.5MMSW1
1RotaryEncoder_SwitchPCM_marbastlib-various:ROT_Alps_EC11E-SwitchSW3
1SuperMini nRF52840PCM_marbastlib-xp-promicroish:SuperMini_nRF52840_AH_USBupU2

Similar boards

  • 2 layers61.8 × 73.2 mmBrain board STM32F407, the printed circuit board in 3D

    Brain board STM32F407

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    70 parts1.2k
  • 2 layers47.3 × 52.8 mmFinalv1, the printed circuit board in 3D

    Finalv1

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    70 parts915
  • 2 layers74.3 × 52.8 mmBq3060, the printed circuit board in 3D

    Bq3060

    iam4722202468/ThinkpadBattery

    Open source Thinkpad T420 battery design

    70 parts304MIT
  • 2 layers141 × 88 mmErgoSNM Keyboard Right Prototype 1, the printed circuit board in 3D

    ErgoSNM Keyboard Right Prototype 1

    siderakb/ergo-snm-keyboard

    ErgoSNM is a split ergonomic keyboard integrated with trackball, wireless is in beta

    70 parts172CERN-OHL-P-2.0
  • 2 layers90 × 100 mmAlu, the printed circuit board in 3D

    Alu

    imihajlow/ccpu

    A 8-bit computer made of 74xx series logic gates and memory ICs.

    70 parts145
  • 2 layers90 × 140 mmDrumkid, the printed circuit board in 3D

    Drumkid

    mattybrad/drumkid

    Version 4 was the first successful working design, with full code, schematics, Gerbers, etc available on GitHub.

    70 parts137
  • 2 layers152.5 × 117.5 mmKeytartouch, the printed circuit board in 3D

    Keytartouch

    cnlohr/cnhardware

    My dumping grounds for all my kicad projects and random hardware bringup.

    70 parts114

Questions

How big is the Wesk PCB?

It measures 149.9 × 103 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Wesk use?

70 parts. 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 Wesk KiCad files?

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

Can I use the Wesk design in my own project?

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