

Ninjaboard65
The Ninjaboard65 is a 65% custom keyboard with a knob! Features include hot-swappable gateron yellow switches, pbt double-shot keycaps, and a 3d printed case + plate.
- Size
- 312.5 × 127.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 141
- Nets
- 99
- Pads
- 789
- Tracks, vias
- 632, 3
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 8 Apr 2026
- Updated
- 9 Aug 2026
Overview
Ninjaboard65 is an open-source printed circuit board by Ninjadude01, from the Ninjadude01/Ninjaboard65 repository on GitHub. It is a 2-layer board of 312.5 × 127.5 mm with 141 parts on 99 nets, routed with 632 tracks and 3 vias.
Its parts include 67 switches, 66 diodes and 1 IC. It belongs with the RP2040 boards of this library.
README
README.mdNinjaboard65
The Ninjaboard65 is a 65% custom keyboard with a knob! Features include hot-swappable gateron yellow switches, pbt double-shot keycaps, and a 3d printed case + plate. It uses qmk firmware, which is fully customizable so you can assign each key to whatever function you want. I decided to build this project as I love hardware and am already familiar with the basics. I wanted a project that would challenge me, which is why I decided to make my own keyboard. Another reason why is because I love playing video games in my free time, so being able to create my very own input device means alot to me, and would be very useful as I can customize it specifically to meet my gaming needs.
Youtube Video Link: https://www.youtube.com/watch?v=n-olJ9K8aAI
Zine!
.png)
IRL Photos vs the 3D Renders

Layout
I chose a 65% layout as I like to game in my freetime, and this layout is a perfect mix between everyday functionality while still being small and compact.

Schematic
I designed the Schematic and PCB in Kicad, and chose to use a raspberry pi pico because it has many GPIO pins, making it perfect for my project as I needed 22 pins for my matrix + rotary encoder to work.


PCB
I am very proud of my clean wiring, as it took me countless hours and I re-did it many times. I also added some cool designs to the backside silkscreen to add some unique flair to my project!


Case
My keyboard case was created in fusion, and comes in 3 parts. The main part of the case is the base, and has 3 small PCB supports located near the centre left, centre right, and spacebar area. It will have 5 m2 heatset inserts located around the edge of the base.


My case uses 5 m2 4mm screws that will screw from the top plate into the base.

The final part of my case is the pico cover, which covers the microcontroller. It connects to the plate through a snap-fit type mechanism (theres an extruded outline on the plate, and an indented section on the underside of the cover.)


Assembly Guide
- Solder the 1N4148 and Kailh hot-swap sockets to the underside of the pcb.
- Attach and mount the stabilizers, and solder the rotary encoder onto the pcb (facing upwards).
- Grab all the Gateron Switches and snap them onto the plate, and flip the plate upside down.
- Now, with the plate and your pcb facing downwards, slowly lower the pcb into the plate until all the switches have entered their sockets.
- Use a soldering iron to heat up the m2 heatset inserts, and push them into the 5 designated holes in the walls of the base case.
- Flip your plate attached the the pcb over, and lower it into the base case.
- Screw the m2 screws into the holes, cover the open Raspberry Pi Pico with the nameplate (optional), and place the keycaps onto the respective keys.
- All thats left to do now is to flash your Ninjaboard65!
Firmware Flashing Steps
- Download the .uf2 file found in the Firmware Folder.
- Hold down the BOOTSEL button found on the Pico, and connect it back into your device using a usb cable while holding it.
- A usb drive called RPI-RP2 will appear on your computer.
- Drag and drop the .uf2 file onto the drive.
- The Pico will automatically reboot and you should be good to go.
- Enjoy your new Ninjaboard65!
BOM
Parts
141| Qty | Value | Footprint | References |
|---|---|---|---|
| 66 | D | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D10, D11, D12, D13, D14, D16, D17, D18, D19, D20, D21, D22, D23, D24 +50 |
| 53 | Push 45 | blue:bluesw | SW1, SW2, SW10, SW11, SW12, SW13, SW17, SW18, SW19, SW20, SW21, SW22, SW23, SW24, SW25, SW26 +37 |
| 5 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.25u | SW59, SW60, SW61, SW63, SW64 |
| 3 | LOGO | LOGO | G***, G***, G*** |
| 2 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.75u | SW31, SW56 |
| 2 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_2.25u | SW43, SW45 |
| 2 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_1.50u | SW16, SW29 |
| 1 | Knob Sw | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW15 |
| 1 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_6.25u | SW62 |
| 1 | Push 45 | PCM_Switch_Keyboard_Hotswap_Kailh:SW_Hotswap_Kailh_MX_Plated_2.00u | SW14 |
| 1 | RASPBERRY_PI_PICO | footprints:RASPBERRY_PI_PICO | U1 |
The 137 most common of 141 parts.
Questions
How big is the Ninjaboard65 PCB?
It measures 312.5 × 127.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Ninjaboard65 use?
141 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 Ninjaboard65 KiCad files?
From the Ninjadude01/Ninjaboard65 repository on GitHub, at the commit this page was made from: the board is PCB/Ninjaboard65.kicad_pcb and its schematic PCB/Ninjaboard65.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ninjaboard65 design in my own project?
Its repository states no licence, so its author keeps all rights: ask Ninjadude01 before reusing the design.
Similar boards
- 2 layers198.1 × 95.3 mm

- 2 layers104 × 66 mm

LCD DRIVER Rev B
OLIMEX/OLINUXINO
OLINUXINO is Open Source / Open Hardware, low cost from EUR 24 Linux Industrial grade Single Board Computer capable to operate -25+85C
141 parts1.5k - 2 layers73 × 139 mm

OpenRPNCalc
apoluekt/OpenRPNCalc
Open-source and open-hardware scientific RPN calculator
141 parts414CERN-OHL-P-2.0 - 2 layers111.3 × 106.4 mm

Super Sixteen v1
matthewcieplak/super-sixteen
Code and schematics for the Super Sixteen Eurorack sequencer
141 parts171 - 2 layers362.4 × 105.3 mm

- 2 layers288.1 × 142.4 mm

- 2 layers144.8 × 88.9 mm

- 2 layers100 × 100 mm
