Skip to the content
2 layers342.9 × 95.2 mmKey65, the printed circuit board in 3D

I built a 65% layout keyboard based on Seed Studio Xiao nrf52840 also It will have a 3.7v battery and an 0.91 inch OLED Screen. Switches will be HotSwapable.

Size
342.9 × 95.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
149
Nets
129
Pads
857
Tracks, vias
1,653, 95
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
10 Jul 2026
Updated
10 Jul 2026

Overview

Key65 is an open-source printed circuit board by sauravraj67, from the sauravraj67/Keyboard-Pro repository on GitHub. It is a 2-layer board of 342.9 × 95.2 mm with 149 parts on 129 nets, routed with 1,653 tracks and 95 vias.

It is built around the PCA9555D. Its parts include 74 switches, 68 diodes, 3 ICs, 2 resistors and 2 connectors. It belongs with the nRF52 and nRF5x boards of this library.

Main components

1

README

README.md

Keyboard Pro

Screenshot 2026-06-08 170318

I built a 65% layout keyboard based on Seed Studio Xiao nrf52840 also It will have a 3.7v battery and an 0.91 inch OLED Screen. Switches will be HotSwapable. I used expander to connect the rows and coluns because there weren't enough pins available. It is Bluetooth enabled

Features

  • nrf52840 Rp2040
  • uses 65% Keyboard Layout
  • Uses Keyboard Matrix
  • Had a rotor encoder and an 0.91 inch oled screen

Schematic

Made the Key-Matrix

Hours- 5.5 hr
So I opened the schematics and added a key switch and a diode. Then I had my way toward how many switches would be there per row . The number of keys per row wasn't constant So I made a rough sketch about how would I assign the columns and rows to each Key switch. after that as I would be using keyboard matrix ,so I needed to add a diode to each key switch to prevent ghosting. Then I started making the switch layout . I also kept in mind that each switches aren't of same length so I had to use specific footprints for each switches specifically as per the 65 % standard layout. The Switches will be hot-swapable as well. While making the switch matrix it was a bit time consuming as I tried to organized the switches as well as per there layout ,so that it will be easy for me to connect the wires.While reviewing I found a few placement and footprint mistakes so I solved them then I moved toward making the rows and columns connection and adding the labels to them So this is how it looks.Screenshot 2026-06-07 231856


Adding other components

Hours :- 2.5 hr
So there is no footprint and symbol for the Xioa nRF52840 , So I downloaded them and added it to kicad also I knew that there weren't enough numbers of gpio pins on the Xiao nRF52840 so handle all the 15 columns and 5 rows So I needed to use an expander , So for that I used PCA9555D and read it's data sheet a bit , It will communicate to the MCU via I2C protocol , So I started adding the rows and columns label to it but even one expander wasn't enough So I had to add a second one to add the connections of all rows and columns then I did all the other connection on the expander.after that I added pins for Battery connection. the battery that we would be using will be of 3.7v lithium ion battery. and made a battery sense circuit. the nRF52840 has inbuild battery charging IC and it can control the charring part so I don't to add anything more after that I added a 4 pins for 0.91 inch oled display and added labels to it.after that I connected every label to the Xiao nRF52840. So this is how the final schematics look

Screenshot 2026-06-08 015730

PCB Design

Started with PCB ( Component placement)

Hours :- 4.75 hours
SO I started with the hard part. Arranging the switches . I used a Grid of 19.05U so that the switches snap easily but that wasn't the case . I tried to snap them with each other via using different grid sizes and moving them then they use to snap properly. It look me a long time snapping the switches and overt to that placing switches at the right Place because each rows doesn't have same number of rows I had to align the first switch to the right place , also I added Stabilizers for any switch whose footprint was over 2.25U. The main thing was choosing the right Switch while placing and the most hectic thing was that switches don't use to snap directly . I have to move it around using different grid sizes to achieve the goal . Then I added the Xiao nRF52840 to the right top side a bit away from the corner then added the switches after that placed the Oled screen in the free space and added the expanders in places where there was free space I made few alteration of the keyboard but finally ended up with this after that I placed the diodes near to each respective switch to which it was attached onto the bottom layer of the PCB then I added the boundaries and this is how PCB layout looks now.

Screenshot 2026-06-08 000432

Routed the PCB

Hours :- 6.5

So I stated with routing the PCB I initially routed the diodes to the switches then I moved and started making rows and columns . I tried to make as clean routs as possible then I started routing the rows and columns to the expander . I used vias where there weren't space to rout . I had to make few alteration while routing so that my routs looks clean and workable . Many a times there weren't a way to rout . So I had to re-rout few traces but I was able to rout it to the two expanders. Then I stared connecting the SDA/SCL lines to the MCU from the expander and the OLED screen after that I made connection for the battery pins and battery connected circuit. So after all the rout the PCB looks like this with all the clean straight routs . Screenshot 2026-06-08 021926 Screenshot 2026-06-08 021857

Made and Polished the Case

Hours :- 5.75 hours

So I took the measurements of the keyboard then made a sketch of same size.after that I added 1 mm releat from each side and added a boundary sketch and curved it edges.after that I need to add sketches for holding the plates . So I added it's boundary and started making symmetric Rectangles and circles for holding the Plate boundary , I repeted it for the tob and bottomScreenshot 2026-06-08 111706
then to the sides
Screenshot 2026-06-08 112854
after that I made a simple base then extruded it as per the needs to make the base Case basic design all the meserments were pre calculated.Screenshot 2026-06-08 114626 (1) after that I added PCB aligned it perfectly with the sketch then moved it to a calculated height ( this time the calculations things were right).then I added the 3D model of the MCU and started making holes on the Case for the USB-C for that I used a simple sketch and extruded to to make a cut Screenshot 2026-06-08 141044 then made the middle and the top layer Screenshot 2026-06-08 155226 Screenshot 2026-06-08 162410

And polished the case and these are the final result Screenshot 2026-06-08 170318 - Copy Screenshot 2026-06-08 170339

Screenshot 2026-06-08 170318

Parts

149
QtyValueFootprintReferences
68DDiode_SMD:D_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +52
68SW_PushPCM_marbastlib-mx:SW_MX_HS_CPG151101S11_1uSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +52
2PCA9555DPackage_SO:SOIC-24W_7.5x15.4mm_P1.27mmU2, U3
2STAB_MX_2.25uPCM_marbastlib-mx:STAB_MX_2.25uS2, S3
12MResistor_SMD:R_0805_2012MetricR2
1806kResistor_SMD:R_0805_2012MetricR1
1Conn_01x02_PinConnector_JST:JST_JWPF_B02B-JWPF-SK-R_1x02_P2.00mm_VerticalJ2
1Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1RotaryEncoder_Switch_MPRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW69
1STAB_MX_2uPCM_marbastlib-mx:STAB_MX_2uS1
1STAB_MX_6.25uPCM_marbastlib-mx:STAB_MX_6.25uS4
1SW_Wuerth_450301014042Button_Switch_THT:SW_Slide_SPDT_Straight_CK_OS102011MS2QSW70
1XIAO-nRF52840-SMDModified XIAO:modified-XIAO-nRF52840-SMDU4

Similar boards

  • 4 layers80 × 80 mmZ5524, the printed circuit board in 3D

    Z5524

    brer-rabbit/zoxnoxious

    Analog synth / software interface

    234 parts68GPL-3.0
  • 2 layers155.9 × 91.9 mmPavu Mixer Prototype, the printed circuit board in 3D

    Pavu Mixer Prototype

    Rahix/pavu-mixer

    "Hardware Mixer" for PulseAudio

    81 parts25
  • 2 layers330 × 123 mmRiptide, the printed circuit board in 3D

    Riptide

    SharKingStudios/Riptide

    An Infinitely Expandable Keyboard built during Hackclub Highway!

    270 parts18MIT
  • 2 layers100 × 86.5 mmSensactHs, the printed circuit board in 3D

    SensactHs

    klaus-liebler/sensact

    Es gibt vier Namespaces für Nachrichten "REQUEST" und "RESPONSE", "EVENT" und "ACKNOWLEDGE". Dies wird mit den beiden LSB des Versions-Namespace-Bytes erklärt (Somit bleiben 64 Versionierungsmöglichkeiten) Alle vier…

    319 parts4Apache-2.0
  • 2 layers203 × 88 mmRICM pico, the printed circuit board in 3D

    RICM pico

    elatorre20/RICM_pico

    The software for a raspberry PIco-based kit board for a tic-tac-toe game. The board is mostly based on I2C devices, and will be simple to assemble so that we can use it in children's workshops.

    68 parts2GPL-3.0
  • 2 layers428.6 × 161.9 mmKeyboard mk1, the printed circuit board in 3D

    Keyboard mk1

    bobby1321/Colossus-Of-Codes

    Custom keyboard layout, called the Colossus of Codes (like Rhodes)

    280 parts1MIT
  • 2 layers342.9 × 95.2 mmNaicha68, the printed circuit board in 3D

    Naicha68

    laojoh/naicha68

    A keyboard dreamt up and put into solid design by @deltea and @laojoh.

    147 parts1MIT
  • 4 layers135 × 73.6 mmPuzzle1, the printed circuit board in 3D

    Puzzle1

    Dramenia/Puzzles

    Github for puzzles in the escape room of phantom vault

    38 parts

Questions

How big is the Key65 PCB?

It measures 342.9 × 95.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Key65 use?

149 parts, built around the PCA9555D. 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 Key65 KiCad files?

From the sauravraj67/Keyboard-Pro repository on GitHub, at the commit this page was made from: the board is PCB/Key65.kicad_pcb and its schematic PCB/Key65.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Key65 design in my own project?

Its repository states no licence, so its author keeps all rights: ask sauravraj67 before reusing the design.