

Wesk
[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.mdWESK — 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
- Features
- Layout
- Bill of Materials
- PCB
- 3D-Printed Case
- Build Guide
- Firmware (ZMK)
- Repository Structure
- License
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:
| Layer | Activation | Description |
|---|---|---|
| Base | — | Default AZERTY layout |
| Lower | FN | Numbers, symbols |
| Raise | OPT | Navigation, media |
| Adjust | CMD | Bluetooth profiles, system |
[screenshot — layer map / ZMK keymap diagram]
Bill of Materials
Per Half (× 2 for full keyboard)
| Component | Description | Qty | Where to Buy |
|---|---|---|---|
| Nice!Nano v2 clone | nRF52840-based BLE microcontroller | 1 | AliExpress |
| Kailh Choc v2 Red | Low-profile linear switch | 28 | [vendor] |
| NuPhy COAST Twilight | Low-profile Choc v2 keycaps | 28 | NuPhy |
| SOD-123 diode | 1N4148W SMD diode | 28 | AliExpress / LCSC |
| Rotary encoder | EC11 or equivalent | 1 | AliExpress |
| Encoder knob | To fit encoder shaft | 1 | AliExpress |
| LiPo battery 500 mAh | 3.7V, must fit case recess | 1 | AliExpress |
| On/off switch | MSK-12C02 or equivalent | 1 | AliExpress |
| Custom PCB | KiCad project, ordered from JLCPCB | 1 | JLCPCB |
| M2 screws | For case assembly | ~6 | Hardware store |
| M2 heat-set inserts | For PETG case | ~6 | AliExpress |
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
- Export Gerbers from KiCad: File → Fabrication Outputs → Gerbers
- Zip the
GRB/folder - Upload to jlcpcb.com
- 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)
| Parameter | Value |
|---|---|
| Material | PETG |
| Layer height | 0.2 mm |
| Infill | 20–30% |
| Wall count | 3 |
| Supports | Yes (for encoder cutout) |
| Bed adhesion | Brim 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
- Inspect the PCB for any manufacturing defects
- Clean with isopropyl alcohol if needed
[screenshot — bare PCB]
Step 2 — Solder the diodes
- Orient all SOD-123 diodes correctly — the cathode line must match the PCB silkscreen
- Solder all 28 diodes using a fine-tip iron and no-clean flux
[screenshot — diodes soldered, close-up]
Step 3 — Solder the rotary encoder
- Place the EC11 encoder in its footprint
- Solder the 5 pins; the mechanical legs can be soldered or clipped flush
[screenshot — encoder soldered]
Step 4 — Solder the power switch
- Place the MSK-12C02 switch in its footprint
- Solder carefully — pads are small
Step 5 — Flash and test the microcontroller
- Flash ZMK firmware to the Nice!Nano clone before soldering it in (easier to re-flash)
- See the Firmware section for instructions
- Test USB connection and BLE pairing
Step 6 — Solder the microcontroller
- Use low-profile machine pin sockets if you want the MCU to be removable (recommended)
- Solder the sockets to the PCB, then seat the MCU
[screenshot — MCU seated on PCB]
Step 7 — Connect the battery
- Solder or plug the JST connector from the LiPo battery
- Double-check polarity before connecting — reversed polarity will destroy the MCU
Step 8 — Install switches
- Snap the Kailh Choc v2 switches into the PCB from the top
- Solder all 28 switch pins on the bottom
[screenshot — switches installed]
Step 9 — Install keycaps
- Press the NuPhy COAST Twilight keycaps onto the switches
[screenshot — keycaps installed, half complete]
Step 10 — Assemble the case
- Press M2 heat-set inserts into the bottom shell with a soldering iron
- Place the battery into the battery pocket
- Lower the PCB assembly onto the standoffs
- Secure with M2 screws
- 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
- Install the ZMK development environment
- Or use ZMK's GitHub Actions build (no local toolchain needed)
Repository structure (ZMK)
Sources/
└── config/
├── wesk.keymap # Key bindings and layers
├── wesk.conf # Bluetooth, battery, sleep settings
└── west.yml # ZMK module dependenciesBuilding the firmware
Using GitHub Actions (recommended):
- Fork the ZMK repo and add your config files
- Push — GitHub Actions builds the
.uf2files automatically - Download the artifacts from the Actions tab
Flashing
- Put the Nice!Nano clone into bootloader mode: double-tap the reset button
- It appears as a USB drive (
NICENANO) - Drag and drop the
.uf2file onto the drive - 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
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.mdLicense
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 29 | D | Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D1, 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_REV | S1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +12 |
| 4 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4 |
| 2 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2 |
| 1 | BATIN | Connector_Wire:SolderWirePad_1x01_SMD_2x4mm | TP1 |
| 1 | BATOUT | Connector_Wire:SolderWirePad_1x01_SMD_2x4mm | TP2 |
| 1 | LOGO | ErgoKeyboard:LOGO | 18NELLI |
| 1 | ON/OFF | Button_Switch_SMD:SW_SPDT_Shouhan_MSK12C02 | SW2 |
| 1 | RESET | PCM_marbastlib-xp-choc:SMD PAD 3X3X1.5MM | SW1 |
| 1 | RotaryEncoder_Switch | PCM_marbastlib-various:ROT_Alps_EC11E-Switch | SW3 |
| 1 | SuperMini nRF52840 | PCM_marbastlib-xp-promicroish:SuperMini_nRF52840_AH_USBup | U2 |
Similar boards
- 2 layers61.8 × 73.2 mm

- 2 layers47.3 × 52.8 mm

- 2 layers74.3 × 52.8 mm

- 2 layers141 × 88 mm

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 layers38.1 × 101.6 mm

- 2 layers90 × 100 mm

- 2 layers90 × 140 mm

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 mm

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.