AcidFire's custom keyboard aka The Grand Piano

User avatar
AcidFire

23 Jun 2013, 09:53

I've been working on a custom keyboard over on GeekHack and I figured it was about time I shared it with you fine people as well :)

So I came to geekhack purely because I happened to stumble across the Ergodox while searching for a keyboard solution to my pain in my wrists. And because Dox and Litster were awesome enough to open source their designs, I was able to use the laser cutters we have at work to take the design for a test drive. What I found just laying my hands on the boards echoed what I've read from a few people, mainly that the thumb cluster wasn't entirely comfortable for me at the same height as the other keys. A couple of test cuts later and I've landed at this:
Image

Comparison w/ Ergodox:
Image

I made some minor modifications to the key layout, dropped the thumb pad 9mm, and everything felt a bit better in terms of fit. I still want to offset the pinkie keys down a bit more, but for now I'm happy to test my new layout. So before I lay out and order PCBs, I set up a test the old fashioned way:
Image
Installing diodes made it super simple to connect my columns. The best part is, it takes minimal effort to remove the hot glue & solder, so when I do finally get PCBs made it won't take me long to recover my keys for the new board.

And because the black & clear acrylic sandwich looks so slick:
Image

I'm also a bit proud of the way I've designed the thumb area, as it allows for a variety of different layouts to be used/customized, and then connected to the mainboard:
Image

Larken on GH pointed out that leaving your hands floating while the boards are tented leads quickly to fatigue, so I took his advice and updated my design:

Image

I widened the edges a bit, and extended the palm rest, updating the design of the curve as I did. I also moved the pinkie keys down a few millimeters, which feels more comfortable to reach with. The result is far more comfortable than the previous iteration, so now I may just have to cut some pretty 6mm clear spacer pieces and peel off all that protective paper.

Someone was also asking about the positioning of the thumb on the lower keypad. Keep in mind when you see this, the drop of the thumb area makes a big difference in whats reachable:
Image
Image
Image

I haven't begun to work on the PCB yet as I've been trying to settle out on my layout first, but while it'll be similar to the ergodox layout there is definitely going to be a few changes:

- Each half will have a ATMEGA32u4 w/ an open source bootloader. I had considered just using the Teensy 2.0's, however open source & open hardware is very much a part of what I do for work that I don't feel right using something close sourced when I have other options. The ironic thing is, I'm using a full controller in each because I plan to use a Bluegiga WT12 bluetooth radio (which is closed source) in each half (eventually) to set the whole thing up as wireless and compatible w/ my mobile devices. If I produce a kit for this, the bluetooth would be an optional add on. If someone knows of a more open module that would allow me to actively switch between bluetooth connections (without having to cycle through them), i'd love to take a look at it.

- The keys themselves will most likely be a 7x5/8x5 matrix layout connected to a MCP23018, keeping it from eating all the I/O on the 32u4 as I have a few other things in mind and leaves more of it open to be hacked/used for other things down the road.

- The thumbpad will most likely be connected on an MCP23008 so that its simple to address/change, move, etc w/o needing large connectors.

Using an I2C bus for the keys allows for simple modifications & tweaks, especially w/ customizing the layout as the MCU will be laid out on a seperate board, and additional peripherals/keypads/foot switches could be added w/ minimal effort.

So basically, there will only need to be 4 pin connectors between each board and each half will have three boards for now (not including the bluetooth.)

There a few more additions/plans I have for the board that I'll be keeping a surprise for now, but I think they'll add an interesting touch to the project ;)

The other reason as well that I'm not planning to use existing firmware is that I plan to produce a proper configuration tool that would allow myself & others to configure/set keys w/o having to mess around with the firmware. I have it laid out right now to support 8+ layers, possibly more, all stored on the boards so that you can take your setup with you and not need the software.

I've also been giving some thought as to how I might want to intergrate LEDs into the board, for style & function. The LEDs I have in mind are SMD, are roughly 2x1.5mm and RGB. I'd be using them in an array similar to the keys, using a set of 74HC595s & something along the lines of a ATMEGA8/168/328 on an I2C bus. We've already got libraries written for this at work so I can reduce the size of everything as much as possible. This board would come preassembled as it would be far simplier for me to troubleshoot and for you guys to put together if you don't have to solder 360 tiny leds. This would be the arrangement of the LEDs under the switch:
Image
The 4 LEDs would act as one for the first revision as doing independent control of each would be a fair bit more complicated, but I like the idea and I've added it to my list of features to explore in a future revision.

More to come!

User avatar
ماء

23 Jun 2013, 10:07

fabuolus acid
maybe with keycap blank colour black and white makes like Grand Piano

dondy

23 Jun 2013, 10:59

that's a really nice theme for a keyboard :D

being able to do keyboard macros with the keyboard without additional software
would be another nice touch (notepad the next emacs clone ;D ).

as for LED's on it - wouldn't it be awesome if the LEDs would brighten up after a
switch activated plus some minor delay? also with so many LEDs you'd probably
want clear cased switches like the Matias ones?

quite a stylish board you have there!
i tip my glass to you dear sir (although it's only coffee at this ToD)

Image

User avatar
AcidFire

23 Jun 2013, 11:18

dondy wrote:that's a really nice theme for a keyboard :D

being able to do keyboard macros with the keyboard without additional software
would be another nice touch (notepad the next emacs clone ;D ).

as for LED's on it - wouldn't it be awesome if the LEDs would brighten up after a
switch activated plus some minor delay? also with so many LEDs you'd probably
want clear cased switches like the Matias ones?

quite a stylish board you have there!
i tip my glass to you dear sir (although it's only coffee at this ToD)
Thank you kindly :) It wasn't intentionally the theme, however someone pointed it out on GH and now it's all I see, lol.

The macros would still require the software to create them in the first version of the firmware, but they will be stored in the keyboard so that you can take the boards with you and not need the software to use them. I would like to add the ability down the road to set them on the board itself without needing the software.

Regarding the LEDs, if I decide to offer this as a kit (as some have already asked me to do) the LEDs would definitely be an optional feature, but what I would look at doing is going to someone like SP and getting a full set of clears made for the board and included w/ the LED kit.

User avatar
Muirium
µ

23 Jun 2013, 14:27

Clear caps or clear switches? Matias switches are clear bodied:
Image
Could be quite useful when integrating as many LEDs. Cherry's MX are opaque and only intended to have one LED installed per switch. Shadowing could be a problem with the LEDs mounted down at the same level as the switch base they surround. Matias are also cheaper and available in clicky and tactile. (7bit has a ton of them.) I'd give them some experimentation, at any rate, in such a transparency rich design. Their primary disadvantage is incompatibility with Cherry mount caps. As you can see above, Matias are Alps.

Great work by the way. I'm particularly interested in how your Bluetooth works out. I would have assumed that one Bluetooth signal and HID is all you want; for mobile hosts especially. I've never even tried connecting more than one Bluetooth keyboard simultaneously to my iPad. I'm intrigued by how you'll handle a fully split keyboard entirely wirelessly. As it should be!

User avatar
kbdfr
The Tiproman

24 Jun 2013, 08:20

AcidFire wrote:The macros would still require the software to create them in the first version of the firmware, but they will be stored in the keyboard so that you can take the boards with you and not need the software to use them. I would like to add the ability down the road to set them on the board itself without needing the software.
An ability which obviously got lost since the historical days of the glorious Cherry G80-2100. Please go ahead!
http://deskthority.net/wiki/Cherry_G80-2100

User avatar
AcidFire

25 Jun 2013, 00:23

So after doing a bit more research after some notes I had seen ic07 post, I've started looking at other controller options to allow for what i want to do down the road. Right now I'm looking at a couple different controllers which are either cortex M3 or M4, USB capable AND right around the same price as the 32U4. The major advantage I get is a ton of programming room & plenty of ram, which should make it far more simpler to implement things like multiple layer management & macro recording/management.

Durz_O

25 Jun 2013, 00:46

The teensy 3.0 is a good controller its 19 w/o pins http://www.pjrc.com/teensy/index.html

JBert

25 Jun 2013, 10:23

Durz_O wrote:The teensy 3.0 is a good controller its 19 w/o pins http://www.pjrc.com/teensy/index.html
It seems you failed to read the OP's post:
AcidFire wrote:I had considered just using the Teensy 2.0's, however open source & open hardware is very much a part of what I do for work that I don't feel right using something close sourced when I have other options.
Besides, a Teensy 3 is way overpowered for a normal keyboard controller, and a Teensy++ 2.0 has even more IO pins to wire up larger matrices!

User avatar
Ascaii
The Beard

25 Jun 2013, 12:00

Ive got a couple pcbs with clear housing cherry switches from vintage nixdorf terminals. Get in touch if you could use some.

Durz_O

26 Jun 2013, 00:02

JBert wrote:
Durz_O wrote:The teensy 3.0 is a good controller its 19 w/o pins http://www.pjrc.com/teensy/index.html
It seems you failed to read the OP's post:
AcidFire wrote:I had considered just using the Teensy 2.0's, however open source & open hardware is very much a part of what I do for work that I don't feel right using something close sourced when I have other options.
Besides, a Teensy 3 is way overpowered for a normal keyboard controller, and a Teensy++ 2.0 has even more IO pins to wire up larger matrices!
the 3.0 has more memory and ram
So after doing a bit more research after some notes I had seen ic07 post, I've started looking at other controller options to allow for what i want to do down the road. Right now I'm looking at a couple different controllers which are either cortex M3 or M4, USB capable AND right around the same price as the 32U4. The major advantage I get is a ton of programming room & plenty of ram, which should make it far more simpler to implement things like multiple layer management & macro recording/management.
Is what i was replying to, and although teensy itself is not "open source", the project is very open and does contribute to Arduino http://www.pjrc.com/teensy/arduino_contrib.html,has all the documentation and schematics posted on their websitehttp://www.pjrc.com/teensy/schematic.html for use/ reference. Paul does help people who wish to integrate teensy into there pcb projectshttp://forum.pjrc.com/threads/23746-A-f ... -questions that's pretty open imo.

User avatar
Vierax

27 Jul 2013, 02:59

This Grand Piano has style ! I don't like the thumb key but this is better than Ergodox's. The angle given by the feet and the floors is approaching a 3D keyboard : nice work !

User avatar
sordna

25 Aug 2013, 07:12

You gotta see the 70% version of this:
http://geekhack.org/index.php?topic=449 ... msg1010105

Image

User avatar
Vierax

26 Aug 2013, 00:08

Thx Sordna ! I miss the habit to see what's going on GeekHack.

Post Reply

Return to “Workshop”