geekhack
geekhack Projects => Making Stuff Together! => Topic started by: jfloren on Mon, 19 August 2024, 13:00:13
-
I'm assembling my first homebrew keyboard. The matrix is going to be 8 rows and 19 columns, so I need a QMK-compatible microcontroller with at least 27 usable I/O pins. Any recommendations? A USB-C connector would also be a nice-to-have, but the main thing is finding a solid controller with enough pins.
-
A Teensy. Also you can save 2 pins using a 13x12 matrix..
Enviado desde mi 23122PCD1G mediante Tapatalk
-
As someone also looking into a solution like this, there are no "great" options for handwiring a full size keyboard anymore now that the Teensy ++ 2.0 is out of production. I was able to find this solution: the ProS3 (https://www.adafruit.com/product/5401), which is ESP32 based.
There just isn't much of a market for a MCUs with 25+ GPIO pins that can be used. Ideally there would be a company that has a RP2040 built out with all the GPIO including breakouts for the USB, but niche hobbies are niche. Hopefully the ProS3 meets your needs.
-
Thank you both for your suggestions... I'll also look at the matrix a bit more and see if there's any way I could consolidate rows or columns without making a wiring nightmare. If I can just reduce one pin, I could use a Raspberry Pi Pico
https://i.imgur.com/EEHtC7R.png
-
I can try to find some time today to replicate your matrix, but yeah I can see you have a few columns with only 3-4 keys in it. You will 100% need to reorganize the matrix. I think there is a bit of improvment that can be done there. The biggest thing off the bat is moving the 4 keys below the space up into row 6. That will get rid of at least 1 pin. Please post the RAW for KLE and I can play with the matrix to see if we can simplify it. :)
Here (https://geekhack.org/index.php?topic=121784.msg3174981#msg3174981)is my handwired project.
Also are you looking to hand wire or to create a PCB because if you are handwiring it will be much harder than a custom PC for "wild" trace routing. You can see how many wires are in my build and they all go up/down or left/right. I don't have any funky wiring to make it as efficient (low GPIO) as possible.
-
I can try to find some time today to replicate your matrix, but yeah I can see you have a few columns with only 3-4 keys in it. You will 100% need to reorganize the matrix. I think there is a bit of improvment that can be done there. The biggest thing off the bat is moving the 4 keys below the space up into row 6. That will get rid of at least 1 pin. Please post the RAW for KLE and I can play with the matrix to see if we can simplify it. :)
Here (https://geekhack.org/index.php?topic=121784.msg3174981#msg3174981)is my handwired project.
Also are you looking to hand wire or to create a PCB because if you are handwiring it will be much harder than a custom PC for "wild" trace routing. You can see how many wires are in my build and they all go up/down or left/right. I don't have any funky wiring to make it as efficient (low GPIO) as possible.
Here's the KLE raw: https://gist.github.com/floren/1d97a51b34876f89adf902cc4a620b9f
Good call on the bottom row, that's a really trivial way to save a pin and it ought to get me down to a Pi Pico. I'm still looking at it but I think I can get down to 17 columns with some thought.
-
I had to make my own raw as your github had wonky spacing. I hope I got close.
I was able to get the spacing more logical and condensed. I am sure there are further optimizations that could be done as well. 19 rows, 7 columns, 26 GPIO needed.
This design could easily be hand wired as all the runs are north/south or east/west oriented, no loopbacks, or what have you.
RAW:
[{a:7,w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},""],
[{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},"",{w:2},""],
[{w:2},"",{a:4},"~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{a:7},"",{w:2},""],
[{w:2},"",{a:4,w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\",{a:7},"",{w:2},""],
[{w:2},"",{a:4,w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter",{a:7},"",{w:2},""],
[{w:2},"",{a:4,w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"Shift",{a:7},"",{a:4},"↑",{a:7},""],
[{w:2},"",{a:4,w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{a:7,w:6.25},"",{a:4,w:1.25},"Alt",{w:1.25},"Win",{w:1.25},"Menu",{w:1.25},"Ctrl","←","↓","→"],
[{x:5.75,a:7,w:1.5},"",{w:1.5},"",{w:1.5},"",{w:1.5},""]
-
have you looked at the blackpill boards? just quickly looked at a variant with a stm32f411 chip that seems to have more than enough pins..
https://www.bastelgarage.ch/stm32f411-blackpill-development-board-1-1720 (https://www.bastelgarage.ch/stm32f411-blackpill-development-board-1-1720)
-
Love that this is progressing! Did you settle on keycaps?
Double check this, but here's my quick crack at 17x7.
-
Love that this is progressing! Did you settle on keycaps?
Double check this, but here's my quick crack at 17x7.
There ya go. I don't see any errors.