A Split Mechanical Keyboard, You Can Build Yourself!
Tags: startup, technology, inspiration, creativity
Published: 2022-04-25 23:18:24

---
title: A Split Mechanical Keyboard, You Can Build Yourself!
published: true
date: 2021-12-23 17:06:21 UTC
tags: startup,technology,inspiration,creativity
canonical_url: https://couedeloalexandre.medium.com/christmas-time-get-a-keyboard-you-can-build-yourself-5ef27c87210c
---

### A Split Mechanical Keyboard, You Can Build Yourself! 🎅

#### In the world of Open-Source Ergo Split Keyboards

![Ferries Sweep Keyboard](https://cdn-images-1.medium.com/max/1024/1*7aSsyC4mGrKZoyTKNshWEg.jpeg)
_Ferris split keyboard courtesy of Pierre Viseu Chevalier_

Since I started working from home, I have been obsessed with creating the most ergonomic workplace for myself. Standing desks, ergonomic stools, etc.

But up until now, nothing I could reasonably build myself. 😢

But a month ago, everything changed. I read about the benefit of split keyboards. A Keyboard cut halfway through in the middle prevents your **wrists** from tilting inward and relaxing your arms and **shoulders**.

I discovered a massive community of passionate makers: [r/ErgoMechKeyboards](https://www.reddit.com/r/ErgoMechKeyboards/) , many videos ,and Github repositories with exciting designs to copy and do yourself. ✨

In this Story, I have summarized all the knowledge I have gathered so far and will walk you through creating your Keyboard.

### What skills do you need to create one of these beauties?

Quite a lot, actually! It should range from electronic to 3D modeling to soldering and buying stuff. On top of that, it is not an expensive project; it should range from $50 to $150. But if you are passionate or curious about engineering in general, it is an excellent first project as it is accessible by anyone.

The main activities are:

1. Designing and Printing a PCB (Printed Circuit Board)
2. Buying and Assembling the electronic components
3. Designing and manufacturing the casing to protect the electronic and look event cooler 😎.

### I) Designing and Printing a PCB

This is what a PCB looks like.

![PCB keyboard](https://cdn-images-1.medium.com/max/1024/1*Vi1dnT2Q9foPWHCyf3KZNw.jpeg)
_Ferries Sweep PCB courtesy of Pierre Viseu Chevalier, David Barr, Ibnu Daru Aji, Duccio_

To create a keyboard, you essentially have two options:

- 1) You create a case and mechanically attach the key switches to the case and solder cables between the switches.
- 2) Print a PCB and solder the keys and other components.

There are several advantages to the second approach. First soldering is much easier; you just have to solder key switches in the sockets created on the board. The board itself is strong enough to hold the keys and make the Keyboard usable without a case. As a result, you can create an ultra-light keyboard and save you some effort in the process of making it for a few $.

#### I.1) Choosing the layout

The first step is choosing how your Keyboard will look like. How many keys? The spacing between the keys, etc.

Compare existing split keyboard layouts [here](https://jhelvy.shinyapps.io/splitkbcompare/). As a first step, see what is available and print the layout to get a real feel of the Keyboard.

> ☑️ Screen and Print keybord layouts from: [https://jhelvy.shinyapps.io/splitkbcompare/](https://jhelvy.shinyapps.io/splitkbcompare/)

![Me printing the layout of a Corne](https://cdn-images-1.medium.com/max/1024/1*17BFGr9WiW8Y1nvFT3USvg.png)
_Me printing the layout of a Corne_

I'd like you to reflect on the fact that you are most likely only frequently using half of the keys on your Keyboard. A standard keyboard usually has just above 100 keys. You may have noticed that most of those keyboards rarely have more than 50 keys, and this is perfectly fine.

People using split Keyboard type the same way you type on your phone keyboard: At first, you only have the letters, then you press the "?123" symbol so you can type number and some of the symbols; then, if you want more symbols you type the "=\<" key.

Ultimately **you will program the layout of your Keyboard** so you will be able to do whatever you want.

> ⚠️Not all layout on [https://jhelvy.shinyapps.io/splitkbcompare/](https://jhelvy.shinyapps.io/splitkbcompare/) are open source, so you won’t be able to get the file for printing the PCB

#### I.2) Designing the PCB

Once you have set yourself to mind a layout, you can customize it. Search on Google or on Github for the source to get started. Theoretically, you could just download the file and send it to the PCB manufacturing. But why tunning your chance to have a genuinely unique keyboard?

I learned the basics about how to customize a PCB from [this video](https://www.youtube.com/watch?v=JqpBKuEVinw). I highly recommend watching it. But here is a quick summary of what you need.

> ☑️ You will need a software to edit the PCB such as KiCad: [https://www.kicad.org](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjN0LU4zQnBtaFA3NDBoVVF1Z3ZOeFpaUkZLd3xBQ3Jtc0ttZEl1Vi1rMlZsWEtXYlR6NWZFb2VfM3ZzY0NFUXpIQlR2YXJhVlVzbmN4MkVVaWh0XzdSdk91OTlESzg0MU9Rd0swQlRrblhqRWQ2X2R2RFJNS3ZyelkzbFVaczd1cU5FOVg1TVp3eERHcXEtZXczUQ&q=https%3A%2F%2Fwww.kicad.org)

For the sake of this example, I downloaded the PCB [Gerber File for Sweepv2.1](https://github.com/davidphilipbarr/Sweep/blob/main/Sweepv2.1/sweepv2.1_gerber.zip).

![Sweepv2.1 in KiCad Gerber Viewer](https://cdn-images-1.medium.com/max/1024/1*3o4kTnLEslnYjEGoNQvQLA.png)
_Sweepv2.1 in KiCad Gerber Viewer_

> ❗️️️️❗️ ️️️️️If you want to have a quike look to a Gerber file archive you can use this [Online Gerber Viewer](https://www.pcbway.com/project/OnlineGerberViewer.html) (I found it much clearer to understand the different layers)

PCB manufacturers literally use Gerber Files to print your order layer bay layer. See the different layers on the right side. In the archive, you open containers with one file per layer.

![Gerber files](https://cdn-images-1.medium.com/max/822/1*mP2dnuHRW3W8kjxBFVK6NA.png)

- **\*.xln** is the Drill layer, = Where to make holes.
- **\*.gm1** the board Edges = how to cut the PCB to detached from the mainboard.
- **\*B\_Cu.gbl** and **\*F\_Cu.gtl** are the front and back copper layer = where to print copper wire to create connectivity.
- **\*B\_Mask.gts** and **\*F\_Mask.gbs** are the back and front solder masks = was to print the protective layer on top of the copper layer. This layer is ofter green and gives there distinctive color to the PCB. Luckily more colors are available 😉.
- \ ***B\_Silk.gbo** and \ ***F\_Silk.gto** are the back and front silkscreen = the decorative prints on top of the solder masks, usually used to write references dor the component to solder.

Well, this is not entirely true. Once you understand each layer's use, nothing stops you from customizing a PCB to your heart content 👼. Before editing the board, you need to know what component you want to fit in, and this is the object of the next section 😈.

### II) Choosing the components

#### II.1) Choosing the switches

The first thing you need to know is that there are essentially three types of mechanical switches.

- **Clicky switches** are the noisy ones. The typical switches you associate with a mechanical keyboard give you this satisfying click sound at the end of a stroke.
- **Tactile switches** are not as noisy but give you tactile feedback when you press the key.
- **Linear switches** are more and more common and provide no feedback or noise as you type, design for a smooth and soothing typing experience.

![Types of mechanical switches](https://cdn-images-1.medium.com/max/600/1*qepnoBqBUnrL_EwAto94tw.jpeg)
_Types of mechanical switches_

Second the nuance you can find high vs. low profile. This choice is often associated with choosing Cherry MX VS. Kailh Chocolate.

> ❗️️️️ ❗️️️️ T️here is more brand of key switches I invite you to read more about it [here](https://keyboardclack.com/mechanical-keyboard-switches-comparison-guide-colors-types-brands/). Most manufacturer provided both type of profile, but i notice that in Open-source built Kailh was choosen for their low profile key and Cherry MX for their high profile key.

![igh Profile vs. Low Profile](https://cdn-images-1.medium.com/max/640/1*V2KhnpfWV1UPWAS5geWMsA.jpeg)
_High Profile vs. Low Profile courtesy of u/songcq_

The choice should be influenced by the feeling you are looking for in your Keyboard and whether you want your Keyboard to be compact or not. For a compact Keyboard, you need to go for low-profile switches.

> ☑️ You will need to select you switches and the download the specs (datasheet). This Github repository contains datasheets for most manufacturer: [https://github.com/keyboardio/keyswitch\_documentation](https://github.com/keyboardio/keyswitch_documentation)

You need to validate that the key switches you are selecting are compatible with your PCB. Otherwise, you will need to do some edits to make sure they properly fit.

![Circuit Board Layout for Keith Choc Blu](https://cdn-images-1.medium.com/max/1003/1*8cvpm3BpIMI2YIMJuDYDmQ.png)
_Circuit Board Layout for Keith Choc Blue_

#### II.2) Choosing the keycaps

The only thing that matters is selecting key switches that match the brand you choose (Cherry MX VS. Kailh Chocolate). Aside from that, just have fun and explore the many options available on the market.

![Fun Keycaps for Mechanical Keyboard from Etsy](https://cdn-images-1.medium.com/max/1024/1*yK1mt0NP8cwpsvxfwu6CPQ.jpeg)
_Fun Keycaps for Mechanical Keyboard from Etsy_

If you want to push this project a bit further, you can decide to print your own keycap.

> ☑️ You can screen for existing 3D model with online libraries like : [https://www.yeggi.com/](https://www.yeggi.com/)

![Me searching for 3D Models on Yeggi](https://cdn-images-1.medium.com/max/1024/1*2S1UpRw1h4aOYKr8suPBqQ.png)
_Me searching for 3D Models on Yeggi_

#### II.3) Choosing the micro-controller

The microcontroller est the brain for your keyboard. It converts keystrokes into understandable code used by your PC by implementing the [Keyboard Protocol](http://www.simandl.cz/stranky/elektro/keyboard/keyboard_a.htm).

Luckily you won’t have to code to much thanks to the community and the Open-source keyboard firmware [QMK](https://github.com/qmk/qmk_firmware). With QMK you only need to define the keymap using an [online configurator](https://config.qmk.fm/#/splitkb/kyria/rev1/LAYOUT), for instance, then flash the microcontroller.

The most popular options are:

- [**Pro Micro**](https://deskthority.net/wiki/Arduino_Pro_Micro) most common microcontroller board, you are bringing [Arduino’s](https://www.arduino.cc/) power to your board.
- [**Elite-C**](https://deskthority.net/wiki/Elite-C) higher-end microcontroller, ideal if you plan to add features over time.
- [**Nice!nano**](https://nicekeyboards.com/nice-nano/) if you want to create a vluthouth keyboard

A microcontroller board might be the most expensive element of this build especially given that you need two of them so you could opt-in for onboard keyboards. The controller board I listed essentially relies on [ATMEGA32U4](https://www.digikey.com/en/products/detail/microchip-technology/ATMEGA32U4-AUR/2238241). **If you have the skills and knowledge** you could consider going for [SMT assembly](https://www.qualitel.com/what-is-smt-manufacturing/) and have your microcontroller solder on the board.

#### II.4) Extra designed feature you may want to consider

- **Socket for the microcontroller board**. Let's say you want to convert the keyboard into a wireless keyboard later socket would allow you to

![Socket for the microcontroller board](https://cdn-images-1.medium.com/max/1024/1*BvXsWSWPMxYUzQj_DLBOZw.png)
_Socket for the microcontroller board_

- **Hot-swappable key switches socket**. This would allow you to change the key switches at will and prevent you from having to solder the key switches to the board

![Kailh Hot-Swap Sockets](https://cdn-images-1.medium.com/max/1024/1*K2DO10HAbM0wVMXcyNE09w.jpeg)
_Kailh Hot-Swap Sockets courtesy of u/davenelsondotcom_

- **RGB LEDs.** Just to make things fancy

![Corne Split Keyboard from crkbd](https://cdn-images-1.medium.com/max/1024/1*KhdmZZYc7EVliYo6E6pzJg.png)
_Corne Split Keyboard from crkbd_

- **OLED Arduino module**. So you can have on the keyboard display

![OLED Arduino module](https://cdn-images-1.medium.com/max/1024/1*RtECCjZTcI8YIDtKFMMeFw.jpeg)
_OLED Arduino module_

- **Tenting support.** Tenting consist of adding some inclination to the keyboard so your wrists have a more natural position

![Split keyboard with Tenting](https://cdn-images-1.medium.com/max/1024/1*BgJhUB-RJRq7Tu3MqOVq0A.jpeg)
_Split keyboard with Tenting_

I am sure the is a lot more feature we can add to a keyboard 😆.

> ☑️ Select your features, study the componenents, make adjustement to your PCB.

### III) Designing the case

Last but not least the case, the protective and decorative envelope for your keyboard.

Some people like the look of the PCB and choose to simply have cut acrylic sheets. The process is simple and requires no machining so it is one of the best options. On top of that if you opted for the LED this would for sure look awesome.

![Corne Technician Keyboard Case from littlekeyboards.com](https://cdn-images-1.medium.com/max/1024/1*ZitXLlO8SAJjaPmV8_90mA@2x.jpeg)
_Corne Technician Keyboard Case from littlekeyboards.com_

The second option is to have a 3D-printed case. The best would be to start from an existing design and adapt it.

> ☑️ You can screen for existing 3D model with online libraries like : [https://www.yeggi.com/](https://www.yeggi.com/)

### Where to get all the parts?

Once you have designed your keyboard you may be wondering: how do I get all the parts?

With your Gerber file you can get your PCB printed with:

- [https://www.pcbway.com](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa0VqaF9yNFJTTDF0WVQ0ZTlEYnd3Zi1zVGNlQXxBQ3Jtc0tsamZnSFJ5Q3FfSzVhWWp6YXBwWUJsOHIzcGdFR3NuSzEwZXVyVzRuREw2WnBiUVY2bzFNU2xoRW1EbXZFUldOcnJsZDFpOUJ0RDF4VGxISnIwYmlGamdlSVNJeXdGSGxKUXZvQ2Fpd2xmLVZ4LWViZw&q=https%3A%2F%2Fwww.pcbway.com)
- [https://jlcpcb.com](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDVNUlRjZG9xazFxMFdpRWs3ZExhZUhvd25qZ3xBQ3Jtc0tuZjhfZ3ZkaWxZVVBYZFd4QUNhR1BnQkY2UHZwSzgtaThuRXBOMTc5LUpUTFkxRjdna04zV0dWdDNtYWxWY0o4VFVqWWVfREp3T3NBSnlYcFo5QlRFa2ZRZHdFTmJ2WmFLOTVKYzY0RVh5dHZqVjMwNA&q=https%3A%2F%2Fjlcpcb.com)

For the components there is a bunch of dedicated stores online:

- [http://mechboards.co.uk](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa1hFSmx3QmVOSGpOVDE5RG8yWnVhSnM5eVFLZ3xBQ3Jtc0tsdnpGeW53VXc1ZVNVLWtFRlcxLVJ4TlM0YndIa1doX3VPVFhTQTdwVlZkMkV3aTA1a3B1TDBQaXVvZmpwb2g0ODhtV2txcVVrN0ZDS0pwbTc3dVd4S0tUQmstNVJ1RUxHR1lDSU9GODFBdi1PTFhJbw&q=http%3A%2F%2Fmechboards.co.uk)
- [http://splitkb.com](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbTU1MFN6elh0eHlKTmtEZ2VKcWQ0cnlpTHFaUXxBQ3Jtc0trcHJTZjBLemdXNGJGTDQtQVZnSHRzZUludkU5dWp6ZGxoNWd2ekZHaGliLWtXcXliRVFseHRsSGFEbGtiLTVGRjhuZWVfREtVandVdlVaTWdfOVFjYVJ2UzBORzlyTFJ4bGowZEhBX2NwWUdzX3Q2cw&q=http%3A%2F%2Fsplitkb.com)

For the case and other 3D printed objects:

- [https://jlcpcb.com](https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbDVNUlRjZG9xazFxMFdpRWs3ZExhZUhvd25qZ3xBQ3Jtc0tuZjhfZ3ZkaWxZVVBYZFd4QUNhR1BnQkY2UHZwSzgtaThuRXBOMTc5LUpUTFkxRjdna04zV0dWdDNtYWxWY0o4VFVqWWVfREp3T3NBSnlYcFo5QlRFa2ZRZHdFTmJ2WmFLOTVKYzY0RVh5dHZqVjMwNA&q=https%3A%2F%2Fjlcpcb.com)
- [https://i.materialise.com/](https://i.materialise.com/)

> ❗️️️️ ❗️️️️ Shipping fees seems to be the most expensive part of this build so try to find local manufacturer to reduce the costs.

### Conclusion

I am about to order all the parts so I keep this section to share the build 😉.

Here is the follow-up article with the part I bought (about $40 per keyboard excluding shipping fees):

[How to Build a Custom Split Mechanical Keyboard: Bill of material](https://couedeloalexandre.medium.com/how-to-build-a-custom-split-mechanical-keyboard-bill-of-material-b2cf1ab62fef)

### References

Compare all split keyboard layouts: [https://jhelvy.shinyapps.io/splitkbcompare/](https://jhelvy.shinyapps.io/splitkbcompare/)

More PCB editing tools: [https://support.jlcpcb.com/article/22-how-to-generate-the-gerber-files](https://support.jlcpcb.com/article/22-how-to-generate-the-gerber-files)

Opensource Keyboard — Corne lines

- [https://github.com/MakotoKurauchi/helix](https://github.com/MakotoKurauchi/helix)
- [https://github.com/foostan/crkbd](https://github.com/foostan/crkbd)

Opensource Keyboard — GergoPlex Line

- [https://www.youtube.com/watch?v=TpJQtzaThmM](https://www.youtube.com/watch?v=TpJQtzaThmM)

Opensource Keyboard — Ferries Line

- [Original Project: https://github.com/pierrechevalier83/ferris](https://github.com/pierrechevalier83/ferris)
- [https://github.com/davidphilipbarr/Sweep](https://github.com/davidphilipbarr/Sweep)
- [https://www.youtube.com/watch?v=JqpBKuEVinw](https://www.youtube.com/watch?v=JqpBKuEVinw)
- [https://github.com/forrestbaer/roost](https://github.com/forrestbaer/roost)
- [https://github.com/MelindaBirkenstock/Ferris-Slip-On-Case](https://github.com/MelindaBirkenstock/Ferris-Slip-On-Case)

Opensource Keyboard— 3W6 Line

- [https://github.com/weteor/3W6](https://github.com/weteor/3W6)

Opensource Keyboard — fifi line

- [https://github.com/raychengy/fifi\_split\_keeb](https://github.com/raychengy/fifi_split_keeb)

Other articles:

- [https://switchandclick.com/are-ergonomic-keyboards-worth-it/](https://switchandclick.com/are-ergonomic-keyboards-worth-it/)