Skip to the content
PCBKitNew board
2 layers133 × 91.4 mmCirrus40, the printed circuit board in 3D

A 40% split mechanical keyboard with a focus on usable rotary encoders

Size
133 × 91.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
71
Nets
66
Pads
571
Tracks, vias
482, 83
Pours
211
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Oct 2025
Updated
7 Jun 2026

Overview

Cirrus40 is an open-source printed circuit board by schuay, from the schuay/cirrus40 repository on GitHub, published under the CC-BY-4.0 licence. It is a 2-layer board of 133 × 91.4 mm with 71 parts on 66 nets, routed with 482 tracks and 83 vias.

It is built around the SRV05-4 and MSK12C02. Its parts include 21 diodes, 20 switches, 3 ICs and 2 connectors. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

Cirrus40 Keyboard

The Cirrus40 is a 40% split mechanical keyboard, with an ortholinear layout and a focus on usable rotary encoders.

cirrus40img0 cirrus40img1 cirrus40img2 cirrus40img3 case_blowup

Design Considerations

  • A 3x thumb cluster where each key is equally usable and comfortable to reach.
  • Rotary encoders under the palms are nicely reachable without moving hands from the homerow position. One-handed use together with homerow modifiers (think: switching tabs, workspaces; word-by-word navigation, selection, and deletion). Hardware debouncing for the perfect input signal; no more missed transitions.
  • A full 3d printed case protects the internals.
  • An optional 3d printed 30deg tenting stand for rock-solid tenting. The tenting stand integrates perfectly with the case.
  • An ortholinear layout. Why not columnar stagger: it's comfortable at rest, but increases separation between the pinky and ring fingers in motion.
  • A hot-pluggable wired USB-C interconnect between halves. USB-C cables are widely available.
  • Support for both wired and wireless operation.
  • Simple tenting using M3 screws.
  • No toys: no LEDs, no displays.
  • Only widely available and inexpensive parts.

The Cirrus40 combines some of the favorite aspects of my previous builds (the Cheapino's thumb cluster and the Lotus58's key layout and USB-C interconnect). I got a bit fixated on optimizing encoder precision and ergonomics, which is why you'll see the hardware debouncing circuit, the below-palm position, and the strong recommendation for quality Alps encoders.

Firmware

QMK: qmk_firmware. My own keymap is available as an example at qmk_userspace.

ZMK: Contributions welcome. zmk-config hasn't been updated for Cirrus40 Revision 2 yet.

Required Files

All files required for manufacture are located in the most recent release directory.

Ordering guide

TLDR: PCB and case manufacturing from JLCPCB, electronics components from LCSC, and the rest from AliExpress with Choice shipping.

  • jlcpcb.com:
    • For the PCB: it's safe to stick with default values.
    • For the case: I used 9600 Resin (Spray Painting-Matte-Black) for the case and PA12-HP Nylon for the tenting stand with good results. Please let me know if you experiment with other materials.
  • lcsc.com: See doc/bom.csv for more info. Note that the USB-C connector I used is currently out of stock and NOT included in doc/bom.csv.
  • aliexpress.com: Great for switches, keycaps, encoder heads, the RP2040 ProMicro MCU, MCU pin headers, screws, spacers, nuts, etc. I've had good experiences with "Choice" shipping.

Note: jlcpcb.com and lcsc.com offer combined shipping; this is not recommended, as it was more complex, more expensive, and slower when I tried it.

Build guide

A detailed, step-by-step build guide is not yet available. Contributions on this front are very welcome!

However, the build process is straightforward for those with some experience in hand-soldering keyboards. The soldering difficulty is medium-to-easy; the surface-mount components are in a large (0805) package and are suitable for hand-soldering. The USB-C connector is also simpler than it looks: the wiring is such that all data pins can simply be bridged together (i.e. precise drag-soldering is not strictly needed).

I usually do the USB-C connector and SMD components first, followed by diodes and hotswap sockets; and finally the MCU plus socket and encoders. All components (except the encoder) go on the bottom side of the PCB. Consult the kicad files if something is unclear. A multimeter is good to have around for verification and error search.

Bill of Materials

A single keyboard build costs around 80EUR including shipping and customs from JLCPCB and LCSC.

Core Components

PartQuantityNotes
Reversible PCB2From the Gerber files
3D Printed Case1From the STEP files. Tenting stand is optional.
MX switches36
MX hotswap sockets36
EC11 rotary encoders2ALPS EC11E15244G1 is strongly recommended.
Encoder knobs2
1N4148 or 1N4148W diodes40SOD-123 or SOD-323 package
100nF capacitors40805 package
10kOhm resistors40805 package
8.2kOhm resistors40805 package
MCU Sockets / Pin Headers2 setsFor socketing the microcontrollers

Wired Build Components

PartQuantityNotes
Pro Micro (RP2040) MCU2
Ferrite beads40805 package, e.g., 220Ω@100MHz
USB-C mid-mount connector2e.g., LCSC C963373
ESD protection diode2e.g., LCSC C558418

Wireless Build Components

PartQuantityNotes
nice!nano v2 MCU2
LiPo Battery2301230 (110 mAh) size recommended
Power slide switch2e.g., LCSC C431540

Hardware

PartQuantityNotes
M2x4mm screws20Use M2x6mm for the 4 case holes if using the tenting stand
M2x7mm spacers10
M3 screws and nuts4 (opt)For basic, non-stand tenting

Release history

Released files can be found in the releases/ directory.

  • releases/20251220: Revision 2. 3x5+3 with a full 3d printed case and 30deg tenting stand. Hardware encoder debouncing.
  • releases/20251001: Revision 1. 3x6+3 with a sandwich case.

Revision 1 Gallery

cirrus40 img1 cirrus40 img2 cirrus40 pcb render

Parts

71
QtyValueFootprintReferences
21DIODEfootprints:Diode-dualD1, D2, D3, D4, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21 +5
18SW_Pushfootprints:SW_MX_HotSwap_ReversibleK1, K2, K3, K4, K5, K6, K7, K10, K11, K12, K13, K14, K15, K16, K17, K18 +2
410kOhmResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder10kΩ, 10kΩ, 10kΩ, 10kΩ
4470nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder100nF, 100nF, 100nF, 100nF
48kOhmResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder8.2kΩ, 8.2kΩ, 8.2kΩ, 8.2kΩ
4Ferrite BeadCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderFB1, FB2, FB3, FB4
2MSK12C02footprints:MSK12C02S1, S2
2SRV05-4footprints:SOT-23-6U1, U2
1Conn_01x02footprints:PinHeader_1x02_P2.54mm_VerticalJ2
1MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3
1ProMicrofootprints:ProMicro_Reversible_origU3
1RotaryEncoder_Switch_MPfootprints:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmENC1
1USB_C_Receptacle_USB2.0_16Pfootprints:Molex-216990_GCT-USB45xx_HRO-TYPE-C-31-M-13x-PiMicro_1_DOUBLESIDEDJ1

The 64 most common of 71 parts.

Questions

How big is the Cirrus40 PCB?

It measures 133 × 91.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Cirrus40 use?

71 parts, built around the SRV05-4 and MSK12C02. 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 Cirrus40 KiCad files?

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

Can I use the Cirrus40 design in my own project?

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

Similar boards

  • 2 layers139.1 × 107.7 mmLotus-58-BLE, the printed circuit board in 3D

    Lotus-58-BLE

    TweetyDaBird/Lotus-58-BLE

    165 parts7
  • 2 layers95 × 147.3 mmBadge, the printed circuit board in 3D

    Badge

    hackthenorth/badge-hardware

    KiCAD Files for the 2026 Hacker Badge

    124 parts4
  • 2 layers139.1 × 107.7 mmLotus58 Glow 130, the printed circuit board in 3D

    Lotus58 Glow 130

    TweetyDaBird/Lotus-58-Classic

    A split ergo linear keyboard derived from the Lily58 family

    125 parts390
  • 2 layers223.5 × 160 mmBase, the printed circuit board in 3D

    Base

    bread-modular/bread-modular

    Modular Synths for Everyone

    201 parts67MIT
  • 2 layers309.9 × 119.8 mmCockpit, the printed circuit board in 3D

    Cockpit

    ozkan/Cockpit-Keyboard

    A hot swap system column staggered mechanical keyboard, running QMK Firmware on Pro Micro controllers.

    144 parts43MIT
  • 2 layers285 × 94.2 mmWoodpecker, the printed circuit board in 3D

    Woodpecker

    Ardakilic/woodpecker-keyboard

    5 row ortholinear keyboard, based on Lumberelite and Lumberjack

    145 parts18MIT
  • 4 layers154.5 × 112.9 mmLibrePLC32, the printed circuit board in 3D

    LibrePLC32

    AndreiVladescu/LibrePLC32

    The goal of the project is to create a compact, hackable, and well-documented PLC platform for industrial automation experiments, prototyping, education, and open hardware development.

    295 parts14CERN-OHL-P-2.0