Skip to content

TomasD-git/Split-Keyboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cd4940c · · Apr 1, 2026

History

38 Commits
Apr 1, 2026
Mar 27, 2026
Mar 27, 2026
Mar 27, 2026
Mar 27, 2026
Apr 1, 2026

Repository files navigation

Split-Keyboard

A handwired split mechanical keyboard — essentially a modified 60% layout cut down the middle, powered by two ESP32 microcontrollers communicating wirelessly.

Screenshot 2026-04-01 140808

How it works? The keyboard is split into two halfes, each wired to its own ESP32. Key presses are detected via a switch matrix using 1N4148 diodes to prevent ghosting. The two halfes communicate over wireless, and the firmware handles all HID (Bluetooth/USB) output. Switches sit in a custom PCB made from the Gerber files, and the case is 3D printed..

Click me to see BOM
Name Purpose Cost Per Item (USD) Quantity Total (USD) Link Distributor
Keycaps The keycaps sitting on top of the switches 15 1 set 15 Link AliExpress
ESP32 N8R2 Brain of each half 7 2 14 Link AliExpress
M2xL3xOD3 heat-set inserts for securing the case without stripping 4 1 pack 4 Link AliExpress
5×3mm magnets (pack of 50) hold together both halfes 5 1 5 Link AliExpress
Cherry MX switches The mechanical switches under each keycap 16 1 pack 16 Link AliExpress
1N4148WT SOD-523 diodes One per switch — prevents ghosting in the key matrix 4 1 pack 4 Link AliExpress
M2 screws Holds the PCB and case together 7.32 1 pack 7.32 Link AliExpress
PCB Custom PCB made in KiCad 53 1 53 Gerber files in repo JLCPCB
3U Spacebar (3D printed) Custom wider spacebar for the split layout 0 2 0 Print myself MakerWorld
Layout

Standard (unsplit) layout:

["Esc","1","2","3","4","5","6","7","8","9","0","-","=",{w:2},"Backspace","PrtSc"],
[{w:1.5},"Tab","Q","W","E","R","T","Z","U","I","O","P","/",")",{w:1.5},"|",{a:6},"Left"],
[{a:4,w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",{f:6},":",{f:5},"\"",{f:3,w:2.25},"Enter","Down"],
[{w:2.25},"Shift","y","x","c","v","b","n","m","<",">","?",{w:2.75},"Shift","Up"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:0.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"]
ght"]
t"]
","?",{w:2.75},"Shift","Up"], [{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:0.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"],"S","D","F","G","H","J","K","L",{f:6},":",{f:5},"\"",{f:3,w:2.25},"Enter","Down"], [{w:2.25},"Shift","y","x","c","v","b","n","m","<",">","?",{w:2.75},"Shift","Up"], [{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:0.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"]ot;]" tabindex="0" role="button">

Split layout (gap between columns 6 and 7):

["Esc","1","2","3","4","5","6",{x:1},"7","8","9","0","-","=",{w:2},"Backspace","PrtSc"],
[{w:1.5},"Tab","Q","W","E","R","T",{x:1},"Z","U","I","O","P","/",")",{w:1.5},"|",{a:6},"Left"],
[{a:4,w:1.75},"Caps Lock","A","S","D","F","G",{x:1},"H","J","K","L",{f:6},":",{f:5},"\"",{f:3,w:2.25},"Enter","Down"],
[{w:2.25},"Shift","y","x","c","v","b",{x:1},"n","m","<",">","?",{w:2.75},"Shift","Up"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:1.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"]
ght"]
t"]
","?",{w:2.75},"Shift","Up"], [{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:1.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"]t;,"D","F","G",{x:1},"H","J","K","L",{f:6},":",{f:5},"\"",{f:3,w:2.25},"Enter","Down"], [{w:2.25},"Shift","y","x","c","v","b",{x:1},"n","m","<",">","?",{w:2.75},"Shift","Up"], [{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:2.75},"Space",{x:1.5,w:3},"Space",{w:1.25},"AltGr",{w:1.25},"Fn",{w:1.25},"Win",{w:1.25},"Ctrl","Right"]ot;]" tabindex="0" role="button">

You can visualise and edit these layouts at keyboard-layout-editor.com.

Pictures Screenshot 2026-04-01 140808 Screenshot 2026-04-01 140824 Screenshot 2026-03-26 151321 Screenshot 2026-03-26 151123 Screenshot 2026-03-26 151553
For Future

Planned improvements:

Bluetooth
Add battery, so keyboard can be used with bluetoothh

Proper firmware (ZMK / QMK / KMK)
Move from a hand-rolled firmware to ZMK (ideal for wireless ESP32 splits) for layers, combos, and community support..

Carrying case
A small 3D-printed travel case or pouch to store both halves and the cable..

License

MIT License

Copyright (c) [2026] [TomasD-git]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:ions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software..

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.TWARE.

About

split keyboard, basically modified 60 precent

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages