Page 1 of 1

Hi, new here. I'm looking to make my first DIY keyboard.

Posted: 25 Feb 2017, 06:27
by Sarreq Teryx
Since I can't find what I want in anything I can buy, I'd like to build my own. I've already designed a layout and (most of a) keymap, now I need to figure out hardware. I would like to use either Kailh's or Gateron's new low profile switches, but can't find where to buy any of them, so I'll probably go with either Cherry MX blue or brown, or Zealios purple. Keycaps shouldn't be a problem, I can use my brother's 3D printer if need be. As a controller, I'm thinking either a Teensy of some sort, or (leaning this way) an Adafruit Feather M0 Bluetooth LE. I'll probably do a wired backplane if I have to use full-size switches, but suggestions on PCB printing and plate cutter (just found swillkb) services would be very helpful.
my layout, as it is right now
my layout, as it is right now
keyboard-layout.png (78.41 KiB) Viewed 3134 times
I'm not into the reduced layout thing, as you can tell, I'm all about the increased functionality, though I'm not done assigning everything. I may compactify some of the keys, but that's pretty much it. I'm sure ergonomically, it's probably not good, but I was never good at touch typing, I'm a very fast hunt-and-pecker.

Posted: 25 Feb 2017, 09:26
by Sarreq Teryx
OK, bit of a revision, not done yet.
keyboard-layout (1).png
keyboard-layout (1).png (84.93 KiB) Viewed 3103 times
edit: more revision
keyboard-layout (2).png
keyboard-layout (2).png (85.36 KiB) Viewed 3096 times
edit2: even more revision and a compact version
Qwerty++.png
Qwerty++.png (116.59 KiB) Viewed 2981 times
Qwerty++Compact.png
Qwerty++Compact.png (84.19 KiB) Viewed 2981 times

Posted: 25 Feb 2017, 11:05
by Sigmoid
Hey, welcome. Building keyboards is a lot of fun. :)

Speaking of these layouts, you will probably have difficulties sourcing non-standard row height keys... Getting three switches to fit into the place of two might also be an issue. Can you explain what your requirements are for a keyboard (the traits you couldn't find on the market)?

Btw, is your nick Barsoom-inspired? ;D

Posted: 25 Feb 2017, 11:07
by Findecanor
Welcome! Building a keyboard yourself is fun. Just don't make it too difficult for yourself...

I am afraid that the Control keys are too small. Those are often used quite a lot and I would suggest making them larger only to make them easier to hit. The reason why keys on the perimeter usually are bigger on normal keyboards is because that would make them easier to hit (there is a formal model for that called Fitt's Law).
Also, a Cherry MX key can only be shrunk to about 80% because of the size of the switches themselves, and even then the "skirt" of the keycap still can't reach as far down as on regular keycaps. If you look at the Versakey V2508 which has such keys you will see that they are actually far-spaced apart and that the case has a step up from the regular key rows to allow hiding the bottom edge of the keys.

Do consider that putting modifier keys farther away will make them more uncomfortable to hit. There have already been quite a lot of arguments on message boards between users of ANSI (horizontal) vs ISO (vertical) Enter keys - with the ANSI camp's prime argument being that their key is one key close to the centre.

Note that keyboards don't send ASCII codes - they send scancodes ("usage codes" in USB parlance), I.e. the code of which key -- not which symbol has been pressed. To be able to send symbols such as Œ and Æ and the square root symbol, your firmware will need to be able to send the key combinations to get those symbols, I.e. macros and that may not be straightforward. (And you already have a Compose key. ;) )
There are scancodes for keypad parentheses but I am not sure if they are universally supported by operating systems.
There are special scancodes for Cut, Copy and Paste though. For more info check the HID Usage Tables document on USB.org.

It could be tricky to get a lot of keys with a regular Teensy 2.0 which has only 25 pins. You might also want to use three or four of those pins for LEDs (the fourth being for the Compose LED, although I dunno if there is OS support). Smaller keyboards are often wired with the logical switch matrix closely mimicking the physical layout of the keys - only because that is easier, but that does not look like an option for you.
You have over 120 keys... that would need at a matrix of at least 10×12 or 12×10, I.e. 10+12=22 pins.
One trick would be to lay two logical rows per physical row and let each logical column serve two physical columns, but I am not sure if that is enough. You would probably have to go up to a Teensy++ 2.0 to get more pins or use a "shift-register" chip for strobing. You can read more about some tricks over here - it is about musical keyboards but the principle is the same.

Posted: 25 Feb 2017, 14:00
by Sarreq Teryx
Sigmoid wrote: Hey, welcome. Building keyboards is a lot of fun. :)

Speaking of these layouts, you will probably have difficulties sourcing non-standard row height keys... Getting three switches to fit into the place of two might also be an issue. Can you explain what your requirements are for a keyboard (the traits you couldn't find on the market)?
my keys are 1.2u high and wide, so I'm less concerned with that than you'd think. I've got fat fingers, and think the standard layouts are too constricting.
Btw, is your nick Barsoom-inspired? ;D
Sarreq is from Star Trek, but spelled different, Teryx is from the end of Archeopteryx. I was 12 when I came up with it, and never felt I needed to replace it.

Findecanor wrote: Welcome! Building a keyboard yourself is fun. Just don't make it too difficult for yourself...

I am afraid that the Control keys are too small. Those are often used quite a lot and I would suggest making them larger only to make them easier to hit. The reason why keys on the perimeter usually are bigger on normal keyboards is because that would make them easier to hit (there is a formal model for that called Fitt's Law).
as my keys are actually based around 1.2u, the control keys are actually .8u tall, and I get by with .5u arrow and Function keys just fine right at the moment.
Also, a Cherry MX key can only be shrunk to about 80% because of the size of the switches themselves, and even then the "skirt" of the keycap still can't reach as far down as on regular keycaps. If you look at the Versakey V2508 which has such keys you will see that they are actually far-spaced apart and that the case has a step up from the regular key rows to allow hiding the bottom edge of the keys.
so, a .8u key height should be just fine. As for keycaps, I'm shooting for low-profile and slightly smaller than the keyswitch-pitch. also, if I can get my hands on those Kailh or Gateron low-profile switches, they're even slightly smaller.
Do consider that putting modifier keys farther away will make them more uncomfortable to hit. There have already been quite a lot of arguments on message boards between users of ANSI (horizontal) vs ISO (vertical) Enter keys - with the ANSI camp's prime argument being that their key is one key close to the centre.
I'm not a home-row typist in the first place, so, having the control keys further away wouldn't bother me much. my thought was, since I hit them by accident more than I'd like, to get them out of my way. And I just prefer the horizontal enter.
Note that keyboards don't send ASCII codes - they send scancodes ("usage codes" in USB parlance), I.e. the code of which key -- not which symbol has been pressed. To be able to send symbols such as Œ and Æ and the square root symbol, your firmware will need to be able to send the key combinations to get those symbols, I.e. macros and that may not be straightforward. (And you already have a Compose key. ;) )
There are scancodes for keypad parentheses but I am not sure if they are universally supported by operating systems.
There are special scancodes for Cut, Copy and Paste though. For more info check the HID Usage Tables document on USB.org.
I'm fully aware I'm doing many thing quite out of spec. that's one of the bigger reasons I'm leaning toward the adafruit feather, more programming space.
It could be tricky to get a lot of keys with a regular Teensy 2.0 which has only 25 pins. You might also want to use three or four of those pins for LEDs (the fourth being for the Compose LED, although I dunno if there is OS support). Smaller keyboards are often wired with the logical switch matrix closely mimicking the physical layout of the keys - only because that is easier, but that does not look like an option for you.
You have over 120 keys... that would need at a matrix of at least 10×12 or 12×10, I.e. 10+12=22 pins.
One trick would be to lay two logical rows per physical row and let each logical column serve two physical columns, but I am not sure if that is enough. You would probably have to go up to a Teensy++ 2.0 to get more pins or use a "shift-register" chip for strobing. You can read more about some tricks over here - it is about musical keyboards but the principle is the same.
123keys, to be exact. there will definitely need to be a multiplexer in there.

OK, What diodes should I be using? I've seen 1n4148's mentioned, but what particular rating do I need? are Rectron 1N4148-T's 100v 300mA 4ns fine? would a diode with a faster reverse recovery time be better or not (Panasonic DB2U31400L 30v 150mA 1ns)?

Posted: 25 Feb 2017, 17:48
by Sigmoid
So... just out of curiosity, what exactly are you trying to accomplish? Are you just a very large person, and need a keyboard that doesn't feel like it was made for little kids, or do you have some disability or injury, or do you just want a BIG-ASS keyboard for the cool factor...?

Posted: 26 Feb 2017, 10:21
by Sarreq Teryx
do I especially need a reason? I have fat fingers, I want more keys, and I want something to do. if I were really going all out, I'd add dozenal numbers to it, as well.

Posted: 26 Feb 2017, 12:58
by Sigmoid
Hey, no need to get defensive, I have no intention to mock or belittle your project. It's simply that without knowing your intentions behind the project, we can't say anything about it - not even something like "hey this looks pretty cool" or "honestly, this looks like a Frankenstein's monster of keyboards".

You said the reason you want to build is that nobody sells what you are looking for. I just asked what that is. (If you have no idea what you want, of course nobody sells it.)

Also note that this project will cost you several hundred dollars in parts alone, not counting any custom fabbing (plate, case, pcb) you might need, so thinking reasons and requirements through is kinda warranted. Unless you're okay with spending half grand and a lot of work on something that functionally ends up like this: https://youtu.be/LtoZf_KfKLI

Other than that, you might want to peruse the usb hid specification - there aren't scan codes for everything you can imagine.

Posted: 26 Feb 2017, 17:04
by ullr
That’s a hell of a keyboard layout! It would get quite expensive considering literally every key is non‐standard and many require stabilizers due to the additional size.

Your layout is currently feasible, I think, because you don’t employ the Alt Gr key. You would definitely need to use macros if you use Windows, though (and probably anything else but I can’t say for sure), because the number of programmable key positions is only 48½ (the number pad decimal separator is programmable but Shift ostensibly does nothing to it, so only the unmodified position and Alt Gr positions are accessible in my experience). Either way, you’re going to need a custom software layout which could be a deal breaker if you consider that’s something you’ll have to install on any computer you use — unless you can think of a language that employs both Gha, Ash, and Œthel that would be installed by default and you can give up some of those mathematical symbols. :lol:

I would highly suggest rethinking those 1.2× and 0.8× keys unless you are very wealthy.

Posted: 26 Feb 2017, 17:31
by Menuhin
@Sarreq Teryx

There is an thread about "ideal keyboard layout", you can check it out.

You can laser cut a custom plate and hand wire whatever layout you like.
But, where do you plan to get those many non-standard sized keys? And in what profile? DSA?
It would be great if you have some key cap molding skill or can dedicate some time to learn how to mold some proper key caps - custom key caps are always in shortage, and this skill can potentially lead to some lucrative business in the future if you stay in certain community.