Skip to the content
4 layers340.8 × 104.6 mmNiphar, the printed circuit board in 3D

Niphargus — a slim, indestructible wireless split keyboard. ESP32 + nRF24, wired fallback, and an emergency kit hidden behind the USB port. The successor to the Rouge-Gorge.

Size
340.8 × 104.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
287
Nets
292
Pads
1,224
Tracks, vias
2,869, 569
Pours
13
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
29 Jul 2026
Updated
28 Sep 2026

Overview

Niphar is an open-source printed circuit board by mornepousse, from the mornepousse/Niphargus repository on GitHub, published under the MIT licence. It is a 4-layer board of 340.8 × 104.6 mm with 287 parts on 292 nets, routed with 2,869 tracks and 569 vias.

It is built around the ESP32-S3-WROOM-1-N8, DW01A and HT7833, with the SRV05-4, TP4056-42-ESOP8 and USBLC6-2SC6 among its other parts. Its parts include 78 diodes, 73 resistors, 54 switches, 30 capacitors and 19 ICs. It belongs with the keyboards and input boards and the ESP32 and RISC-V boards of this library.

Main components

12

README

README.md

Niphargus

Niphargus

The cave shrimp: blind, discreet, indestructible.
La crevette des cavernes : aveugle, discrète, indestructible.

Niphargus — first assembled units, top view

Niphargus — bottom view, PCB through the polycarbonate plate

First assembled units, September 2026. Working on battery and USB, with a few hand-fixes on the mechanics — see the bench notes.
Premiers exemplaires montés, septembre 2026. Fonctionnels sur batterie et USB, avec quelques rattrapages mécaniques à la main — voir les notes de banc.

Niphargus PCB v2


English

Niphargus is a thin, unkillable wireless split keyboard.

  • Two self-contained halves — one ESP32-S3-WROOM-1 + nRF24L01+ and a 16340 cell each, matrix scanning in deep sleep (RTC domain), the KeSp dongle on the host side.
  • Firmware — KeSp_firmware (ESP-IDF), shared with the dongle and the other KeSp boards; keymaps are edited with KeSp_controller.
  • Wired fallback — direct USB-C plus a TRRS jack between halves: plugging it back in must be enough. A 5 V handshake on the link makes hot-plug spark-free.
  • ESD hardening throughout — TVS diodes on USB and TRRS, 100 Ω in series on every matrix line, careful ground planes. The static discharge you bring back to the keyboard will no longer crash it.
  • Sharp Memory LCD (right half) for layer and battery status: holds its image at a few µA and never flickers. Azoteq TPS43 trackpad (left half), over I²C.
  • The survival kit — an ESP32-P4 vault behind a CH334R USB hub: multi-ISO boot key, PGP token, storage. It only powers up when the keyboard is plugged in.

A complete redesign of the Rouge-Gorge (v1, 2022), a Jorne / Kyria rev2 derivative that was never built. This repository carries the full history: Rouge-Gorge → rili → Niphargus.

Status (2026-08) — v2 schematic complete and reviewed, board routed, ERC and DRC clean. Case in progress (see below). Firmware in KeSp_firmware.

Français

Niphargus est un clavier split sans fil, fin et increvable.

  • Deux moitiés autonomes — ESP32-S3-WROOM-1 + nRF24L01+ et une batterie 16340 chacune, scan de la matrice en sommeil profond (domaine RTC), dongle KeSp côté hôte.
  • Firmware — KeSp_firmware (ESP-IDF), partagé avec le dongle et les autres claviers KeSp ; la keymap se modifie avec KeSp_controller.
  • Repli filaire — USB-C direct et jack TRRS entre les moitiés : rebrancher doit suffire. Une poignée de main 5 V sur le lien évite les étincelles au branchement à chaud.
  • Robustesse ESD partout — TVS sur USB et TRRS, 100 Ω série sur chaque ligne de matrice, plans de masse soignés. La décharge que vous ramenez au clavier ne le plantera plus.
  • Écran Sharp Memory LCD (moitié droite) pour le calque et l'état des batteries : tient l'image à quelques µA sans jamais clignoter. Trackpad Azoteq TPS43 (moitié gauche), en I²C.
  • La trousse de secours — un coffre ESP32-P4 derrière un hub USB CH334R : clé bootable multi-ISO, token PGP, stockage. Il ne s'allume qu'en filaire.

Refonte complète du Rouge-Gorge (v1, 2022), un dérivé du Jorne et du Kyria rev2 resté sur le papier. Le dépôt porte tout l'historique : Rouge-Gorge → rili → Niphargus.

État (2026-08) — schéma v2 terminé et relu, carte routée, ERC et DRC au vert. Boîtier en cours (ci-dessous). Firmware dans KeSp_firmware.


Repository layout · Organisation du dépôt

PathContents
hardware/pcb/KiCad project — niphar.kicad_pro (schematic, board, footprints)
hardware/order-*.csvPart orders: TME, LCSC, AliExpress
hardware/kit-jlcpcb/Gerbers, BOM and CPL for JLCPCB
case/Case generator and CAD output
scripts/Anti-regression checks
docs/Design specs and plans

Case · Boîtier

Three parts: a CNC-machined 8.5 mm aluminium frame, sandwiched between two 2 mm polycarbonate plates, 12.5 mm overall. The 16340 cell sits beside the board, in a pocket milled into the frame itself.

Trois pièces : un cadre aluminium usiné de 8,5 mm pris entre deux plaques polycarbonate de 2 mm, 12,5 mm hors tout. La 16340 se loge à côté de la carte, dans une poche fraisée à même le cadre.

The frame outline is not computed — it is drawn. Edit case/case_outline.svg (KiCad coordinates, 1 unit = 1 mm), then run:

Le contour du cadre n'est pas calculé, il est dessiné. Éditez case/case_outline.svg (repère KiCad, 1 unité = 1 mm), puis lancez :

sh
freecad --console case/gen_case.py

This regenerates the .FCStd, the STEP, the STL files and case_plan.svg.

Anti-regression · Anti-régression

sh
./scripts/check.sh --fast   # schematic ERC against the committed baseline
./scripts/check.sh          # + full board DRC
./scripts/install-hooks.sh  # once per clone: pre-push runs the full check

Green means never more ERC/DRC errors or warnings than the committed baseline (.tripwire-kicad-baseline). CI is pinned to KiCad 10.0.4 with its own reference.

Vert signifie jamais plus d'erreurs ni de warnings ERC/DRC que la référence committée. La CI est épinglée sur KiCad 10.0.4 avec sa propre référence.

Parts

287
QtyValueFootprintReferences
52DDiode_SMD:D_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +36
52SW_PUSHkey:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +36
40100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25 +24
22SD05C-01FDiode_SMD:D_SOD-323D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113, D114, D115 +6
1310uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC11, C12, C13, C15, C16, C19, C20, C23, C24, C25, C26, C29, C30
1210kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R33, R34, R48, R49, R54, R55, R56, R57, R58, R59
9100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C5, C6, C7, C8, C17, C21, C22
81uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C9, C10, C14, C18, C27, C28
8MountingHole_Pad_MPMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4, H5, H6, H7, H8
5100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR35, R42, R43, R60, R61
41MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR64, R65, R66, R67
41kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR62, R63, R72, R73
45k1Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR50, R51, R52, R53
22k4Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR68, R69
24.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR29, R32
2AO3407Package_TO_SOT_SMD:SOT-23Q1, Q2
2AudioJack4EKR82-footprint:MJ-4PP-9_rev3J5, J6
2BatteryConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10, J11
2Conn_01x05_PinConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ4, J12
2Conn_02x03_Odd_EvenConnector_PinHeader_1.27mm:PinHeader_2x03_P1.27mm_VerticalJ1, J2
2DW01APackage_TO_SOT_SMD:SOT-23-6U22, U23
2ESP32-S3-WROOM-1PCM_Espressif:ESP32-S3-WROOM-1UU5, U6
2FS8205Package_TO_SOT_SMD:SOT-23-6Q3, Q4
2HT7833Package_TO_SOT_SMD:SOT-89-3U20, U21
2Heatsink_PadMaeLid:Niphargus_10mm_CuHS1, HS2
2Jumper_2_BridgedEKR82-footprint:JumperJP1, JP2
2LEDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD49, D50
2NRF24L01_BreakoutMaeLid:NRF24L01U7, U8
2SRV05-4Package_TO_SOT_SMD:SOT-23-6U9, U10
2SS14Diode_SMD:D_SMAD51, D52
2SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12SW53, SW54
2SiP32431DR3Package_TO_SOT_SMD:SOT-363_SC-70-6U11, U12
2TP4056-42-ESOP8Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.3mm_ThermalViasU18, U19
2USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U14, U15
2USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J7, J8
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U17
1CH334RPackage_SO:QSOP-16_3.9x4.9mm_P0.635mmU13
1ESP32P4_QFN104MaeLid:JC-ESP32P4-M3_V0.2U16
1Heatsink_PadMaeLid:Niphargus_text_3mm_silkHS3
1Micro_SD_CardConnector_Card:microSD_HC_Wuerth_693072010801J9
1TPS43_FPCConnector_FFC-FPC:Hirose_FH12-6S-0.5SH_1x06-1MP_P0.50mm_HorizontalJ3

The 283 most common of 287 parts.

Similar boards

  • 4 layers39 × 81.6 mmConchodytes, the printed circuit board in 3D

    Conchodytes

    mornepousse/Conchodytes

    Sleeper mouse: a wireless PMW3360 PCB inside a Logitech M100/M90 shell, talking to the same KaSe dongle as the Niphargus keyboard

    65 parts
  • 2 layers51 × 21 mmFOX JACK EXT BOARD TOP, the printed circuit board in 3D

    FOX JACK EXT BOARD TOP

    KaliAssistant/Fox-Jack

    Portable social-engineering LAN tool for automated payloads and wired audits — based on Luckfox Pico Max

    35 parts22GPL-3.0
  • 2 layersSkilleye 1.0, the printed circuit board in 3D

    Skilleye 1.0

    rizalfanex/SkillEye

    Submission for the 8th CTCI Science and Technology Creativity Competition 2026 (Sports theme).

    4 parts
  • 4 layers149.9 × 74.2 mmBCD-0o27, the printed circuit board in 3D

    BCD-0o27

    petnica-rac-seminari/BCD-0o27-Tetris

    The BalcCon Cyberdeck 0o27 (BCD-0o27) comes with a development framework that makes it easier to add functionality to the cyberdeck.

    142 parts1
  • 2 layers31.5 × 75 mmMcu board, the printed circuit board in 3D

    Mcu board

    0sleep/lwLIDAR

    Open-source light-weight 3D LiDAR based on a flexible PCB

    91 partsAGPL-3.0
  • 2 layers76.8 × 100 mmProject CV, the printed circuit board in 3D

    Project CV

    KazimGL/ESP32-PowerIoT-DevBoard

    ESP32 battery-powered IoT dev board with Li-ion charging, protection, and sensor support — designed in KiCad

    62 parts
  • 4 layers62 × 46.9 mm4LayerLabProject, the printed circuit board in 3D

    4LayerLabProject

    ZharbolatDinmukhamed/Haptic-Glove-PCB

    A wrist-mounted PCB for a haptic feedback glove, developed as part of my Research Assistantship at the Tactile Laboratory, Nazarbayev University.

    122 parts
  • 4 layers70.9 × 75 mmFlagshep Audio Player V1, the printed circuit board in 3D

    Flagshep Audio Player V1

    HYLDAIC/Flagshep-V1_Audio-Player

    A high fidelity semi-portable audio player student project with provided PCB files, 3D files and Code

    77 parts1CERN-OHL-P-2.0

Questions

How big is the Niphar PCB?

It measures 340.8 × 104.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Niphar use?

287 parts, built around the ESP32-S3-WROOM-1-N8, DW01A, HT7833 and SRV05-4. 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 Niphar KiCad files?

From the mornepousse/Niphargus repository on GitHub, at the commit this page was made from: the board is hardware/pcb/niphar.kicad_pcb and its schematic hardware/pcb/bat.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Niphar 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).