Redox keyboard

The Redox project is an open-source, QMK (Quantum Mechanical Keyboard Firmware) powered, ergonomic split mechanical keyboard.

Similar projects worth following
Humans interfacing with the computer have to deal all with the same ergonomic nightmare: the keyboard. Almost untouched since the typewriters days the keyboard is still here, provoking RSI and hurting our fingers since the early years of computer history. How about something different?

The Redox is a keyboard project designed with ergonomics in mind. It uses Cherry MX style mechanical switches laid out in a 7x5 columnar stagger layout with components that can easily be sourced.

The design was heavily inspired by the Ergodox keyboard, and its main goal is to reduce the size without sacrificing too many keys, hence the name Reduced Ergodox.


The main goal of this kind of boards is to improve ergonomics of the keyboard and achive a healthier way to interface with the computer.

Thumb cluster

One of the first design goal of the keyboard is to make more use of the thumb, hopefully taking away some work from the pinkies. I began taking interest in this kind of design when I started my Software Engineering job as I started to type a lot and my pinkies started to hurt.

The following is the layout I normally use at work. You might notice how I moved some of the keys I usually pressed with my pinkies to the thumb cluster (ctrl, backspace, enter).

This kind of layout also removes some stress on the wirst since you don't need to move your hand as much as on a normal keyboard.

Columnar staggered layout

The keyboard is not arranged into rows like regular keyboards, it uses a columnar arrangement instead. The row staggered layout is a heritage from the old typewriters that needed such an arrangement to prevent the percussors to get stuck. Such a design is not needed anymore and doesn't fit with the human hand conformation.

Split design

The keyboard has 2 halves that you can place as far as you want, this way you can take a more comfortable posture with your wirst and shoulders.

Here's some comparison footage:


The keyboard uses an open-source firmware called QMK (Quantum Mechanical Keyboard Firmware) this allows for a great number of features to be available for the device:

  • Full programmability
  • Double function keys
  • Macros
  • Layers

Take a look here for the complete list of features offered by QMK, these will make you fell like you have more keys than you need.

Improvements over the Ergodox design

As an Ergodox user I couldn't ignore the few flaws of the original design and in a moment of arrogance I tried to fix them, thus the Redox features:

  • Easier to reach thumb cluster.
  • Additional easy-to-reach rotated 1.25u thumb key.
  • Reduced size.
  • Reduced costs (the Redox uses Arduino Pro Micro instead of the Teensy 2.0).
  • Either half can be plugged in to the PC since each half can act as the master.
  • Either half can work as a standalone keyboard to be used as a macropad/gaming keyboard.
  • RGB backlighting support.
  • 3D-printer friendly case
  • Wireless


Project details

The Redox rev.1 project consists of a PCBs designed to be used in both halves of the keyboard, a case and an open-source firmware based on the QMK firmware.

The PCB was designed using KiCad, the case was initially developed using Fusion360.

The two halves use two Arduino Pro Micros as microcontrollers connected by a TRRS cable for I2C/serial communication and power. Each half can work indipendently from the other, when used both they need to exchange data to know which key is pressed in the other half of the keyboard.

When used with a WS2812 backlight serial communication must be used since the fourth...

Read more »

Here you'll find the Redox rev1.0W (Wireless) files: - KiCad project files - KiCad footprints used in the project - Transmitters PCB schematic - Transmitters PCB gerber files - Pre-built firmware files (left transmitter, right transmitter, receiver and QMK firmware) - Case files (RedoxWirelessRev1BottomLeft.STL, RedoxWirelessRev1TopLeft.STL, RedoxWirelessRev1BottomRight.STL, RedoxWirelessRev1TopRight.STL)

Zip Archive - 927.65 kB - 10/20/2018 at 10:59


Here you'll find the Redox rev1.0 files: - KiCad project files - KiCad footprints used in the project - PCB schematic - PCB gerber files - Pre-built firmware files - Case files (RedoxRev1BottomLeft.STL, RedoxRev1TopLeft.STL, RedoxRev1BottomRight.STL, RedoxRev1TopRight.STL)

Zip Archive - 859.63 kB - 10/20/2018 at 10:55



Redox case holes and outline (useful for CNC and new cases designs) dxf format

AutoCAD DXF - 50.51 kB - 08/21/2018 at 11:47



Redox case holes and outline (useful for CNC and new cases designs) svg format

svg+xml - 7.99 kB - 08/21/2018 at 11:47


  • Redox codename Ultron pt.14

    Mattia Dal Ben01/04/2019 at 10:05 2 comments

    Easier to solder receiver.

    By popular demand (kinda), I developed a new receiver for the Redox codename Ultron project.

    I thought this was needed because the Mitosis receiver is pretty hard to solder (I'm looking at you 1206 4.7k resistor array) and components are hard to find (at least at reasonable prices here in Europe. Stupid sexy Digikey international shipping fee).

    I then designed a receiver that uses only standard 0805 components, easy to solder and whose components can be easily found on eBay.

    Here's the PCB I manufactured. Unfortunately the font wasn't really readable so I improved this in the v.2.0 of the receiver which is the one I got the rendering from.

    Unfortunately I did not receive the MCUs yet so I had to improvise to test if everything is working.

    As always all the files and instructions are freely available at the Redox project repository.


  • Redox codename Ultron pt.13

    Mattia Dal Ben12/29/2018 at 12:50 0 comments

    Battery usage update

    Here's the latest measurements of the batteries' voltage:

    Left hand voltageRight hand voltage

    This was getting boring so I used this as an excuse to buy myself an oscilloscope for Christmas :D

    Let's focus on the problem: I used a 10 Ohm shunt resistor to get the current used by the MCU of the transmitters. I put a pen under the keyboard to keep a key pressed and got the following:

    As expected I found a current peak at 1 KHz consistent with what I set in the software.

    Fun fact: you can actually see when the MCU puts the 7 column pins high to check on the key presses.

    So, what's the battery usage? 

    The current draw for a key kept pressed is:


    idle duration

    idle current draw

    current peak duration

    current peak draw

    Please note that the number of keys being pressed doesn't change the current draw.

    We can suppose this is the behavior as long as you keep typing on the keyboard (Actually the firmware goes back to sleep when it detects no key being pressed for 500 ms, so you have to type at under 60 characters per minute to trigger the deep sleep, which is unlikely).

    So, knowing the battery is rated for 220 mAh, we get:

    HP: Let's say you work 8h a day. We can suppose you type continuously for half your work hours (a bit of a stretch but bear with me). So 4h per day means the battery lasts:

    Not bad.

    TLDR: Given the data I collected I can expect the battery to last at least a year. Obviously YMMV.

  • Redox codename Ultron pt.12

    Mattia Dal Ben11/10/2018 at 09:55 3 comments

    Battery usage update

    Here's the latest measurements of the batteries' voltage:

    Left hand voltageRight hand voltage

    I don't quite know how to interpret this data points. The outside temperature lowered these last weeks thus influencing the voltage reading of the batteries. I should probably adjust the next readings to the temperature to actually know what's going on since I didn't take into account its role in the reading initially...

  • Redox codename Ultron pt.11

    Mattia Dal Ben10/20/2018 at 10:44 0 comments

    Battery usage quick update and Redox Wireless release.

    Here's the latest measurements. The batteries seems to have stabilized around these values, I might need to find a multimeter with higher resolution to better check the voltage.

    Left hand voltageRight hand voltage

    I now feel sufficiently confident with the power consumption to release the PCB files as open source on the Redox project repository. Here you'll find:

    • The transmitters gerber files
    • The receiver gerber files
    • The KiCad project files
    • The KiCad footprint library files I've used

    I'm also merging the Redox firmware sources into the QMK firmware project. I'll still monitor the battery usage in the following weeks and report regularly. 

    See ya next time!

  • Redox codename Ultron pt.10

    Mattia Dal Ben10/13/2018 at 08:15 0 comments

    Battery usage update.

    In the last two week I used my wireless Redox as my daily driver at work. This means that I use the keyboard 8 hours a day, 40 hours a week and shut it off before going home. It stays powered off during the weekend. I would say that my usage is medium-high since I have a keyboard-centric workflow (I use i3, vim and clion with vim plugin on my workstation), so take this into account.

    I measured the battery voltage every weekend and these are the results:

    Left hand voltageRight hand voltage

    I know I have not enough data but I will try to make a guesstimate anyway.
    I would approximate the voltage drop to 0.02 V per week of usage. Looking at the CR2032 datasheet

    we can assume a linear discharge down to 2.5 V.

    With these data I estimate that a battery could last 25 weeks or 6 months (0.02 V drop per week starting from 3.0 V), in  other words 1000 h of battery life. This is without considering that the MCUs are rated for a minimum 2.0 V operating voltage.

    This seems pretty good actually.

    Anyway I wouldn't take this estimate as definitive since I have not enough data yet. In the next two weeks I'll keep the battery monitored and report the usage.

  • Redox codename Ultron pt.9

    Mattia Dal Ben09/29/2018 at 08:51 7 comments

    The end of the journey finally...

    As you might guess from the video above I finally received the case from Falbatech. It needed some little adjustments but now it's perfect.

    Here's some pics.

    Everything's ready.

    Perfect fit.
    Well... almost perfect fit. This case is designed for the standard Redox, so I had to adapt it to my needs. As you might notice the battery is lower than the case border, it fits but it was difficult to remove it from the holder. All it needed was some filing.
    I traced some mark to know where to file.
    Time to solder the switches.
    For this build I used some Cherry MX silent red switches. Since I plan to use it at my job I need to be as silent as possible. Here I put a few switches and soldered them to keep the PCB in place as I added all the remaining switches.
    Rince and repeat.

    I also assembled the Mitosis receiver separately. My breadboard-based receiver isn't as nice as this one.


    Here we are. The finished product.

    I'm writing this log with it and i find it really comfortable to use without having a mess of cables around. I think that a split keyboard really shines when there's no cables to limit its positioning. I love it!

    So... what now? I will put the assembly instruction on the Redox repository in the next few days and I will report on the battery usage whenever I can.

    I hope you enjoyed this build as much as I did. It took me longer than I initially tought but I think the final product was well worth the effort.

    See ya on another build! =D

  • Redox codename Ultron pt.8

    Mattia Dal Ben09/23/2018 at 10:01 0 comments

    ... I almost forgot about the 3D printable case!

    Since one of my goal is to make this keyboard affordable, I designed a 3D printable case in the past for the first revision. Now I'll do the same starting from the same case.

    Here's some pics of the design:

    Note: the PLA filament is pretty flexible and it's not the best material for a keyboard plate but I tried my best to make it nice to use. I designed the plate to be 4mm thick with a cutout for the plastic stabs in the switches to grip on. I followed the mechanical drawing here:

    The main difference in the case design from the past revision is the bottom half. For the Wireless version we don't need to be as high as before since we don't need to make space for USB connectors and such.

    Here's the timelapse of the print thanks to my cousin Filippo, owner of the printer =D (Hephestos i3 MK2)

    Perfect fit!
    This plate is great, 4mm is the perfect thickness for it. It doesn't flex and you I didn't take into account the stiffness of the PCB... this went much better than expected!

  • Redox codename Ultron pt.7

    Mattia Dal Ben09/19/2018 at 17:34 0 comments

    "Look ma, no wires!"

    The battery holders finally arrived. I couldn't resist and soldered them right away.

    Some solder is needed on the ground pad to contact properly with the battery.

    Finally complete!

    Just a quick check to see if everything works:

    And now we wait for the case and the final assembly!

  • Redox codename Ultron pt.6

    Mattia Dal Ben09/15/2018 at 13:16 2 comments

    Components finally! (Well... at least some of them)

    Yesterday I received the MCUs and some other parts for the keyboard. I'm still missing the CR2032 holders and the case. I hope they'll arrive soon...

    Anyways here's some pics:

    1N4148 diodes installed.

    Angled programming header for the MCU.

    And now for the tricky part: the YJ-14015. I choose these because they are cheap and have a smaller footprint than the Core51822B but looking at them I was worried I couldn't solder them. Solder paste to the rescue!

    This is the most difficult component I have ever tried to solder but with the solder paste it was a breeze. I put some masking tape on the MCU to keep it in place, then I added the paste. A quick pass with the soldering iron and the job was done. I did a few touch-ups with the tip of the iron here and there just to be sure.

    Not bad.

    It's testing time!

    Since I don't have the battery holders yet I improvised using the ST-Link programmer as a power source. After uploading the firmware...

    I checked and all keys are registering. Excellent!

    Now I need to wait for the last pieces of the puzzle and the keyboard is finished. Soon I'll update the Redox project repository with all the instructions and components needed for the project.

    Stay tuned!

  • Redox codename Ultron pt.5

    Mattia Dal Ben09/03/2018 at 20:14 0 comments

    PCBs are finally here!

    I spotted a few things I need to improve but everything looks good. I only need to wait for the components to arrive... 

View all 17 project logs

  • 1
    Redox rev.1 assembly instructions

    The assembly instructions are available here.

  • 2
    Redox wireless assembly instructions

    The assembly instructions are available here.

View all instructions

Enjoy this project?



Michael McMullin wrote 06/17/2021 at 04:59 point

I'm pretty new to building my own keyboards, and I have everything already ordered to build several Redox W boards. I was just curious if anyone had already tired to use Adafruit Feather 32u4 as the receiver? It seems like it would be a workable solution, but I'm not really sure where to start with it. Any ideas?

  Are you sure? yes | no

nicolas wrote 02/19/2021 at 07:22 point

Hey, I'm trying to build a redox but I'm having trouble sourcing 1.25u keycaps. Would it be possible to have a case designed for 1.5u keycaps? I'm going to handwire so the pcb is not a problem. 

If it's to difficult of a request (I don't know if it's just changing a dimension on CAD or a complete redesign), I'm willing to give it a try myself but I'm not very experienced using CAD. How would you go about this design? How did you choose by how much to stagger the keys vertically? How about the angle for the thumb cluster? 

Thanks a lot, your design is great!

  Are you sure? yes | no

ldt180000 wrote 01/12/2020 at 22:17 point

Hey, I've been following along trying to build my own but I'm stuck. I loaded all of the firmware and have everything soldered except the switches. When I plug in the receiver board, it shows up as redox wireless under my devices and the reset switch works, but I get no response from either board.  Do you have any advice on where I should look next?

  Are you sure? yes | no

ypixel wrote 05/23/2019 at 04:28 point

Gotta start by saying kudos dude! Great project. I want to use Kailh Choc switches on a Redox PCB, will that work? And if I wanted to use Mill Max sockets for said Choc swithces would that work on the current PCB?Thanks in advance!

  Are you sure? yes | no

LucidityCrash wrote 04/29/2019 at 09:38 point

A quick question and a suggestion for rev 1.1 of the Wireless Receiver :

1) What is the c_led used for ? ... I can't see any plumbing in the provided qmk code to make it work.  Assuming I've not missed it how would I enable it ?

2) You've used the RAW pin from the Pro Micro, connected to VIN on the receiver board, to power the receiver's LED's and voltage regulator and left the VCC on the Pro Micro, connected to 5v0 on the receiver board, unconnected to anything else that I can see.  Would it not be better to use that VCC pin rather than the RAW pin to power the receiver board ?  This would enable you to swap out the Pro Micro for the Elite-C which has B0 instead of RAW in that position.

  Are you sure? yes | no

Zach Walton wrote 04/19/2019 at 19:26 point

First off, your like my hero to do all of this! it has been incredible to see the progress you have made on this, and I view your 'dox' as the best option for me personally. such a beautiful and functional keyboard.

I was wondering if you had considered things to make the wireless redox hot swappable. something along the lines of the kailh hot swappable sockets ( I know there is a hot swappable ergodox pbc that you can get now as well as just getting an ergodox-ez. but I was wondering if that presents a larger problem or if it is just not doable. This is really just curiosity on my own part.

Again thanks for all the work you put into this it is so impressive!

  Are you sure? yes | no

Dr. Dre wrote 10/17/2018 at 18:24 point

Please don't feel offended, but imo it makes only sense to use a physical ergonomic keyboard in combination with an ergonomic keyboard layout. You've probably heard of the Dvorak layout (, but there are others. A few years ago a Danish physician Ulf Bro has written a so-called "layout optimizer", that is, a piece of software that calculates the finger movement on the keyboard given a large text corpus in the language for which the layout should be optimized. It then switches two random keys and evaluates the new layout; repeats, until an "good layout" is found. He has even produced graphical visualization of the finger movement. See:

The page might be in German (unfortunately), but when you click on any of the layout variants, you will be taken to a pdf showing finger movement for a mixed (german / english), pure german and pure english corpus.

This project might also look interesting to you:

It includes a micro controller that does layout remapping internally, so all driver problems with custom keys and especially additional modifier layers can be circumvented!

  Are you sure? yes | no

Mattia Dal Ben wrote 10/19/2018 at 18:35 point

No offence taken :D

I should point out though that, since the Redox is using QMK for the firmware, it is possible to load whatever layout you want... Dvorak, Colemak, Working man or completely custom. You only need to customize a source file and recompile the sources, or you can use the web based configurator ( Much of the power of this keyboard comes from the awesome work made by the QMK community, go take a look at the github page(! ;)

  Are you sure? yes | no

Max wrote 10/14/2018 at 06:21 point

Did you use the YJ-14015 for the receiver or is it equipped with another core51822 module?

  Are you sure? yes | no

Mattia Dal Ben wrote 10/14/2018 at 06:28 point

I used the YJ-14015. It was a little tricky solder but not as hard as I initally thought. As I said in the log I glued it in place and thens soldered the pins. I put some solder on the iron tip and then used the soldering iron as a brush to connect the pins. Using a core51822b module would be easier for sure.

  Are you sure? yes | no

Max wrote 10/13/2018 at 16:45 point

Very nice project and great documentation - thank you very much!

I've found a supplier for the MX switches but where did you get the caps?

  Are you sure? yes | no

Mattia Dal Ben wrote 10/13/2018 at 17:08 point

You can find them on eBay or Aliexpress. I usually buy them from KBDfans store on Aliexpress since he has a good selection and it's pretty cheap. If you want to go all out there's PimpMyKeyboard, they have the high end stuff. I hope this helps!

  Are you sure? yes | no

Max wrote 10/13/2018 at 19:16 point

Thank you very much! I'll check it out!

  Are you sure? yes | no

David S wrote 09/08/2018 at 21:29 point

When you think the wireless PCB is ready for others to test/ try, let me know! I'd love to put one together.

  Are you sure? yes | no

Mattia Dal Ben wrote 09/09/2018 at 07:11 point

As soon as I'll receive the components and test everything I'll post about it. Keep an eye on the Github repository, I'll post some more detailed assembly instructions there.

  Are you sure? yes | no

Gravis wrote 09/03/2018 at 20:36 point

You should change the name because it's already been used:

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates