Author Topic: Finished! - My first DIY custom ergo keyboard  (Read 9746 times)

0 Members and 1 Guest are viewing this topic.

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Finished! - My first DIY custom ergo keyboard
« on: Sat, 15 August 2015, 12:36:20 »
Hello,

I recently started to make my first ergonomic mechanical keyboard -- and I need your help!

About six months ago I thought I'd get an ErgoDox kit from Massdrop, but I read that it wasn't well suited for small hands and I have tiny hands! So I thought I'd design my own keyboard to suit my hands. I imagined something very much like the keyboard.io, and then they did their Kickstarter campaign so I was VERY tempted. But I didn't have the money for it, and the idea of making my own had grown on me.

So I started to draw my layout on graph paper and when I was pretty satisfied with it I ordered a pack of Matias Quiet switches and a set of keycaps to complement it. To know how my layout would really feel, I punched holes with a safety pin in a pizza box.

   

Next step will be making the switch plate and the case.

I have access to a laser-cutting machine that can cut wood and acrylic but I'm not sure what would be best to make the switch plate. Matias are made for a 1mm thick switch plate, but 1mm acrylic sheets seem too bendy.
Can I use a thicker plate ? Or is there a workaround to the bendiness of 1mm acrylic or wood ?

Thank you !
« Last Edit: Mon, 16 May 2016, 15:48:45 by Loonie »

Offline fatchoi

  • Posts: 218
  • Location: Hong Kong
Re: WIP - My first DIY custom ergo keyboard
« Reply #1 on: Sat, 15 August 2015, 23:46:03 »
Looks good. How would you make your pcb? I wanna do my very own keyboard some day. But then I need to learn a lot of technical stuff to begin with...

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #2 on: Sun, 16 August 2015, 04:12:38 »
I won't make a PCB, I will hand wire it. I've never done that, and it does seem a bit laborious but not complicated.
« Last Edit: Sun, 16 August 2015, 04:14:47 by Loonie »

Offline fatchoi

  • Posts: 218
  • Location: Hong Kong
Re: WIP - My first DIY custom ergo keyboard
« Reply #3 on: Sun, 16 August 2015, 23:52:41 »
I would probably make my own board in the future. May use those small Enabler PCB designed by the GH community

Offline VVhitel2abbit

  • Posts: 19
  • Location: Provo, UT
Re: WIP - My first DIY custom ergo keyboard
« Reply #4 on: Mon, 17 August 2015, 01:33:37 »
I just made a case with pure acrylic via laser cutter. The mounting plate is definitely too weak at that thickness. I broke one on accident and had to make a second. I then had a thicker piece below that as a support piece. Each square hole on the support piece was slightly bigger than the ones on the mounting plate, to make room for the latching mechanism. I used 3/16th inch thick acrylic for the support and it works great. It feels really solid. That may make the case a little thicker, as you still need room for electronics, but it has zero flex to it, and is slightly cheaper than getting a steal plate cut.

I can post pictures when I am at my pc later.

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #5 on: Mon, 17 August 2015, 04:58:22 »
I thought of that yesterday when I woke up, and then I looked at my pizza box prototype to see how much space there would be between those bigger holes. It seems there only is 1mm or so of space in between the columns of switches, and maybe 4 or 5mm between rows, but my rows are not straight lines... So I wondered if that would leave enough material in the thicker plate to be solid.

There is only one way to know for sure... I'll give it a go :)

Edit: According to the Matias blueprints it'll leave 1.8mm between columns and 6.2mm between rows. It is more than I thought it would be, sounds sturdy enough :)
« Last Edit: Mon, 17 August 2015, 05:27:14 by Loonie »

Offline rowdy

  • HHKB Hapster
  • * Erudite Elder
  • Posts: 21175
  • Location: melbourne.vic.au
  • Missed another sale.
Re: WIP - My first DIY custom ergo keyboard
« Reply #6 on: Sun, 23 August 2015, 05:04:20 »
Enablers are tiny little circuit boards just large enough for one switch.  You can connect them together (somehow, I've never had the need to find out how).

That might be a bit easier than hard-wiring, and maybe make the switches easily reusable if you want to experiment with slightly different layouts.

http://techkeys.us/collections/accessories/products/the-enabler
"Because keyboards are accessories to PC makers, they focus on minimizing the manufacturing costs. But that’s incorrect. It’s in HHKB’s slogan, but when America’s cowboys were in the middle of a trip and their horse died, they would leave the horse there. But even if they were in the middle of a desert, they would take their saddle with them. The horse was a consumable good, but the saddle was an interface that their bodies had gotten used to. In the same vein, PCs are consumable goods, while keyboards are important interfaces." - Eiiti Wada

NEC APC-H4100E | Ducky DK9008 Shine MX blue LED red | Ducky DK9008 Shine MX blue LED green | Link 900243-08 | CM QFR MX black | KeyCool 87 white MX reds | HHKB 2 Pro | Model M 02-Mar-1993 | Model M 29-Nov-1995 | CM Trigger (broken) | CM QFS MX green | Ducky DK9087 Shine 3 TKL Yellow Edition MX black | Lexmark SSK 21-Apr-1994 | IBM SSK 13-Oct-1987 | CODE TKL MX clear | Model M 122 01-Jun-1988

Ị̸͚̯̲́ͤ̃͑̇̑ͯ̊̂͟ͅs̞͚̩͉̝̪̲͗͊ͪ̽̚̚ ̭̦͖͕̑́͌ͬͩ͟t̷̻͔̙̑͟h̹̠̼͋ͤ͋i̤̜̣̦̱̫͈͔̞ͭ͑ͥ̌̔s̬͔͎̍̈ͥͫ̐̾ͣ̔̇͘ͅ ̩̘̼͆̐̕e̞̰͓̲̺̎͐̏ͬ̓̅̾͠͝ͅv̶̰͕̱̞̥̍ͣ̄̕e͕͙͖̬̜͓͎̤̊ͭ͐͝ṇ̰͎̱̤̟̭ͫ͌̌͢͠ͅ ̳̥̦ͮ̐ͤ̎̊ͣ͡͡n̤̜̙̺̪̒͜e̶̻̦̿ͮ̂̀c̝̘̝͖̠̖͐ͨͪ̈̐͌ͩ̀e̷̥͇̋ͦs̢̡̤ͤͤͯ͜s͈̠̉̑͘a̱͕̗͖̳̥̺ͬͦͧ͆̌̑͡r̶̟̖̈͘ỷ̮̦̩͙͔ͫ̾ͬ̔ͬͮ̌?̵̘͇͔͙ͥͪ͞ͅ

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #7 on: Sun, 30 August 2015, 17:08:56 »
Update !

After having having punched more holes in cardboard and testing different positions for the thumb cluster I finally found a layout I am really satisfied with. Here it is:
109869-0
It is not completely finished but I feel the hardware keys are in the best spot possible for my hands, and that the software layout will evolve a bit when I will actually use it.  I am happy with the fact I can easily combine modifiers with a single hand.

I finally settled for plywood sheets: a 1mm thick sheet for the mounting plate and a 5mm (3/16th inch) one for support. I found the 1mm sheets in an art supplies store, but they didn't have any in stock so I had to order them.
Meanwhile I went to the fablab that I have the luck to have at the end of my street. I did some testing with the laser cutter and scrap plywood they had lying around and I am glad I did. I discovered that this laser cutter has a 0.2mm kerf width so I had to reduce the size of the holes by 0.2mm in the file for them to have the exact actual dimensions I wanted.

Today I went back to the fablab with my plywood sheets to have them cut. Thanks to the testing last week they came out exactly like I wanted them, with no play at all. The holes are 15.5mm by 12.8mm in the mounting plate and 16.7mm by 12.8mm in the supporting plate.

Next step will be sanding and oiling the mounting plates (with linseed oil) before fitting the switches in them.

I still have to order the Teensy 2.0 and figure out a way to link the two halves together. I'd like to be able to unplug them, but I don't know what kind of chip or what to transfer the information to the half with the Teensy.

As for the wiring, I looked into the Enablers, but I'm not sure how it would make it easier? I don't think I will reuse the switches as I have enough switches left to make a whole other keyboard.
109871-1109873-2109875-3109877-4109879-5109881-6
« Last Edit: Sun, 30 August 2015, 17:10:53 by Loonie »

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: WIP - My first DIY custom ergo keyboard
« Reply #8 on: Mon, 31 August 2015, 04:51:56 »
Looking good!

Enablers are great if you want LEDs as it would be confusing and messy to handwire each switch twice, but the only thing they help with without LEDs is you don't have to mess about with insulating where your row/column wires cross.

If you want easy firmware just wire it up like an Ergodox and use whatever chip that uses in the non-Teensy half :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #9 on: Tue, 01 September 2015, 14:45:30 »
Thank you :)

I won't use Enablers for this project, then. I won't put LEDs in this one nor do I plan on ever reusing the switches. If I want to make another keyboard I have plenty enough left from the package. Maybe when I'm tired of carrying my keyboard around I'll make a fancier one, who knows?

I finally found some correct explanation of how ErgoDoxes are wired. What I wonder though is how I would solder wires to the I/O chip? In Ergodoxes it is soldered to the PCB, and the Teensy comes with its own tiny PCB, but the chip comes naked. Can I solder the wires directly to its legs without attaching the chip somehow? It seems to need resistances, too.

Shaymdev found another solution using USB c breakout boards for his Shergo keyboard. It is conceptually more simple to me and doesn't need as many parts, but I'm not sure I could use that for my keyboard, since I have more rows and columns than he does. As I understand it, it seems doable at the price of reversibility or some modifying the firmware, but then I'm not sure I could get a cable with enough wires in it. Maybe I would have to make my own cable.

What do you think would be the best option ?
« Last Edit: Tue, 01 September 2015, 15:07:51 by Loonie »

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: WIP - My first DIY custom ergo keyboard
« Reply #10 on: Tue, 01 September 2015, 16:20:55 »
You have 35 switches so the minimum number of wires you'd need to run between the two halves is 12 (for a 6x6 or 7x5 matrix) - that's a lot of wires!  Either your joining cable will have to be quite thick or it will be thin which usually means fragile, especially if it's homemade by a relative newbie (no offense, I wouldn't trust myself to make one either) and neither option is good for carrying around.  As such I'd have to go with the ErgoDox way of doing things even though it makes it harder.

The pins/holes on the sides of a Teensy are directly connected to the chip pins so you just solder to them as described in the pic you linked, and you're right that you need two 2.2k resistors for the chip in the other half.  I would use the other VCC pin as it's closer and connect the resistors to PD0 and PB7 on top of the Teensy to keep things tidy.

Although reading your post again I'm wondering if you've bought a bare ATMega chip rather than a Teensy?  In theory you could solder straight to the legs but that would be an impressive feat of soldering!
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #11 on: Tue, 01 September 2015, 16:24:11 »
I didn't buy it yet but my concern was about  the MCP23018 i/o expander chip which doesn't come on a mini PCB like the Teensy.
« Last Edit: Tue, 01 September 2015, 16:28:40 by Loonie »

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: WIP - My first DIY custom ergo keyboard
« Reply #12 on: Tue, 01 September 2015, 16:33:44 »
Oh that chip! :))

If you carefully bend alternate legs in and out there's plenty of room to solder to them, the legs are the same distance apart as the pins on the Teensy.  The chip is basically a plastic block with not much inside so you could hot glue it to the bottom of the plate so it's removable, or superglue if that's where it will spend it's entire life :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Oobly

  • * Esteemed Elder
  • Posts: 3929
  • Location: Finland
Re: WIP - My first DIY custom ergo keyboard
« Reply #13 on: Thu, 03 September 2015, 01:07:37 »
For a 12 wire cable you could use a (non-reversible) type C connector and twisted magnet wire, but it's a rather delicate cable then. I ended up using two pieces of thin USB cable for mine, but I only needed 10 wires. Another option is using a pair of 6p6c RJ12 connectors and cables, but they're not so easy to find and will increase the bulk a bit.

You could actually use a Teensy on both sides and use the built-in SPI / I2C to communicate between them, or the MCP23018 like the ErgoDox uses. Then you only need a 4 wire cable. In that case I'd go for a 6p4c RJ11 cable and connectors. I like the curly cables myself, it's what I'll be using on my next ergo prototype. They're easy enough to find, relatively cheap and very sturdy, much more reliable than the audio jacks the ErgoDox uses.

You can pretty easily glue the case of the chip (MCP) to a convenient spot inside the case and hand wire it just like the Teensy. It has the same pin spacing. You can flatten them out an clip them shorter to provide less flexible solder points if you think it will be an issue.
Buying more keycaps,
it really hacks my wallet,
but I must have them.

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #14 on: Thu, 03 September 2015, 11:57:33 »
Thank you both for your advice :)

I'm having a little trouble finding 4-pin TRRS jack sockets that ship to France, maybe I'm not looking in the right place or searching with the right keywords.

I've searched for RJ11 sockets, I like this kind of plug that clicks into place. What bothers me is that they seem to be about 12-15mm in their smallest dimension, which would make my keyboard very thick.

So I was thinking, is there any drawback in using mini or micro usb breakout boards and cables? They are really easy to find and are cheap. Although I can't seem to find the appropriate cable, it seems easy enough to make.


Offline nathanrosspowell

  • * Destiny Supporter
  • Posts: 1559
  • Location: Montreal, QC
    • nathanrosspowell.com
Re: WIP - My first DIY custom ergo keyboard
« Reply #15 on: Thu, 03 September 2015, 13:07:49 »
Very nice work. I will be watching for updates :)

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: WIP - My first DIY custom ergo keyboard
« Reply #16 on: Fri, 04 September 2015, 17:04:39 »
So I was thinking, is there any drawback in using mini or micro usb breakout boards and cables? They are really easy to find and are cheap. Although I can't seem to find the appropriate cable, it seems easy enough to make.

Micro USBs are very small and quite fragile but mini would be good - make sure the connector solder through the breakout board though or you might pull them off with repeated connection/disconnection.

I think USB is better than TRRS for this because if you unplug an Ergodox while it's switched on the TRRS shorts and damage can be done, but there's no chance of this with USB connectors.  You'll want to wire the power and ground on the end pins as they are designed to connect slightly before the middle ones so the chip will always be powered on before the Teensy tries to communicate with it (not sure it matters but it's designed that way for USB device/computer so may as well make use of it!)

If you want a nice short mini-mini USB cable (perhaps with a matching one to your computer?) you might like to speak to pexon on here, or have a look on his site - he's a nice guy who makes great cables.  Or you could just chop the big end off USB-mini cable and attach another mini connector instead.
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline spindle

  • Posts: 28
Re: WIP - My first DIY custom ergo keyboard
« Reply #17 on: Fri, 04 September 2015, 21:51:58 »
You might be interesteg in checking the firmware I've made for my own split keyboard.

For hardware I'm using 2 arduino pro micros. To connect the two halves, I'm just using 3 wires (vcc, gnd, serial).

My firmware is based off TMK and uses a simple software serial library to communicate between the two halves. You can send data both ways, so if you want to add indicator leds that should be fine as well.

A cool thing about this design is you can plug either half into the computer via USB or even use both halves independently.

Here's my messy prototype.




Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: WIP - My first DIY custom ergo keyboard
« Reply #18 on: Tue, 22 March 2016, 11:54:57 »
Hello!

This project is not dead, even though it spent quite some time stored away in a drawer.

First, I thought the top side of my keyboard with the keycaps looked somewhat unfinished, so I added two layers of 5mm plywood to make a frame around the keys. I think it looks much better that way. I also took this opportunity to trap the nuts in between the layers to make them invisible when the keycaps are on.



Spindle's solution above appealed to me, with a pro micro arduino board in each of the halves and being able to have a different layout depending on which half you connect to the computer.
I ended up choosing TRS plugs to connect the halves together and a micro USB plug to connect to the computer. I'll have to be careful to always unplug the USB before I unplug the TRS.

They are both wired, the only things missing are the micro USB extension to reach the edge of the keyboard and the bottom part of the keyboard to encase the circuitry.

I struggled a bit installing the firmware because there is no button to put the Micro Pro in bootloader mode. avrdude told me the "programmer" would not respond, and when searching the web for a solution to that, it seemed the only answer was a bad USB cable. So I tried several brand new ones to no avail. The solution was to put the board in bootloader mode by connecting the RST pin to the GND pin for a fraction of a second twice (to simulate pressing on a reset button twice). It makes the red LED glow faintly to acknowledge you pressed the button and goes into bootloader mode for 8 seconds. I was then able to install the firmware on it. Yay!

It seems to work properly, although I did not configure the keymap yet so it's Spindle's old one, which doesn't have the same number of rows/columns.

« Last Edit: Tue, 22 March 2016, 12:24:24 by Loonie »

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: Finished! - My first DIY custom ergo keyboard
« Reply #19 on: Mon, 16 May 2016, 17:07:25 »
I've been meaning to post an update for 3 weeks now, but I couldn't seem to get around to do it.

I received the last plywood sheets a month ago and I could finally finish my keyboard. I used a 5mm sheet to frame the circuitry and a 2mm sheet for the closing bottom layer. It leaves a tiny gap as the Pro Micro with the wires coming out of it is about 5.5mm thick so 5mm is just not enough, but in the end, the gap is actually useful because it allows me to check whether I plugged the keyboard in correctly.



I'm really happy with the way I cut the 5mm frame. I had been wondering how to do it for a long time. I didn't want to have to glue separate pieces of frame to make openings for the USB and TRS plugs but I didn't see how I could do it in one single piece. It was another fablab member who gave me the idea of going around the components. I engraved a line to delimit parts I would have to carve to let the TRS wires through as well as the micro USB breakout board. I then chipped the wood with a cutter. The laser cutter slows down and engraves deeper when reaching the end of a line when you don't calibrate it properly. That's why the wood appears to be cut all the way through on both sides of the micro USB plug. In retrospect, I think I should have calibrated the laser cutter to make a 2mm deep surface engraving, it would've been cleaner.

There it is, sitting at my desk:



After a week of carrying it to work and back, I started to get annoyed at keycaps falling off, or worse, keycaps being pushed in too deep. Apart from sitting lower than the other keycaps, which is uncomfortable, they are almost impossible to pull out. I when trying to pull them out, the switches themselves would pop out of their hole and I would end up pulling on the wires... Not good. So I made lids:



Two frames of 5mm plywood and a 2mm top cover. I extended the frame 1mm towards the center, and surface engraved the entire surface except from those 1mm. That way, the raised edge it leaves fits snugly inside the frame around the keycaps. When I put the lids on, they kind of click into place and won't budge when pushed sideways. They fall off if you turn the keyboard upside down, but so far I they never fell off while I was carrying them in my bag. No more pushed in caps!

I have been using my keyboard for a month, now, and I takes a bit of getting used to it. Some keys somehow appear a lot closer than before, so I tend to press the next key. It happens a lot when I want to press the letter I and end up pressing Enter. My thumbs are still in the process of getting used to deal with so many keys, but I'm doing better and better. Overall I'm quite happy with it. It's undeniably more comfortable than my Typematrix was, even though for the moment I mistype quite a bit. Funnily enough, the design feature that my hands adopted almost instantly was the aggressive column staggering.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Finished! - My first DIY custom ergo keyboard
« Reply #20 on: Mon, 16 May 2016, 17:54:26 »
It's strange what our hands will adapt to and what chey won't - totally unpredictable!

That's a good looking board, loving the tree on the case too :thumb:
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Loonie

  • Thread Starter
  • Posts: 13
  • Location: Paris, France
Re: Finished! - My first DIY custom ergo keyboard
« Reply #21 on: Tue, 17 May 2016, 03:26:01 »
Thank you! I created the tree with Context Free and hit "Render" until it made a variation of it I liked  :)