Hello all,
I became curious about mechanical keyboards recently, and I was inspired by all the cool open hardware/open firmware DIY things going on in the mechanical keyboard community. So inspired, in fact, that I've designed a PCB for my first mechanical keyboard.
It's a 104 key design, because I'm used to having a number pad. It has ISO style enter and backslash keys, and an otherwise ANSI-like layout. It uses cherry MX switches. Each switch is dioded with either an internal diode or a surface mount diode on the back side of the board. I'm envisioning it as just a bare PCB on lots of rubber feet for stability with keys on top. No plate, no enclosure. There is no backlighting.
It uses an ATMEGA32U4 because there seems to be a wealth of available keyboard firmware for that microcontroller.
Here's a github repo with the PCB design files, in case anyone would like to have a look. Be warned that this board id totally untested. My first prototypes are currently on order.
https://github.com/evnpwr/dorkyboard
Dorkyboard - 104 Key DIY PCB-mounted MX Keyboard
- XMIT
- [ XMIT ]
- Location: Austin, TX area
- Main keyboard: XMIT Hall Effect
- Main mouse: CST L-Trac Trackball
- Favorite switch: XMIT 60g Tactile Hall Effect
- DT Pro Member: 0093
Looks great from a quick glance! Be a little careful about which pins you're using on the ATMEGA32U4 since some have special dual purposes. See the datasheet for complete details.
You've got some unused matrix positions, why not maybe add some more switch positions around the arrow keys or above the numeric keypad to give you some options later?
If you're thinking of using a specific firmware - TMK or QMK - I would have a quick look through those to see if they have any ideas of how to use pins, or have any sorts of restrictions on row or column pins you might have to work through.
If I were designing my own PCB I'd probably design it around some multiplexers since I tend to use Pro Micro boards which only offer a limited set of inputs and outputs.
You've got some unused matrix positions, why not maybe add some more switch positions around the arrow keys or above the numeric keypad to give you some options later?
If you're thinking of using a specific firmware - TMK or QMK - I would have a quick look through those to see if they have any ideas of how to use pins, or have any sorts of restrictions on row or column pins you might have to work through.
If I were designing my own PCB I'd probably design it around some multiplexers since I tend to use Pro Micro boards which only offer a limited set of inputs and outputs.
-
- Location: Canada
- DT Pro Member: -
Thanks XMIT.
You're right, I should give the ATMEGA32U4 datasheet a thorough looking-through to make sure I can use all the pins I need will behave as GPIO without too much hassle.
I haven't chosen a particular firmware to work with yet. I'll have to do some research into the options available. I'm in a bit of a "It's just firmware. What could go wrong?" mindset right now. I do sometimes regret that mindset when it comes time to make the firmware actually work.
Thank you for having a look and thank you for your insights. Do you have any favorite firmwares that you's recommend as a starting point?
You're right, I should give the ATMEGA32U4 datasheet a thorough looking-through to make sure I can use all the pins I need will behave as GPIO without too much hassle.
I haven't chosen a particular firmware to work with yet. I'll have to do some research into the options available. I'm in a bit of a "It's just firmware. What could go wrong?" mindset right now. I do sometimes regret that mindset when it comes time to make the firmware actually work.
Thank you for having a look and thank you for your insights. Do you have any favorite firmwares that you's recommend as a starting point?
- XMIT
- [ XMIT ]
- Location: Austin, TX area
- Main keyboard: XMIT Hall Effect
- Main mouse: CST L-Trac Trackball
- Favorite switch: XMIT 60g Tactile Hall Effect
- DT Pro Member: 0093
Yes. TMK or QMK.dorkb wrote: ↑Thank you for having a look and thank you for your insights. Do you have any favorite firmwares that you's recommend as a starting point?
https://github.com/tmk/tmk_keyboard
https://github.com/jackhumbert/qmk_firmware
-
- Location: Germany
- Main keyboard: ISO50
- Main mouse: Kensington SlimBlade
- Favorite switch: Gateron green
- DT Pro Member: -
I think PE2 needs to be tied to GND if your reset button is to run the bootloader. The rest of the pins are usable, at least with TMK.
I would recommend in-switch through-hole diodes. They add a lot of mechanical stability. The diode holes in your switch footprints seem to be too far apart, though.
I would recommend in-switch through-hole diodes. They add a lot of mechanical stability. The diode holes in your switch footprints seem to be too far apart, though.