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:
Here are the options I considered with pros and cons. I also included KLE json for each of them for convenience sake.
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"]
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},"","⇑","←","↓","↑","→"]
pros: - easier build - nicer case than I could make
cons: - expensive
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
wood case acrylic plates hand wired
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
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},"","⇑","←","↓","↑","→"]
acrylic and standoffs for case (ie raspberry pi)
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","⇑","←","↓","↑","→"]
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.
Store | Cost |
---|---|
Bangood cart | R1450 |
Aliexpress (just caps) | R223 |
Total | R1673 |
Keyboard Firmware Builder proved extremely helpful in working out the layout for this build.
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.
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.
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.
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.
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
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.
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).