Skip to the content
2 layers281.7 × 95.6 mmFull, the printed circuit board in 3D

Split wired/wireless keyboard with 40 keys

Size
281.7 × 95.6 mm
Copper layers
2
Thickness
1.6 mm
Parts
120
Nets
100
Pads
666
Tracks, vias
964, 12
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
10 May 2022
Updated
15 Apr 2024

Overview

Full is an open-source printed circuit board by zzeneg, from the zzeneg/pica40 repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 281.7 × 95.6 mm with 120 parts on 100 nets, routed with 964 tracks and 12 vias.

Its parts include 40 diodes, 40 switches, 2 ICs and 2 connectors. It belongs with the keyboards and input boards and the nRF52 and nRF5x boards of this library.

README

README.md

Pica40 v2

Split keyboard with 40 keys using XIAO controllers.

Pica pica - european (common) magpie

Features

  • 40 keys
  • high profile (regular MX switches with hotswap sockets) or low profile (soldered low-profile ChocV2 switches)
  • wired/wireless versions
  • aggressive stagger
  • slightly splayed for pinky columns

Wired version

  • XIAO RP2040 controller
  • QMK firmware
  • USB-C or TRRS connection between splits
  • one rotary encoder (without click)
  • status LED

Wireless version

  • XIAO nRF52840 BLE controller
  • ZMK firmware
  • two rotary encoders (without click, only master side encoder is currently supported by ZMK)
  • on/off toggle
  • battery connectors

[!NOTE] I created a beta version with small improvements for wireless version - https://github.com/zzeneg/pica40/tree/v2.2-beta?tab=readme-ov-file#v22. I'm fairly confident it should work but I'm not able to verify it at the moment. You can order it at your own risk, let me know if everything worked.

Photos

wired version with 3d printed case

wired/wireless versions with Choc V2

Pica40 family - ChocV2 with low profile keycaps, ChocV2 with MT3 keycaps, Pica40 v1 with MT3 keycaps, regular switches and hotswap sockets

Firmware

Gerber files

Case files (STL - 3d printed, MX hotswap only)

All files are in stl folder.

Top:

  • wired/wireless versions
  • with and without encoders
  • normal and thin versions (see bottom parts for difference)

Bottom:

Normal version - solid cover, cutouts for legs. Thin version - 1.2mm lower than normal version, cutouts for all elements. Has additional cutouts for magnets.

Thin vs normal:

Case files (DXF - for metal/acrylic)

Bill of materials

  • PCBs
  • 2 XIAO MCUs - RP2040 for wired version, nRF52840 for wireless
  • 40 SMD SOD-123 1N4148 diodes
  • 1 or 2 EC11/12 rotary encoder with knob (diameter up to 20mm)
  • [MX hotswap version] 3d printed case (top and bottom, left and right - 4 files)
  • [MX hotswap version] 40 hotswap sockets
  • [MX hotswap version] M2 standoffs (4mm for thin, 5mm for normal), 3mm M2 screws with flat head
  • [MX hotswap thin version] 8x2mm magnets (optional)
  • [ChocV2 soldered version] FR4/metal/acrylic bottom plates, metal/acrylic MCU cover (optional)
  • [ChocV2 soldered version] 6mm M2 screws, M2 nuts and washers
  • [Wired only] USB-C 16pin connectors
  • [Wired only] TRRS PJ-320A connectors
  • [Wireless only] 2x on/off toggle MSK-12C02
  • [Wireless only] 2x Li-Ion 3.7V battery (up to 25x14x5 for standard case)
  • 7mm legs or rubber sheet (recommended for thin version)

Build log

TODO

Development

For proper KiCad setup install my zzkeeb library.

Changelog

V2.1

  • added TRRS support
  • wired version supports rotary encoder on any side
  • remove unused for FR4/acrylic/metal sandwich case, 3D printing is better and cheaper
  • improved 3D printed case with a new shape and parts

V2

  • reworked to true split with two XIAO MCUs controllers
  • added splay to pinky columns
  • all case/pcb files are not compatible with V1

V1

  • split with single Pro Micro based MCU and handwired connection

Support

If you like my work and want to support my future designs, please consider sponsorship.

Parts

120
QtyValueFootprintReferences
40D_Smallzzkeeb:Diode_1N4148-SOD123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +24
38SW_PUSHzzkeeb:Switch_MXChocV2-hotswapSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW21, SW22, SW23, SW24 +22
10MountingHolezzkeeb:Hole_M2-spacerH1, H2, H3, H4, H5, H8, H9, H10, H11, H12
6SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1, JP2, JP3, JP4, JP5, JP6
4Breakawayzzkeeb:Hole_Breakaway-TabsBR1, BR2, BR3, BR4
4Conn_01x02_Femalezzkeeb:Connector_JST-1x02-2.00mmBATTCONN1, BATTCONN2, BATTCONN3, BATTCONN4
4MountingHolezzkeeb:Hole_M2H6, H7, H13, H14
2HRO-TYPE-C-31-M-12zzkeeb:Connector_HRO-TYPE-C-31-M-12-dataUSB1, USB2
2MJ-4PP-9zzkeeb:Connector_TRRSJ1, J2
2RotaryEncoder_Switchzzkeeb:RotaryEncoder_EC11RE1, RE2
2SW_PUSHzzkeeb:Switch_MXChocV2-hotswap-1.5SW20, SW40
2SW_SPDTzzkeeb:Switch_SPDT-PCM12BATTSW1, BATTSW2
2xiao-blezzkeeb:MCU_xiao-ble-thtU1, U2
1LOGOzzkeeb:Logo_pica-mirroredG***
1LOGOzzkeeb:Logo_picaG***

Similar boards

  • 2 layers182.9 × 172.7 mmMulti, the printed circuit board in 3D

    Multi

    homebrew8088/8088-PC-Compatible

    8088 PC XT Compatible

    120 parts238GPL-3.0
  • 2 layers96.5 × 55 mmVera module rev2, the printed circuit board in 3D

    Vera module rev2

    fvdhoef/vera-module

    Versatile Embedded Retro Adapter

    120 parts138MIT
  • 2 layers163 × 137.5 mmZen Bottom, the printed circuit board in 3D

    Zen Bottom

    RGBKB/Keyboard-files

    Public files for keyboards and more

    120 parts113GPL-3.0
  • 2 layers30 × 95 mmIotThermalCamera, the printed circuit board in 3D

    IotThermalCamera

    BerkeleyHCI/PolymorphicBlocks

    A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

    120 parts94BSD-3-Clause
  • 2 layers227.7 × 112.8 mmWren universal, the printed circuit board in 3D

    Wren universal

    oliviahanley/wren-keyboard

    A split ergonomic keyboard with options for numpad, nav cluster, and more.

    120 parts93MIT
  • 2 layers84 × 69 mmHbr mk2-lpfs, the printed circuit board in 3D

    Hbr mk2-lpfs

    afiskon/hbr-mk2

    All HF bands QRP CW/SSB transceiver

    120 parts76MIT
  • 2 layers185.4 × 105.4 mmCrossover, the printed circuit board in 3D

    Crossover

    maqifrnswa/scimpy

    Scimpy Speaker Design Tool

    120 parts75GPL-3.0
  • 2 layers136.5 × 54.9 mmClimateSprinklerController, the printed circuit board in 3D

    ClimateSprinklerController

    kbx81/ClimateSprinklerController

    ESP32-based climate and sprinkler controller for use with ESPHome

    120 parts56

Questions

How big is the Full PCB?

It measures 281.7 × 95.6 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Full use?

120 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 Full KiCad files?

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

Can I use the Full design in my own project?

Its repository publishes it under the GPL-2.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).