kevin's website

Building a Custom Split Mechanical Keyboard

Kevin Nel

final build with nice keycaps

1. Table of Contents

2. Form Factor Research

Before I started on my journey, I had to do some research on just what type of keyboard I would like to build. I had three main criteria:

  1. size: I had grown fond of the compact sizes on r/mechanicalkeyboards and would like to keep the board as small as would still be practical
  2. cost: I did not want my first foray into mechanical keyboards to cost me a fortune as I would just be trying it out.
  3. cool factor: I didn't want it to just be any old keyboard.
I ended up going with the idea of a split ortholinear keyboard with the same amount of keys as a preonic.

See all the options I considered

Here are the options I considered with pros and cons. I also included KLE json for each of them for convenience sake.

2.1. 75% ortho

above examples photo
above examples photo

pros: - fits in 60% case - dedicated number row - space for 2x2u keys on bottom row (shift and space)

cons: - larger than 40% (same size as 60%) - number row on ortholinear might be weird - more switches

["~","1","2","3","4","5","6","7","8","9","0","-","="],
["Tab","Q","W","E","R","T","Y","U","I","O","P","Back Space","home"],
["Esc","A","S","D","F","G","H","J","K","L",";","'","end"],
["Shift","Z","X","C","V","B","N","M",",",".","/","Return","delete"],
["meme","Ctrl","Alt","Super","⇓","sp1","sp2","⇑","←","↓","↑","→","fn"]

2.2. planck

planck
planck

pros: - relatively standardized layout - really small - looks cool

cons: - really small - will have to build own case

[{a:7},"Tab","Q","W","E","R","T","Y","U","I","O","P","Back Space"],
["Esc","A","S","D","F","G","H","J","K","L",";","'"],
["Shift","Z","X","C","V","B","N","M",",",".","/","Return"],
["","Ctrl","Alt","Super","⇓",{w:2},"","⇑","←","↓","↑","→"]

2.3. DIY kit option (KBDFans NIU Mini)

kbdfans niu mini diy kit

niu mini
niu mini

pros: - easier build - nicer case than I could make

cons: - expensive

2.4. Split ortho 75%

split 75%
split 75%

guide

pros: - split (ergo) - ortho means easier diy/plate

cons: - have to build own case - needs two pro micros and trs connectors (more parts) - more switches = more money

2.4.1. ideas

wood case acrylic plates hand wired

2.5. iris (mini ergodox also 40%)

IMAGE
IMAGE

link to a build guide

pros: - ergonomics - less switches = cheaper (more than a 40% though) - looks really cool - case has an interesting shape

cons: - 2 pro micros and trs needed - will have to build own case - quite involved build process - slightly bigger case

2.6. split 40%

split 40
split 40

a very thorough build guide

pros: - ergonomics - less switches = cheaper - looks really cool

cons: - 2 pro micros and trs needed - will have to build own case - more involved build process

["Tab","Q","W","E","R","T",{x:1},"Y","U","I","O","P","Back Space"],
["Esc","A","S","D","F","G",{x:1},"H","J","K","L",";","'"],
["Shift","Z","X","C","V","B",{x:1},"N","M",",",".","/","Return"],
["","Ctrl","Alt","Super","⇓","",{x:1},"","⇑","←","↓","↑","→"]

2.6.1. ideas

acrylic and standoffs for case (ie raspberry pi)

3. Final Choice

split 75% ortho handwired (similar to let's split only with a number row.) with an acrylic mounting and base plate separated by pcb standoffs.

[{a:7},"~","1","2","3","4","5",{x:1},"6","7","8","9","0","Num Lock"],
["Tab","Q","W","E","R","T",{x:1},"Y","U","I","O","P","Back Space"],
["Esc","A","S","D","F","G",{x:1},"H","J","K","L",";","'"],
["Shift","Z","X","C","V","B",{x:1},"N","M",",",".","/","Return"],
["Fn","Ctrl","Alt","Super","⇓","Shift",{x:1},"Space","⇑","←","↓","↑","→"]

4. Componenents

4.1. Case and Plate

The case and plate where generated using swillkb builder I had the case and plate laser cut in 3mm acrylic by my uncle. who graciously didn't charge me.

plate
plate

4.2. BOM

4.3. Cost

Store Cost
Bangood cart R1450
Aliexpress (just caps) R223
Total R1673

5. Ciruit Diagrams

Keyboard Firmware Builder proved extremely helpful in working out the layout for this build.

6. Build Log

6.1. hot glue

After Installing the switches and soldering everything in place I realized the switches do not clip in properly to a 3mm plate (1.6mm is the required thickness from the switches datasheet) but a thinner acrylic plate would have way too much flex. The issue this cause was that removing keycaps would rip out the switch and undo all the hard work that went into soldering. The only solution I could come up with was to hot glue everything in place from underneath. I tried my best to be neat and keep the hot glue where the keycaps would cover it.

6.2. communication between the two halves

I opted for I2C over a TRRS cable. This required me to solder 2 pull up 4k7 ohm resistors on the sda and scl lines (pin 2 and pin 3). You can see a schematic below.

I2C wiring
I2C wiring

6.3. firmware

this is how I wired my rows and columns to the Pro-Micro

rows:
0=b5
1=b4
2=e6
3=d7
4=c6

cols:
0=b6
1=b2
2=b3
3=b1
4=f7
5=f6

For the firmware I initially tried using the Nyquist firmware but ran into issues, I ended up using the Let's Split firmware in the handwire folder and adding a row and adjusting the layout.

These articles helped me to build/flash the pro micros.

  1. qmk building firmware
  2. qmk lets split flashing

NOTE: In order to flash the promicro you should begin flashing on the computer then bridge the GND and RST (ground and reset) pins on the pro micro (or press the reset switch if your board has one.)

You also have to flash both pro micros.

6.4. Adding VIA support

After a while I discovered the amazing VIA software and decided to try add support for my build. I followed along with this stream by mechmerlin

although following the documentation on caniusevia.com also proved helpful

I ended up completely rewriting the qmk firmware and removed the rev1/ and rev2/ folders so the firmware is overall much simpler.

After flashing both promicros with this new firmware you should be able to import the via.json file into VIA and the board should be detected.

I have also included a much nicer via layout in the via folder on the github repo for this project

7. Final Thoughts/Review

7.1. Problems that arose

The soldering went quite smoothly apart from the fact that my iron has a really short cable and I ended up using my left hand to solder which resulted in a few burns. I also may have melted the switch housings on a few of the switches when my iron was set too hot (I think I saw it suggested to use 325C and mine was set to 400C)

The firmware was more of a problem since my row and column pins were different than what would be on the nyquist PCB. This meant that I could not use the online configurator and I had to figure out how qmk works. I also didn't bother trying to get it all working on windows and just used my linux laptop to do all the programming and flashing.

All things considered It was quite smooth sailing and the keyboard was up and running in 2 days (4 hours assembly and the rest debugging).

My keycaps also got delayed in post so the keyboard sat on my desk for a few more weeks before I could fully test drive it.

7.2. improvements for future

for future builds I may opt for a pcb not because handwiring is difficult but because having the switches be pcb mounted would add to stability without the use of hot glue. the handwired board looks kinda messy

I have seen cool stuff done using fr4 plates and bottoms this would allow the entire board to be made with the pcb. If I have the plates made using JLCPCB or something similar this could bring the cost down a bit compared to purchasing a pcb and having it shipped.

If I do not adapt to the split I may try my hand at building a plank as they are also a little more portable. If I do not adapt the ortholinear layout I may try a columnar stagger or regular stagger board again (this compact "full" size board has caught my attention).

8. Some Photos

laser cut plates
The acrylic plates, fresh off the laser cutter. (click for full resolution)
soldering
Soldering away! (click for full resolution)
first half done including microcontroller and trrs jack
First half done! (click for full resolution)
assembled with bottom (no keycaps yet)
Half the board assembled but no keycaps. (click for full resolution)
on the desk (still no keycaps 😢)
Finished but still no keycaps. (click for full resolution)
final build with nice keycaps
Final build with some nice bright pink and purple dsa keycaps! (click for full resolution)

9. References

9.2. handwired qmk guide