Close
0%
0%

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.

Rationale

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:

Programmable

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

Resources

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 »

Redox_rev1.0W.zip

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

Download

Redox_rev1.0.zip

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

Download

redox_rev1-brd.dxf

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

Download

redox_rev1-brd.svg

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

Download

  • Redox codename Ultron pt.12

    Mattia Dal Ben7 days ago 0 comments

    Battery usage update


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

    Left hand voltageRight hand voltage
    30/09/20182.983.04
    06/10/20182.982.99
    13/10/20182.962.97
    20/10/20182.972.98
    27/10/20182.972.98
    10/11/20182.982.98

    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
    30/09/20182.983.04
    06/10/20182.982.99
    13/10/20182.962.97
    20/10/20182.972.98

    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
    30/09/20182.983.04
    06/10/20182.982.99
    13/10/20182.962.97

    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 4 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.
    Perfect.
    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.

    Sexy!

    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... 

  • Redox codename Ultron pt.4

    Mattia Dal Ben08/26/2018 at 10:06 2 comments

    PCB ordered!

    I'm a little anxious about the nrf51822 module footprint and the battery holder but what is done is done. I used the YJ-14015 module (which is a Core51822 clone) because is smaller than the Core51822(b) and it's a tight fit, but I couldn't find a datasheet online nor some machanical drawing to validate the footprint I have... we'll see.

    Here's some pics of the board and schematics.

  • Redox codename Ultron pt.3

    Mattia Dal Ben08/25/2018 at 08:21 0 comments

    Firmware's done!

    Finally finished working on the firmware.

    • Nordic MCU's firmware sources and precompiled binaries can be found here.
    • Pro Micro firmware (QMK based) sources can be found here.

    Here's some footage:

    On the right you can see the receiver that's plugged in to the computer. It uses a Pro Micro to run the QMK firmware which interrogates through UART the Core51822 for the state of the matrix. The Core51822 module communicates over Gazell protocol to the left and right hands of the keyboard. These two scan the matrix for keypresses and send keypresses data to the receiver.

    I'm using the tweezers to short-circuit the switch pads to simulate a keypress.

    Now is time for some sweet sweet PCB design...

View all 15 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?

Share

Discussions

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 (https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard), 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: http://www.adnw.de/index.php?n=Main.Grafiksammlung

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: https://www.trulyergonomic.com/store/index.php

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 (https://config.qmk.fm/). 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(https://github.com/qmk/qmk_firmware)! ;)

  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: https://en.wikipedia.org/wiki/Redox_(operating_system)

  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