A first attempt a building or to buy?
I have wanted a split keyboard for some time, but there do not appear to be any commercially available product to my liking or if they are to my liking they are wildly expensive compared to regular keyboards. While investigating the issue I came across this sub-reddit; to my delight. I was inspired to build my dream. I design electronics for a living so creating a keyboard would not be a difficult task.
The following diagram contains the layout I would ideally like to have; I spent the last 2 hours or so designing it. It is ortho-linear split design with 2 sets of macro keys that closely resembles the layout of a regular full size keyboard. Before I go off and build it I would like some advise.
To build or to buy?
On buying
Building one would not be technically difficult but it would be tedious and time consuming. I would like to spend less time on design, pcb fabrication, and programming if i can get a kit that has a similar layout. I just need the alphabet cluster on the left to be about 50 cm (20") from the cluster on the right to account for my width; it does not matter to me if the width is achieved through a 2 (or 3) piece design or a sufficiently wide 1 piece design. The macro keys (and the key in red to program them) are optional. Any suggestions on existing kits or products that resemble the above layout?
On building
Any advise on tools for design and construction, or any guides that I would follow? The reason I ask is because I want to minimise/reduce work and money spent.
-
If it was left to me I would use Schmitt Trigger debounce circuits to debounce each switch separately and shift registers to read all button states in one go; timed with timer interrupts. That is a lot of hardware and complexity compared to what I see in most open source designs which have no debouncing and always use multiplexing/charlieplexing instead of shift registers, or IO expanders. Any recommendations or guides for hardware design?
-
Any recommendations of software libraries to dynamically interpret key presses? My first thought was to hard code on the microcontroller the signals transmitted when the keys are pressed. This would be tedious but easily doable with the exception of the macro keys which would require a bit more work to allow for the programming of key combinations. But there has to be an easier way, and I don't want to reinvent the wheel. What software packages exist to handle key presses, and macro keys?
Thanks for your help.
Posted Dec 30, 2025, 9:06 PM UTC