Skip to the content
PCBKitNew board
2 layers139.1 × 114.3 mmPacino flat, the printed circuit board in 3D

Pacino flat

Pacane/pacino3

Hand-wired wireless split keyboard: printable OpenSCAD case/plate with STEP output for Fusion 360. Cheapino-descended layout, nRF52840 + ZMK, Amoeba-King hot-swap.

Size
139.1 × 114.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
49
Nets
39
Pads
302
Tracks, vias
557, 21
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
23 Aug 2026
Updated
22 Sep 2026

Overview

Pacino flat is an open-source printed circuit board by Pacane, from the Pacane/pacino repository on GitHub, published under the MIT licence. It is a 2-layer board of 139.1 × 114.3 mm with 49 parts on 39 nets, routed with 557 tracks and 21 vias.

It is built around the 1N4148W and SS-12D00-G3. Its parts include 20 diodes, 20 switches and 1 IC. It belongs with the keyboards and input boards and the nRF52 and nRF5x boards of this library.

Main components

2

README

pcb/flat/README.md

pacino_flat

The board for the slim build whose cell sits in a well in the case floor, entirely under the board -- the plate is flat. Cell: 303040 (3 x 30 x 40, ~320 mAh). Case half: variants/5col_extra2_bat303040_pcb_flat.

The two slim builds are two boards, not one board with an option: moving the cell moves the bay, two of the mounting holes and the reset/power positions. The matrix, the footprints and the firmware are identical between them.

Generated by tools/pcb_gen.py -- do not hand-edit pacino_flat.kicad_pcb; change the generator (or keyboard.scad, which the outline and every position come from) and re-run it. There is no schematic file: the generator declares every net and every connection, and names the nets the way the ZMK shield names them.

text
tools/pcb_gen.py                 # both boards, with gerbers and renders
tools/pcb_gen.py --variant=flat  # just this one
tools/pcb_gen.py --no-render     # skip the raytracing while iterating

pacino_flat

20 keys, 39 nets, 557 tracks, 21 vias. Two layers, 1.6 mm, 0.3 mm tracks, 0.2 mm clearance, 0.3 mm smallest drill -- inside every fab's cheapest process.

One board, both halves

The board is reversible: build the left half with the parts on the back, flip the board over and build the right half with the parts on the front. The silkscreen on each face says which half it is. Three things make that work.

Switches. Every switch footprint carries both MX pin diagonals -- the normal pair and its 180 degree rotation -- and a hot-swap socket land on each face. On the right half the switches and the sockets go in rotated 180 degrees; MX switches are square and their stems are symmetric, so nothing about the feel, the keycaps or the plate changes. (Mirroring the pin pair instead, which is the obvious way to do it, puts two 3 mm holes 2.84 mm apart -- they would merge into a slot.)

Matrix. The controller sits on the face opposite the sockets and diodes -- on top of the board, component side towards it, flush in the plate's window -- and flipping the board swaps its two pin rows but not the position along a row, so each hole is one pin on the left half and a different one on the right. The ten matrix holes were chosen so that both of their pins are usable GPIOs and neither is one of pro_micro 1/14/15/16 -- the nice!view's CS/MISO/SCK/MOSI stay free on both halves. The two halves therefore need different pin lists in ZMK -- which is why the slim build has its own shield, pacino_pcb, whose two overlays differ from each other (the hand-wired pacino shield is unchanged and unrelated):

netholeleft halfright half
ROW0U1 pad 20pro_micro 2pro_micro 21
ROW1U1 pad 19pro_micro 3pro_micro 20
ROW2U1 pad 18pro_micro 4pro_micro 19
ROW3U1 pad 17pro_micro 5pro_micro 18
ROW4U1 pad 13pro_micro 9pro_micro 10
COL0U1 pad 5pro_micro 21pro_micro 2
COL1U1 pad 6pro_micro 20pro_micro 3
COL2U1 pad 7pro_micro 19pro_micro 4
COL3U1 pad 8pro_micro 18pro_micro 5
COL4U1 pad 12pro_micro 10pro_micro 9

Power. RAW and GND have no symmetric partner, so each gets a three-pad solder jumper: bridge the centre pad to the pad marked L or R for the half you are building. The mark is printed on the face the controller sits on (the face opposite the sockets), and that is the pad to bridge. Boards generated before September 2026 have the letters the other way round: on those, still bridge the marked pad on the controller's face, whatever letter it shows. Reset needs no jumper -- the switch sits across the (rowA,3)/(rowB,3) pair, which is GND/RST one way up and RST/GND the other; a 12 mm tactile links its two legs 12.5 mm apart internally, and the footprint puts those on one net (boards from before the same date have it the other way and short RST to GND: fit the switch by two diagonal legs only).

jumperbridge toleft halfright half
JP1 RAWcentre -> L or Rpad 1 = RAWpad 24 = RAW
JP2 GNDcentre -> L or Rpad 21 = GNDpad 4 = GND

Assembly

  1. Pick your half and work on that face only -- the one whose silkscreen names your half.
  2. Diodes: cathode (the bar) towards the marked end. The land takes a SOD-123 on either face, or a through-hole 1N4148 bent to 3.3 mm.
  3. Hot-swap sockets, one per key, on the same face -- the silkscreen outlines each one, so the socket goes where its outline is. Right half: rotated 180 degrees; the outlines on that face are drawn that way round, so follow them rather than the other side's.
  4. Reset and slide switch: through-hole, bodies on the other face -- they poke up through their windows in the plate.
  5. Sockets for the controller on the other face -- the plate side, with the reset and slide switch bodies. The nano sits on top of the board, component side down (towards the board: its USB shell lives in the 3.5 mm socket gap), USB towards the notch in the wall, and finishes flush in the plate's window. The nano's own B+ / B- pads stay empty; the battery reaches it through RAW / GND -- after the slide switch, so charge with the switch on: switched off, the charger sees no cell and its blue LED blinks instead of charging.
  6. Bridge JP1 and JP2 to the pad marked for your half.
  7. Battery leads to BAT + / -; the cell lies in the floor well beneath them.

Bill of materials (per half)

qtypartnotes
20Kailh MX hot-swap socketCPG151101S11, one per key, on the face you assemble
201N4148W diodeSOD-123; a through-hole 1N4148 on 3.3 mm pitch fits the same land
20MX switchplate-mount 3-pin or PCB-mount 5-pin, 3x 1.25u for the thumbs
1nice!nano v2 / nRF52840 SuperMinicomponent side DOWN on 3.5 mm low-profile sockets
21x12 machined low-profile socketMill-Max and similar; a normal stamped 2.54 header stands ~8.5 mm and will not fit under the plate
21x12 machined pin stripinto the controller's castellations, pins out of its COMPONENT side. Measure board surface to controller underside with a pin seated: that is mcu_socket_h (3.5 mm by default, and it cannot go below 3.5 -- the USB shell hangs 3.2 mm under the board)
112x12 mm THT tactile switchreset, tall plunger, through the plate window
1SS12D00 slide switchpower, through the plate window
1LiPo cell 303040 (3 x 30 x 40, ~320 mAh)in a well in the case floor, entirely under the board -- the plate is flat

Plus, from the case: 8 x M2x3x3.5 heat-set inserts, 8 x M2x10 screws, 8 x 10 mm bumpons.

Why the mounting holes are notches

Five of the eight are half-circles in the edge rather than holes through the board; the other three (the thumb end, the bay's bottom corner and the one between the columns) are real holes. That follows from the case: five of its screw bosses sit 0.5 mm inside the inner wall line so they merge into the wall, and the board is the cavity less 0.5 mm -- so those screws' centres land exactly on the board's edge. The other three bosses stand 2.5-3 mm clear of the wall, because the wall keeps rising past the bosses in this build and an insert hole at the wall line would be tucked under it; the five that stay on the line get a 4 mm channel up the inside of the wall instead, so their inserts and screws drop in.

Nothing is bolted through the board. It is clamped: the case's 6 mm bosses come up to its underside and the plate's 5 mm spacer bosses come down onto its top, about 8 mm2 of board between them at each point, and the M2 screw passes through the notch on its way from the plate into the boss. The notches also locate the board -- each one hugs a screw shank, so the board cannot shift in the 0.5 mm of slack around it. Fit the board with the screws out, then drop them through.

Ordering

Two-layer, 1.6 mm, any finish, no controlled impedance. pacino_flat_gerbers.zip is ready to upload. Order it twice over (or ten boards, which is the usual minimum) -- the same board is both halves.

Parts

49
QtyValueFootprintReferences
201N4148Wpacino_flat:1N4148WD1, D2, D3, D4, D5, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20 +4
20MX_Hotswap_Revpacino_flat:MX_Hotswap_RevSW1, SW2, SW3, SW4, SW5, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20 +4
3MountingHolepacino_flat:MountingHoleH1, H2, H3
1BAT_SELECTpacino_flat:BAT_SELECTJP1
1GND_SELECTpacino_flat:GND_SELECTJP2
1LiPopacino_flat:LiPoBT1
1SS12D00pacino_flat:SS12D00PWR1
1SW_Tactile_12mmpacino_flat:SW_Tactile_12mmRSW1
1nice!nanopacino_flat:nice!nanoU1

Questions

How big is the Pacino flat PCB?

It measures 139.1 × 114.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pacino flat use?

49 parts, built around the 1N4148W and SS-12D00-G3. 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 Pacino flat KiCad files?

From the Pacane/pacino repository on GitHub, at the commit this page was made from: the board is pcb/flat/pacino_flat.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

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

Similar boards

  • 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
  • 4 layers82 × 100 mmPCB Kicad, the printed circuit board in 3D

    PCB Kicad

    ChristopherAwomolo/Nova-Micromouse

    Newer version based off the Futura Micromouse

    121 partsMIT
  • 2 layers136.1 × 135.4 mmMinicopter, the printed circuit board in 3D

    Minicopter

    darshg321/Minicopter

    Compact and precise ESP-32 based drone capable of autonomous pathing, built from scratch

    57 parts
  • 2 layers97 × 77.5 mmESPlant, the printed circuit board in 3D

    ESPlant

    CCHS-Melbourne/ESPlant

    Environmental Sensor Plant - solar WiFi gardening/meteorological sensor using ESP8266

    77 parts37
  • 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
  • 2 layers56.1 × 89.5 mmChristmas tree pcb, the printed circuit board in 3D

    Christmas tree pcb

    IamPhytan/christmas-tree-pcb

    Christmas Tree PCB, made with FOSS

    17 parts4CERN-OHL-P-2.0
  • 2 layers78 × 47 mmAgroTron(kicad), the printed circuit board in 3D

    AgroTron(kicad)

    HenryqueFarias16/AgroTron

    Projeto de Automação agrícola com microcontrolador ESP12-E

    35 parts