Blueprint

krunchboard-90

A custom 75% (84+5+1) ANSI mechanical keyboard powered by a Raspberry Pi Pico with KMK

Created by krunch krunch 🚀

Tier 3

47 views

1 follower

Timeline

krunch krunch 🚀 added to the journal ago

Case assembly and updates

6/DEC/2025

Today the case arrived, slightly later than expected (5 days) but at least it's here.

I started by installing the heatset inserts, this was quite fun to do and I did a pretty clean job with that.

Most of the design done in CAD fits the actual hardware which is good.

Next, I installed the plate mounted stabilizer and switches to the plate, fortunately the printer that printed this (X1 Carbon) was very precise and all the parts fits together nicely. After closing up and screwing in the case, I discovered that the keys with the stabilizers were extra loud and I wanted to dampen the noise so I did the band-aid mod to dampen the noise when the stabilizer hit the PCB. This reduced the noise significantly and I was pretty satisfied with how the keyboard sounds.

However, I discovered that the plate was actually blocking the USB-C cable to be plugged in to the port because there wasn't enough clearance for the cable to fit, I fixed this by removing part of the plate and it worked!

image

image

I fixed this mistake in CAD as well.

I also discovered that the holes for the screws to pass through is tight so I used a drill to expanded it a bit.

krunch krunch 🚀 added to the journal ago

Soldered the MCU, diodes, switches, hotswap sockets, EC11E

1/DEC/2025

Today I received the PCB in the mail after waiting about a week, I started by soldering the Raspberry Pi Pico, since my design has a external USB-C port, I will need to reflow the pico because the USB data pads are under the pico.

image

(I took the USB-C port from the pico to use on the keyboard PCB, it reduces the height that the pico takes up and I don't have to buy a extra USB-C port)

Next, I soldered the diodes which is needed for the matrix to work, this took a while since they are quite small but I eventually got them all done.

IMG_9149

Next up, hotswap sockets! These are relatively easy to solder, they keep themself in place with the hole in the PCB, and they are quite big, however, they do take up quite a bit of solder.

IMG_9154

IMG_9152

I streamed the soldering process and quite a few people showed up!

image

After soldering most things, I moved on to switches placing and debugging the code

IMG_9159

Then placed the keycaps and soldered the EC11 rotary encoder

IMG_9164

Fortunately, my code only has a few bugs (forgot to import modules, syntax errors, etc...), so it was a quick fix.

However, my case hasn't arrived so I can't fully assemble this today, but at least the keyboard works!

CAN CAN ⚡🚀 approved krunchboard-90 ago

Tier approved: 3

Grant approved: $21.00

krunch krunch 🚀 submitted krunchboard-90 for review ago

technical_. technical_. requested changes for krunchboard-90 ago

You can only make one keyboard in Blueprint. A hackpad is a keyboard. Choose between one of your projects.

krunch krunch 🚀 submitted krunchboard-90 for review ago

krunch krunch 🚀 added to the journal ago

Firmware

Today I did the firmware, I chose to use CircuitPython with KMK because I am quite familiar with this.

It took quite a while to setup the matrix assignment since my pins are not in numerical order since I wanted the traces to be clean.

image

I had to set up multiple layers since I wanted to be able to use volume/audio/brightness control within the keyboard

image

krunch krunch 🚀 added to the journal ago

Plate and Case

Today I designed the plate and the basic shape of the case.

Since the keyboard is designed to be sandwich mounted, it's very simple.

I wanted to make the overall keyboard as compact as possible so I decided to use M2 screws.

image

The stabilizers cutout is the Cherry MX Specs from ai03's plate generator.

For the case I designed it in OnShape, I started by importing the PCB and plate image from KiCad and drew a outline around it, to ensure the PCB slots in the middle properly, I added a 1mm gap between the PCB edge and the inner wall.

The M2 screws will be screwed in from the bottom for a clean look.

image

krunch krunch 🚀 added to the journal ago

All the traces

Today I wired up all the rows and columns, this took a while because I tried to make the PCB as compact as possible, whilst keeping the traces neat looking.

I rearranged the schematic to allow the column pins to enter the MCU efficiently.

image.png

image.png

I also moved the RST and BOOTSEL buttons under the space bar for easier access.

image.png

krunch krunch 🚀 added to the journal ago

Wired the power and data

Today I started drawing the traces for power and data to the pico, since I am using a external USB-C port, I will need to use 2 5.1k resistor to request 5v from PD sources.

image.png

The data lines are a differential pairs, although I don't think it's necessary since the pico is only USB 1.1, which only supports up to 12 megabits/s.

image.png

krunch krunch 🚀 added to the journal ago

Made the schematic

Today I completed the schematic. I decided to make the pico receive power and data via a external usb-c port so that I can put the pico under the space bar, on the back side to save space. The USB-C have 2 5.1k resistor to request 5v from a PD source, and there is reverse voltage protection just in case.

image.png

Since the pico will be on the other side, I also added external RST and BOOTSEL buttons.

image.png

I have 1 unused GPIO pin so maybe I can put some neopixels on the PCB.

image.png

krunch krunch 🚀 added to the journal ago

I decided the layout I wanted

Since this is the v2 of krunchboard, this mainly fixes the mistakes from v1 by completely redesigning! Previously, I used a 85% layout, but I had to use a MCP23017 GPIO expander, which is a pain to get working in firmware since I was mixing the row/column pins with the MCU (RP2040 Pico).

This time, I will not be using a GPIO expander, so I decided to use a slightly smaller layout for the keyboard, it will be 84+4 keys ANSI keyboard with a EC11 rotary encoder, the 4 keys will be macro switches so I can make it do shortcut actions! I originally wanted to make it ISO layout, but it was very hard to find keycaps set for ISO layout so I resorted to using ANSI layout.

This keyboard will be hotswappable so it will be plate mounted.

image.png

krunch krunch 🚀 started krunchboard-90 ago