I've made a custom adaptation of the Redox keyboard, accommodating media buttons as well as a volume knob and a scroll wheel.
I've written a detailed article and created a video video explaining the pros and cons of such a keyboard as well as a build and programming guide.
I recommend reading at least the part about testing of switches and deciding what keyboard you want to go for in the above article, it will save you from a lot of work later on...
Keyboards are typically wired in a matrix, where every switch is connected to 1 row and 1 column. If the microcontroller detects a connection between a row and a column, it identifies which key is pressed. The video explains the wiring in more detail with useful hints of how to prepare the wires.
The wiring diagrams from the Redox community can be found here
For easier wiring I recommend first soldering the diodes and then preparing partially de-insulated cables, details can be learned in the video or in this guide.
The keyboard software is based on the QMK framework, as is the original Redox. I've submitted a PR to QMK adding a media layout and corresponding key map. Also instructions to apply and flash the firmware are layed out there, refer to the Redox Media section in the QMK repo (currently a PR, but you can check the changes or my fork of the QMK repo in the meantime).
While generating a new layout I highly recommend using the amazing QMK key tester.
- key tester
- sample switches
- switches (Kailh Pro Purple)
- Sparkfun pro micro 5V 2x
- curled 3.5mm cable
- rotary encoder 2x
- shape cable
- 1N4148-200mA diodes (as many as you intend to use switches)
- media buttons 3x
- micro USB cable
- volume knob
- scroll wheel (printed)
- 5mm threaded rod with nuts
- hook up wire (ideally multiple colors)
- key caps. You can use any old MX type key caps from an old keyboard or order a set of custom ones. I got mine from here, another alternative would be this.
The original Redox CAD files (SCAD) are open source and available here. I've modified those adding some extra space at the top to accommodate the media buttons and two knobs. Also, I changed the bottom part of the keyboard so that it has a custom micro-USB slot which perfectly fits the shape cable holding it in place and exposing one end as port socket for the computer-to-keyboard USB cable, that's where the shape cable comes in.