split89 keyboard - a 3d printed 89 key split TKL keyboard base powered by ATmega32U4 Pro Micro controllers with QMK Configurator support.
This keyboard build was inspired by the Microsoft Ergonomic 4000 keyboard I used for roughly 12 years or so. I broke my left wrist twice over the years so an ergo keyboard is a must for me to type comfortably all day long else my left wrist starts to burn after a few hours of typing on a regular keyboard. This is a real bummer since there are so many amazing keyboards out there. I could not find a split TKL like this layout so I designed one. This has a 6° tent and a 3° incline. I designed this to sit as low as possible with these angles on a table. One key switch is actually in a recess in the baseplate with a few mm of material below it.
The left half has an extra key on the bottom row so you can shift to other layers. The default keymap below illustrates this.
QMK Configurator support means you can create a custom firmware for this keyboard with your own keymaps/layers or simply download the existing keymap firmware via the QMK Configurator page.
QMK Configurator - keymap/firmware generator
Table of Contents
Bill of Materials
- Print keyboard pieces
- Install keyswitches and stabs
- Prepping the diodes
- Installing the diode rows
- Installing the columns
- Wiring the controller, reset button and TRRS jack
- Programming the controllers
- Installing the base plates
- Wrap the wrist bases and rests
- Mount the wrist bases and rests
- Install rubber feet
My Personal Build
Bill of Materials
- 3d printed components in 3d_printing_stl_files directory
Print one of each:
Print two of each:
- (2) Pro Micro ATmega32U4 (5v 16MHz USB micro)
A few places to purchase
- Aliexpress (usually cheaper if you have time to wait for slower shipping)
- (1) 3.5mm TRS or TRRS male to male cable - EBay - only three pins in the TRS positions are being used so TRS or TRRS are acceptable to use for connectivity between the halves. There are some with two 90° plugs if desired for a compact fit. T = tip, R = ring, S = sleeve.
- (1) USB micro cable - only one side needs to be connected to your computer so only one USB cable is required.
- (89) keyswitches - NovelKeys - example switch to use - I'm a fan of linears. If you're not sure which keyswitch type you'd like, there are keyswitch testers out there to help you make your decision.
- (6) 2U plate mount key switch stabilizers Aliexpress
- (89) key caps - Key cap List
- Wire - 6 color pack on Amazon - 24AWG pre-tinned wired - color helps you keep track of what's where. Solid core and pre-tinned as well so soldering is easier.
- (89) 1N4148 Diodes - 100ct pack - Aliexpress - Ebay
- M3 Hardware Amazon - Aliexpress
(6) nylock nuts
- Car wrap vinyl Ebay - for covering wrist rest pad pieces. The 3d printed surfaces are rough and can hold stuff so putting this on makes them a more comfortable contact surface and easy to clean. There are videos for applying with a heat gun/hair dryer to soften at the corners to stretch around them for a smooth finish. (2) 8 1/2" x 11" sheets
- (18) Rubber feet - Amazon - 144 pack
These tools are not required but certainly make the build easier and come in handy on most electronics projects
- Micro flush cutters - these not only cut wire but have one side flattened so you can cut items flush with a surface like on the back of the Pro Micro where some wires may be sticking out beyond the solder.
- Tweezers - there are a ton of options out there. Something with a long narrow end and serrations for grip are very handy to move things around or hold them in position while soldering.
- Blue tack - this stuff is typically used to mount things on other things like cardboard or paper but a chunk works great to hold things in position while you solder. Just don't heat up objects too long or it can get a little sticky.
- Vice - great tool to have in your toolbox for holding small items.
Print keyboard pieces
I printed all of my pieces using SunLu Gray PETG. PETG is less rigid vs PLA and holds it's shape better over time vs PLA. Also figured since it's less rigid, it'd be less resonant to key presses.
For these larger pieces, I found that turning off my cooling fan helped these pieces avoid warping off of the bed.
split89_left_body.stl split89_left_body_base.stl split89_left_wrist_base.stl split89_left_wrist_pad.stl split89_right_body.stl split89_right_body_base.stl split89_right_wrist_base.stl split89_right_wrist_pad.stl
Other things to note... I changed the perimeter count to five from the default 2 in my slicer for the larger pieces as well. I wanted heavier/denser pieces so my bases didn't sound so hollow. Last, I printed these with a brim and turned off elephant foot compensation(EFC). The EFC creates a gap between the brim and the body(currently the Prusa slicer behavior) which defeats what your brim is attempting to do, avoid lifting off the print bed.
The remaining pieces for the electronics plates I printed using the default Prusa slicer settings.
A de-burring tool works great to remove the brim in a clean way from the large pieces.
All pieces were printed using .2mm layer height. All .stl files should be printed as oriented. The wrist rests use a bit of support material but I found it was the best orientation for the cleanest contact surface possible.
Install keyswitches and stabs
This keyboard has 13.9mm square holes for the keyswitches. The keyswitches should press into place firmly. The stabilizers insert and kinda rotate into their position as they are fully seated. I took the time to disassemble and lube my keyswitches using Super Lube prior to installation. Also added lube to my stabs. This is not required but the few hours you put in to lubing your switches will be noticeable over many hours of use. There are many videos out there on how to do this.
Prepping the diodes
For an easier installation and cleaner final result, I opted to put a few nails in a board with a line to help me put consistent 90 degree bends in them at the right lengths. The bottom will get a 90 degree bend. The top gets a 90 as well but then you'll use a pair of needle nose pliers to make a loop. This loop will go over one of the legs of the switches for easier soldering. Ensure that you have the black marked end of the diode facing the 90, not the loop. This is critical for your keyboard to operate. One of my diodes was backwards and the key at that location will simply not work.
Installing the diode rows
Each keyswitch requires a diode. I installed these one row at a time. I would put all diodes in place for the row I was soldering. The diode at the far right column had it's 90 leg snipped short. Once all are laid in place, solder from left to right. I used the cut off legs to cover the distance between the keys in rows that were further apart for appearance. You could just jumper these spans with wire as well.
Installing the columns
Per the diagram, using insulated wire, you will solder the 5-6 pins per column together. To do this, I would cut 8" pieces at a time. Easiest way is to just pull all six colors at once and cut them together. Remove 1/2" of insulation from one end and make a loop similar to the diodes. Put this on the pin of the switch at one end of the column. Next, you'll need to figure out where you need to expose the wire. I'd put the wire on the first pin and then bend the wire where the next pin is located. I used a set of wire strippers(which you can set how far they close) to cut the jacket(not the wire) and then, holding the looped end, pull the insulation a bit to expose 1/4" of wire. I'd repeat threading the wire in place to find where to cut and eventually end up with a piece of wire with gaps where I needed to solder. Some folks use an x-acto knife to open the wire insulation where needed. Others use a soldering iron to just melt the jacket away. At any rate, you'll build these column wires and solder them into place per the diagram.
Wiring the controller, reset button and TRRS jack
Note: keep good length wires to the reset switch, TRRS jack plate and off to the matrix from the controller in such a way that you can route them to lie flat enough so you can properly install the base plate. Note the base plate has a rim as well. If the wires are stacked too high, you won't be able to install the base plate correctly (made this mistake myself and had to install longer wires so they could route properly to lay flat).
The tactile reset switch is not directional. i.e. the two wires connecting to them just need to connect to two contacts that come out the same side of the switch.
I would highly recommend putting all jumpers required, in place on the pro micro, before mounting the pro micro on the electronics plate.
Also, note which plate goes with with which controller, right or left. They are specific to each side. The right side has more wires. Pre-wiring the controllers will make for an easier and cleaner installation. I tinned all of the pins on the controller I'd be using ahead of time. The pre-tinned wire drops into place nicely when these tinned pins are reheated.
The pins on the pro micro need to be connected to the respective rows and columns of the keyboard matrix. They can be connected at any point of the column or row. On the row connection, connect to the common connection across all diodes, not on the switch side of a diode.
I cut 8" wires again, six at a time, to connect to my pro micro and then tied them to the matrix as you can see below. I had some scrap left over but it's worth it for ease of install to ensure everything can reach with slack to give you routing options.
Programming the controllers
To download the default layout firmware, go to the above link, click 'COMPILE' in the upper right corner and you'll see a popup noting that firmware is being compiled. Once the firmware generation is complete, click the 'FIRMWARE' button to download the hex file. The reason you download from this page is so if you want to customize the keymap, you can do so. There are different colorways to view different color schemes. These do not affect the keymap.
Next, download and install QMK Toolbox. You will use this to flash the hex file onto the controllers.
QMK Toolbox - wiki - downloads
The below assume all goes smoothly. If you encounter a roadblock, check the wiki link above for further information.
Start up QMK Toolbox
At the top, select Open, navigate to the hex file you downloaded and select it.
Connect one of the halves of the keyboard to your computer via USB.
Then press the reset button twice quickly and wait a few seconds, you should see a message that your controller is connected and visible to QMK.
In QMK, click the flash button in the upper right corner.
You should see status messages scroll past and then a success message.
At this point, your keyboard half should function. Go here to test all keys on this half.
This firmware is written such that you can upload the same hex to both sides and the pins you tied high and low help the controller identify which side is left and which is right to run the correct part of the keyboard matrix.
What if a key is not working?
- check for a loose soldering connection
- check for a reversed diode
- if you have a multimeter, check that the switch closes(creates a connection between the pins) when depressed
My two issues were... I had a connection on my diode rows that was not soldered(was able to move the diode leg with a tweezer). I also had one reversed diode. Both quick fixes!
Once the second half is flashed successfully, connect the TRS/TRRS cable and ensure that both keyboard halves function correctly via a single USB connection. The keyboard can function with the USB cable connected to either half of the keyboard as long as the TRS/TRRS cable is in place.
Once you've verified both sides are fully functional, pat yourself on the back for a job well done on the wiring and programming!
Installing the base plates
M3 screw size
You can install the base plates at this point knowing your keyboard electronics build is fully functional. I created many joints between the base plates and the main bodies(hence all the screws) to minimize the drumming sound of a large surface with nothing below it. Especially with plastic vs say aluminum.
Wrap the wrist bases and rests
(optional but highly recommended)
I used 3M car wrap vinyl I got off EBay. There are many colors out there. I went with 3M carbon fiber wrap. I cut my pieces to leave about 1" extra all the way around so I had something to hang on to while pulling it in to place.
The vinyl will cover up tiny gaps and the like in the surface but larger surface texture or bumps will show through. I sanded down my surfaces with 120 grit sandpaper to knock down most of the top texture. This made the vinyl lay down nice and flat. Check the bottom of the pads to ensure they're flat for a good mount to the base. I then wiped down all surfaces the vinyl would touch with isopropyl alcohol to ensure good adhesion.
When you're ready to put the vinyl on, remove the backing and place the vinyl on a clean work surface adhesive side up. A clean work surface will help ensure no particles or the like make it's way onto this sticky vinyl else you'll see it when you're finished and then it's too late to remove. This vinyl adhesive side being face up will allow you to easily hold the pad over the vinyl to ensure the bottom edge of the vinyl is parallel to the front edge of the pad so the texture of the vinyl runs straight across the pad.
Set it down on the vinyl and then pull up the long straight edges. Avoid the corners until you add heat.
This is when you'll want to start using heat to pull and lightly stretch and form the vinyl around the edges. The heat really loosens up this material quickly. If you're nervous, try practicing with some of the left over vinyl to get a feel for it before mounting your main pieces. Once I have it pulled up around the edges, I trim it so there's about 1/4"-1/2" of material to fold over on the bottom. Heat up the bottom and press that edge down as flat as you can. This will ensure a clean look when installing the pads.
Mount the wrist bases and rests
The wrist bases are secured to the bodies with bolts and nylock nuts minus the single 10mm screw which self threads into the body only.
Mount the wrist rests on the bases. Note there are a few screws that only purchase a few threads so tread lightly to install those.
Install rubber feet
I designed the foot inset holes to allow use of feet for grip and sound isolation but not protrude all the way to avoid adding height to the keyboard.
Congrats! You're done! Happy Typing!
My personal build
My personal build main hardware
Filament - SUNLU Grey PETG
Keyswitches - Alpaca Linear
Keycaps - GMK White on Black
Car wrap vinyl 3m Black Carbon Fiber
TRS Cable - CableCreation 1.5ft
3D Printer - Prusa MK3s
Soldering Iron - Hakko FX888D
Solder - Kester 24-6337-0010
Side Cutter - IGAN-170
Adjustable Wire Stripper - Jonard Tools WS-5
See the build environment setup and the make instructions for more information.
Brand new to QMK? Start with our Complete Newbs Guide.