I put together an ErgoDox by following the directions (and by soldering. Lots of soldering :) ) but I don't really understand how the circuits work.
In particular I'd like to put together a keyboard that connects the switches using wires instead of a PCB, but I don't know why there's all the ICs here and there, or what they're doing, or even where to find a circuit diagram of the ErgoDox, nor how to analyze those circuits.
Could you recommend a good 'next step' for getting more familiar with the various parts that go into something like an ErgoDox?
I'm enough of a noob that I'm not going to be surprised if you just link me back to your repo here (in which case I apologize in advance) :)
I'd maybe suggest looking for an electrical engineering intro book or course at a level you feel comfortable with, just to get an idea of the basics.
For the ErgoDox keyboard, the schematic is actually available on their own repo [1], but it's going to look quite intimidating initially. But I found a pretty great looking article explaining the electrical design of the ErgoDox that you might find useful [2]. The ErgoDox actually looks very similar electrically to the threeboard, it uses the same MCU (atmega32u4), but of course has the extra complexity of communicating with the other half of the keyboard over the 3.5mm connector.
[0]: https://github.com/taylorconor/threeboard/blob/master/docume... [1]: https://github.com/zsa/docs/blob/master/ErgoDox%20EZ%20Schem... [2]: https://kandepet.com/dissecting-the-ergodox-the-ergonomic-pr...
I was thinking of trying to make a keyboard that used a much cheaper CPU (like one of those $1-2 ones from China, or the Pico Pi) and realized that if I swap out that out that I'd have no idea where to put resistors, or why :)
I'm definitely going to look through your stuff too - a 3 key keyboard might be a much easier way to start, actually :)
Each key also has a diode which might look like an IC. This is to prevent "ghosting", where pressing a certain combination of keys looks identical to pressing another combination of keys. The lowest of low-cost keyboards don't include this, because if you only press one key at a time, ghosting can't happen. (Most people don't press more than one key at once, except for modifiers like Shift + letter. They work around this by handling modifiers specifically, often not including them as part of the matrix.) Here's an explanation: https://deskthority.net/wiki/Rollover,_blocking_and_ghosting
The search term you want for building a keyboard without a PCB is "handwiring". Here are some guides: https://geekhack.org/index.php?topic=87689.0 https://matt3o.com/hand-wiring-a-custom-keyboard/
I thought I had some better resources in my bookmarks, but I don't.
I followed the ai03 tutorials (https://wiki.ai03.com/books/pcb-design/page/pcb-guide-part-1...) to design the MCU area of this (The 32u4 and supporting hardware), but if you look at the traces, you can see that the switch matrix is dumb-as-bricks and can easily be replaced with some kind of handwiring.
Don't try to replicate the diode banks if you want sane wiring. The linked tutorial assumes someone is designing for function instead of form.
I don't remember if it was this exact guide, but I'm pretty sure I was following Matt3o's guide when I did it: https://matt3o.com/hand-wiring-a-custom-keyboard/
edit: it may have actually been this one: https://deskthority.net/viewtopic.php?f=7&t=6050&start=
The only parts you need are switches, wires, diodes, and a Pro Micro clone from eBay.
I recommend 6-key because they are supported out of the box by QMK and there are plenty of tutorials.
It looks like the tutorial I linked to above doesn’t actually explain how the matrix / diodes work, so you’ll want to google for an explainer.
Happy hacking!
abcdefghijklmnopqrstuvwxyz and space, period, apostrophe, enter.
Then add a "shift" key and you add one-hit triggers of A-Z, backspace, question mark, tab, esc.
Then you could get 60 additional output values with double-tap shift and hold + key (30) and double-tap shift and release + key (30).
Example: https://www.amazon.com/4-Key-Programmable-Mechanical-Keyboar...
Some of them even use QMK so you can assign anything you want.
Good work!
As it happens, I spent quite a bit of time last night learning about the qmk firmware and was looking around for a “keyboard development board”…
Do you think that you’d aim to grow the firmware to support bigger boards?