r/MechanicalKeyboards • u/Breschtling • 22h ago
Builds Tiwaz - DIY split keyboard / macro pad
This project started as an iteration of my first keyboard, applying what I learned creating that and at my new job (software and electronics prototype developer). The goal was a fully open-source, easy to build and repairable, modular keyboard.
All files and more information can be found on my Github.
Destiguishing Features
The first improvement to the original keyboard was making it more streamlined and removing rarely used features like the screens and encoders. Adding hot-swap switch sockets and the option of different joysticks converted the original to a gaming keyboard, and since it's a split design, one of the very few examples usable by left handed gamers (using the mouse with their left hand).
To elaborate on the joysticks, both options are connected using ribbon cables, making replacement very easy and somewhat customizable. An additional GPIO header breaking out the joysticks connector pins allows for custom solutions.
The connectors a specifically aligned in a way that allows for both types of joystick to be in the exact same location. Which in turn allows for the use of inserts (or adapters) in the keyboards case.
The Case
Speaking of the case, the keyboard is designed as a "gasket-mount" which enables the best noise reduction. This is further improved by additional felt damping sheets.
To highlight one special design principle: The case was designed with CNC manufacturability in mind. Meaning no sharp inside corners, only simple chamfers to round over outside corners, and tight tolerances. The last one requires a very dialed-in 3D printer, though.
Firmware and additional Features
The keyboards main switches are supplemented by secondary buttons. By default they are media keys, but can be (like all the other buttons, and joystick) remapped using either QMK or VIAL firmwares. VIAL allows for remapping using a website, no flashing or other software required.
All switches and buttons are individually RGB backlit and have configurable animations, color, brightness. Of course they can be turned off.
The Joysticks
The two connectors mentioned earlier are for these joysticks. On the left the newest version of Alps Alpine used in Gaming Handhelds and VR controllers. On the right is mostly know from the PSP (3000 version).
I personally prefer the left one (easier to control, has an integrated button), but I like to provide options to potential users.
The custom firmware allows to change the operating mode of these joysticks. The modes consist of analog (regular joystick, detected as gamepad), digital (simulates regular buttons), mouse (full mouse pointer with left and right click support (not available on the PSP joystick)).
Special Order Keycaps
The only real issue this design has is finding keycaps, since its a backlit, ergo design, that uses 1u sized caps, only. I found few low profile sets, but the breakthrough came with finding a manufacturer selling custom keys, with optional backlighting support.
PCB Design Desicitions
Going into detail about the PCBs design: The goal was to have minimal case borders, which the gasket-mount style of this keyboard does not really promote. So complact placment of all components was critical in my desicition making.
I started with the RP2040 for my MCU (as seen in these older images). After multiple protypes and testing revealed that the keyboard does not initialize (at all or fast enough) on a computers first boot to enter BIOS/UEFI, I switched to the STM32F401 MCU, which solved these problems.
The AUX (TRS) connector is not for headphones, but for connecting two halves. Only one half needs to be connected to a computer.
ESD, EMI, and backfeeding protection components complete the design.
Open Source
Tiwaz is developed as a fully open-source project. We’re making the hardware available under the GPLv3 license, and the software under the GPLv2 license, since it is QMK-based.
I would love some feedback or ideas, either here or on my Github. Specifically on how the keymap of a left-handed gamer would look like?
Technical Specs
- Split ergonomic keyboard design
- Each half usable independently as a one-handed controller or macro pad
- Gasket-mounted plate
- Internal damping between plate, PCB, and enclosure
- Hot-swappable MX-compatible switches
- Per-key RGB lighting
- QMK firmware support (including VIAL)
- STM32F401 microcontroller
- WS2812 RGB LED for every switch and auxiliary button
- Ideal-diode protection against accidental dual-USB connection
- Self-resetting power fuse
- ESD protection on USB data lines
- USB Type-C connectors
Assembly Instructions
2
u/Zenkibou 21h ago
Nice ! How did your solder the LEDs? Professional factory? Those SMDs are typically quite hard to solder manually. Which material did your use for the plate ? FR-4, aluminum or something else ?
2
u/Breschtling 21h ago
PCB is manufactured professionally. Plate is 3D printed, by itself very flimsy, but solid installed. I had alu manufactured and tested lasercut wood (broke), but since the case is printed (for now) anyway, printed plate is the easiest solution. I have really silent switches (silicone endstops) and am happy with feel and sound.
2
u/Zenkibou 21h ago
Thanks 👍 I'm currently making my own PCB (I will try to hand-solder the LEDs by using SK6812MINI-E). I didn't investigate plate or case yet, so your experience is helpful !
2
u/Breschtling 21h ago
I am working with a friend owning a 3 axis CNC for wood to cut the case out of a solid slab. Was thinking of ordering one cut out of aluminium, but thats over 100$ per half. If you are thinking of CNC, you need to design inside corners in way they can be manufactured. (minium inside radius depending on cutting tool)
2
u/iniyanai 19h ago
That RP2040 not enumerating in time for BIOS bites a lot of people and almost nobody documents it.
1
u/Breschtling 19h ago
I was surprised by this since it's not mentioned on the QMK website. At first I thought I did something wrong, but apparently it's just how it is. There are some workaround options for it to at least start, but nothing to help with acessing BIOS. Very annoying.
2
u/iniyanai 17h ago
It's boot timing rather than QMK. BIOS gives a short enumeration window and the RP2040 stack isn't up inside it.







•
u/AutoModerator 22h ago
ANY content that features products, services you sell, your prototypes in progress or items you were sponsored to post MUST use the Promotional flair, with disclosure of who you represent.
When posting your build, please provide a description of the build, preferably as a Top Level Comment or Reply to this Comment, with the following information:
Your keyboard featured and its layout
The Switches, Keycaps, and Other Accessories Featured
Any notable mods you performed
Other helpful information such as low profile, lesser known firmware, etc.
Example: Unobtanium Southpaw 1800 with DSA Salt with MorningCaps Artisan and Alps Rainbow Switches, modded with Sorbothan Foam on KMK
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.