Author Topic: Zustiur's Custom Keyboards ZusDox  (Read 33007 times)

0 Members and 1 Guest are viewing this topic.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Zustiur's Custom Keyboards ZusDox
« on: Thu, 14 May 2015, 04:46:29 »
I expect this thread to be a written record of the research, design process and construction process of a board I'm calling the ZusDox.
Zus, short for my screenname, and Dox short for ErgoDox, from which I'm taking much of the existing design.
As you'll see below, the main design is an expanded ErgoDox - expanded with Fkeys and a redesigned thumb section. Exactly how ergonomic it will be depends mostly upon the size of your hands, I have fairly small hands (for a male at least) with what I believe are extra short pinkies (who knows, maybe everyone's pinkies are that short...)



One of the key driving forces behind this project is that my hands hurt. I want to replace all desktop keyboards with ergonomic keyboards sooner rather than later to curb any damage I'm doing to myself by continuing to work in the IT industry whilst also maintaining a significant interest in personal computing. That is, I use computers all day at work then all evening at home as well. I've already switched to an ErgoDox at home which has helped, partly because I've also switched to colemak layout at home.

The cause of the pain is not fully determined. I've always referred to it as Repetitive Strain Injury (RSI) but it could easily be arthritis or a combination of both. Just this last couple of weeks as we move into (Australian) winter, I've noticed that being cold makes things worse. That points towards arthritis I think?
These are the points that hurt most consistently:

Red indicating the worst pain, green indicating pain that only shows up rarely, and purple indicating pain that I only notice if I use rubber dome keyboards for a few hours. I think the ring finger on my right hand is a better candidate for RSI as is feels a little more like muscle/tendon pain, whereas the pinky on my left hand feels like the pain is very much in the joint. Various exercises and stretches do help but the relief seems to come after days of stretching, there's no immediate 'fix'.

This issue combined with my interest in keyboards has reached the point where I'm now looking at custom designs that match my hand as best as possible. The ergodox is an excellent starting point, but as many have noted, it's not perfect. I doubt my design will represent perfection for anyone other than myself, but that's pretty much a truth of ergonomics.

I'll talk more about my design in later posts and reserve the rest of this one for status updates and useful links etc.

Useful links
  GeekHack resource list

https://geekhack.org/index.php?topic=69582.0
  HASU's TMK Git Repository
https://github.com/tmk/tmk_keyboard/commit/b9fe36f237635db8e37fc94413a7bb7c381070fc
  Track Point
https://geekhack.org/index.php?topic=55960.0
https://geekhack.org/index.php?topic=8971.0
https://geekhack.org/index.php?topic=50176.0
  Keycap sellers
https://geekhack.org/index.php?topic=45672.0
  Key profiles
http://keycapsdirect.com/key-caps.php
  Teensy sellers
http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=568
  Ergodox board sellers
http://mechanicalkeyboards.com/shop/index.php?l=product_detail&p=537
  Switch sellers
http://mechanicalkeyboards.com/shop/index.php?l=product_list&c=43

  Background info on how to
http://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html
https://geekhack.org/index.php?topic=71191.0https://geekhack.org/index.php?topic=71191.0

Things I've yet to figure out
  • Where I can get the custom PCBs printed in Australia, if I go down that route
  • What colour MX switches to use, and if I should use multiple colours in a single board (lighter keys under pinkies). A key tester would help make the decision, if they were ever in stock. I think I want MX browns under my weakest fingers and clears for the remaining alpha-numerics with a possibility for MX Reds under modifiers (shift etc)
  • What the 'optimal' tilt is for the keyboard halves.
  • Possible material types (I want cheap for prototyping)

Decisions made
  • Must use Cherry MX switches because, Matias keys don't have the same availability of keycaps and I'm not sufficiently familiar with building keyboards to want to 'risk' using gaterons or any other 'mx compatible' keys.
  • Will use Teensy 2.0 for the controller


Status
First prototype has been built and is in use at my workplace.
More keycaps have been ordered in preparation for version 2 and 3
Now reexamining the entire design.

Zustiur
« Last Edit: Fri, 14 August 2015, 04:48:20 by Zustiur »

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #1 on: Thu, 14 May 2015, 05:32:17 »
For my work, I'll need more than one keyboard. I won't bore you with the details other than to say: 4 computers. 2 desks. Many client networks.

Keyboard 1 - the daily driver
This keyboard gets over 90% of my daily use at work. I type a lot. I'm currently using a full size Leopold MX Blue. The Blues are good, but the other base kb ergonomic issues are becoming a problem. Use of the keypad is rare, and happens mainly when I am putting in my SecurID passcode and have only one hand spare (because for some reason I always end up holding the token in one hand). In other words, I could lose the tenkey and not care 99% of the time. If it becomes a problem I could get a separate tenkey or put it on a function layer (my Ergodox at home has it on function layer 2).

Requirements:
Ergonomics in the form of:
   • Split
   • Column staggered more than the Ergodox
   • Thumb Keys
   • Colemak (i.e. programmable)
   • Mild tilt
   • Palm rest
Equivalent of tenkeyless/80% (I use too many Fkeys to go without dedicated ones)
Programmable key layout with function layers
Functions through a KVM switch which monitors keyboard input for 'scroll lock scroll lock' in order to switch between the 2 connected PCs
Scroll lock key (to interact with the KVM)

Wants:
Programmable/recordable macro keys ala Logitech G15 (A tool I used prior to going mechanical. It saved me 1000s of keystrokes over the years)
Included mouse of some-sort (See discussion below)
Non TRRS cable for the join (because so many people have had problems with them)

Nice to Have:
LEDs for caps lock and scroll lock

Do not want/care for:
Backlighting
Numlock
LCD display
Separate halves that slide around (a problem I have with the ErgoDox)


Why a built in mouse?
My job involves a ridiculous amount of tasks for which there are no keyboard shortcuts, or for which the 'shortcut' involves hitting tab 10+ times. A mouse gets around this, and typically needs a 1 second movement and a single click before I'm back to typing. Being able to mouse short distances and click once without leaving the home row would be amazing. However, having a touchpad or trackball between the split halves of the board would be an alternative worth trying if a trackpoint cannot be incorporated.
For times where more mousing is needed I'll continue to use my left handed Evoluent V4.
I considered having a separate controller for the 'mouse' but  I don’t have spare ports on the KVM.

What I've considered so far:
An ErgoDox would be a good starting point, but the more I use my one at home, the more I feel there would be issues at work. For instance, I use F2; a lot. I may still end up building another Ergodox for work to tide me over until I can build something more specific.

Keyboard 2 - the supplemental
This keyboard is used to control a laptop while being at least vaguely ergonomic in regards to where I can put the keyboard. I think 'where' equals, on my lap, so thinness is desirable so that it will slide under my desk while on my lap. There is VERY little room, so that may be the first feature to ignore. I use this keyboard for less than 100 words on a typical day, so lack of keys such as Fkeys is a very minor thing. I do want dedicated arrow keys and Context Menu key but could live without those if a mouse of some variety is included in the board itself.

Requirements:
Small
Wireless
60%ish
Good battery life

Wants:
Thin
Programmable/Colemak layout
Dedicated arrows + menu key or built in mouse

Nice to Have:
Mechanical
No slippy bottom surface (I can fix this myself by gluing something to the bottom if I have to)

What I've considered so far:
It occurs to me that my old HTPC keyboard made by Shintaro  (http://www.shintaro.com.au/products/06_keyboards_mice/keyboards/SH-KEYRF/) would fit the bill quite nicely, if it wasn't broken. I did open it up once, but I'm not savvy enough to see where the electrical fault is...
KVM switches: I already use one on this desk. To use it on the laptop as well would backfire as I need to switch keyboards without switching monitors (this would take a long time to explain, just trust me when I say it won't work).
My brother suggested beating the KVM problem by incorporating 2 USB outs into the keyboard and essentially building a KM (no V) switch into the primary keyboard above. That's an idea I need to examine further.



Design
I'm leaving keyboard 2 aside for now, that's likely to be worked on after the primary keyboard has gone through several prototypes.
Here is the layout that I think I want (bonus points to the first person who spots the 'deliberate' mistake).

This design differs from the ergodox in the following ways:
  • Inclusion of dedicated F keys. That means an extra row.
  • Increased stagger of columns
  • Shift of thumb cluster closer to palm
  • Larger key in bottom corner for 'CTRL'. I use the crease in my palm to press ctrl, not a finger. The ErgoDox makes that hard by making the key smaller
This image was produced with http://www.keyboard-layout-editor.com/. Sadly I seem to have hit some sort of limit in that tool as it doesn't like saving my design or allowing me to copy the full Permalink path.
I plugged the resulting 'raw data' into swill's plate builder tool http://builder.swillkb.com/ but A) it doesn't handle angled key placement, and B ) It seems to suffer from the same issue that stops me saving my design in the Keyboard Layout Editor.

Have you spotted the mistake yet? No, it's not the lack of a space bar. My space bars are actually the keys labelled Fn. I intend to use Hasu's TMK firmware to dual purpose those keys. A tap = space. Holding the key down = Fn. Also I realize the correct term in keyboard firmware is 'App' not 'Menu' but I think of that as the 'context menu' key so that's what I wrote.

I still have one key unassigned at the moment. That's probably going to be used to fix my mistake (CLUE!).

The reason for increasing the column stagger is fairly simple:

That's what my fingers do if I sit on the home row of a typical keyboard. Notice how my pinky is almost straight just to reach the home row?

As you can see in this picture, if I let my fingers curl naturally, then place them on the ergodox with my middle finger exactly on D (S on colemak) this is where the others fall. Ring finger is good, that sits on S (R). Pinky falls on the gap between keys, and the index finger sits on the bottom edge of F (T).
My thumb falls naturally right into the gap between the main keys and the thumb cluster.

I may change my mind in future about the necessity of dedicated F keys, but for now I'm going to assume that over-riding my muscle memory patterns at work would be a bad idea. At home where I don't use F2, F5 and F4 constantly, pressing Fn+2 is just fine. But at work... I don't want to reduce productivity if I can avoid doing so.



In case anyone is curious, here's my current ErgoDox layout:

Offline Evo_Spec

  • (╯°ヮ°)╯︵⌨
  • * Destiny Supporter
  • Posts: 1023
  • Location: Japan
Re: Zustiur's Custom Keyboards ZusDox
« Reply #2 on: Thu, 14 May 2015, 05:56:14 »
Interesting, looking forward to seeing how this turns out
.                 .  
GON NerD TKL DTA Edition

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #3 on: Sat, 16 May 2015, 01:08:42 »
I planned to make progress in the form of ordering parts today. This is not going according to plan however. I don't have the experience or existing collection that some other members of GeekHack have. Here's where I'm stuck:
Key Caps
I touch type, but my accuracy on Colemak is still low enough that I don't want to be typing client passwords without being able to check what I'm typing. That means I want labelled keys.
Labelled keysets all seem to come with row profiles which would only be appropriate if I was using QWERTY. If I can't find a supplies that will give me row profiles suitable for colemak (or better yet, with custom printed keys) then I'll have to make do with all keys being the same profile. I'm fine with that, but am still having trouble locating a suitable set. I'd also like to try out PBT or ... drat I've forgotten again. Is it DSA that's in the middle between PBT and ABS? I think that's it.
Then of course there's the issue of needing 14 1.5x keys. Signature Plastics sells a 12 key set. Different key sellers have different profiles don't they? So buying that set would lock me into SP and they don't appear to do labelled keys that match colemak.
I seem to be going around in circles.
I heard about the grab bag/crap bag thing. That would help me a lot but they're not available at the moment.

Key Switches
I want MX Clears. Mechanical keyboards shows those are out of stock, which I believe is a near-constant problem. I thought about Gateron, but they don't appear to make a comparable switch (which seems like a business oversight!). So my options appear to be:
Find another store
Buy blues instead (I'm using blues at work currently, no-one has complained. Yet)
Wait an unknown period to purchase MX Clears.

I've tried browns and didn't like them. I bottom out enough with blues, so I want equal or heavier switches. I suppose I could try greens. Hmm. I did want to try those when I first heard about them. This IS a prototype ... (unless the prototype turns out to be perfection. HAH!)
It doesn't appear that they're about to run out of stock, so I'll consider that for a day or two.

Quantity
For one keyboard I'll require 88 key switches. Mechanical Keyboards.com sells packs of 5, 50, 100, 110. I'm going to build two keyboards eventually but the second one isn't even drawn yet, let alone a stable design. I'll go with the 100 pack I guess. Then again, I was talking about making some keys red.
Looks like there's only 8 that I'd want as red, so yes.
The current plan is to buy:
100 MX Green
10 MX Red
But I'll look a bit more for MX Clear before I commit to an order.
The other thing to consider in regards to quantity is am I planning for one keyboard or two or three (curse that 2 desks at work issue!)? I think at present the only sensible option is to plan for 1, otherwise it will become a game of 'how long is a piece of string' with regards to number of prototypes and number of completed keyboards etc. Money isn't too much of a concern here because I'm paying for quality + hobby time + my health, but I'd still like to avoid multiple rounds of postage and so forth.

Any advice on this from experienced hackers on these 3 topics would be appreciated.




Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #4 on: Sat, 16 May 2015, 02:05:35 »
If I can't make practical progress, perhaps I should do some more theory.
Getting back to the main issue, I have the following set up currently:

1x full KB MX Blue
1x full KB rubber domed awfulness, on a desk shared with other people
1x full KB rubber domed awfulness, used almost entirely for setting passwords a few times a day
In order they're probably used about 78%, 20%, 2%. However, that's in order of keypresses. In frequency of use by day, it's more like 99%, 5%, 50%, because there are many days where I don't have to work on the other desk, but not many days where I can avoid setting someone's PW, and I'm only ever a full day away from my primary board under extreme circumstances.

That shared desk is an issue. The person I shared it with hunts and pecks, so colemak and blank keys are out of the question and there isn't enough room on the desk for multiple keyboards. My current plan is to replace my primary keyboard with the ZusDox, and shift my full MX Blue (or a tenkelyess that I have spare at home) to the shared desk.
That just leaves the password board.

As mentioned earlier, because of what I use it for, it could almost be a 40% board. Hmm, Google image to the rescue. No, not 40%; 60%.
Split halves would be detrimental as I have to move it around a lot and sometimes rest it on my lap. However, a split in the placement of keys on a single solid board isn't a bad thing, especially with a mouse pointer or mousepad in the middle.
Let's think a little more about what keys I need. I use them in this order from most frequent to least.
Alphas
Numerics
Arrows
App/Menu key
Enter
Tab
Del
Backspace
Space   (Yes really, it's this far down the list!)
Alt
Ctrl
F4
Winkey
F2

I don't think I use anything else on it. Certainly not the other F keys nor nav keys. I don't even use () [] or <>. Heck I don't even really use " or .

Are there any existing 60% boards that can switch to colemak? And are there any with mouse pointers already? If not, and I build this myself, that's 60 more keys to think about buying.

From above, 100 Green +10 red, -88 keys used leaves me with 22 keys. 5-packs do not represent value for money, so... 100 green +50 red = 150-88 leaves 62. Can I bear the thought of using keys with no sense of activation for typing passwords?

No
No I can't.

Let's approach this the other way then.
ZusDox requires 80 tactile and 8 soft keys. Zus60 (for want of a better name) requires ... back to google images...
Yikes. There really is no standard here.
ZusMini requires 36 tactile, + 24 other, up to 8 of which should be soft.
80+36 = 116. or 80+36+24-8 = 132.

This isn't really helping to find a match for the order options. Perhaps I'll order:
100+50 tactile (clear or green or blue)
5+5+5 soft (red)

That still leaves the question of creating multiple prototypes. Is it worth just forgetting about 'waste' and ordering 500 switches? Who knows!


Offline rsac

  • Posts: 47
Re: Zustiur's Custom Keyboards ZusDox
« Reply #5 on: Sat, 16 May 2015, 10:06:16 »
Quote
Is it DSA that's in the middle between PBT and ABS? I think that's it.
DSA is a key profile, PBT and ABS are types of plastic.

Quote
Keyboard 2 - the supplemental
This keyboard is used to control a laptop while being at least vaguely ergonomic in regards to where I can put the keyboard. I think 'where' equals, on my lap, so thinness is desirable so that it will slide under my desk while on my lap.
Have you seen the Rose keyboard: https://geekhack.org/index.php?topic=71831.0 ?
It seems to use the technique that sypl described in that other thread: https://geekhack.org/index.php?topic=70079.0

That seems as thin as you can go using cherry MX switches.

Offline neverused

  • Posts: 572
Re: Zustiur's Custom Keyboards ZusDox
« Reply #6 on: Sat, 16 May 2015, 10:59:56 »
Look on Rose's thread about 1.5 mm plates, I posted an image of how I partially wired my board. I see no reason why you couldn't make a keyboard that is <7mm high under the switch if using mx cherry switches.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #7 on: Sat, 16 May 2015, 23:06:28 »
Yes, I'd already spotted Rose's Eagle KB. It's very nice and I'd be sorely tempted to build one if I hadn't already decided upon doing my own designs. Also Rose doesn't appear to have make his designs publicly available. I've just begun mining his posts for useful information.

Today's finds:
'Magnet wire' is a type of wire that you can use without having to use wire strippers. You just burn the insulation away with your soldering iron. That's likely to reduce my build time significantly!
Rose's inkscape tutorial https://geekhack.org/index.php?topic=71863.0

Oh. He doesn't have that many posts, so I've finished already. That's not what I was expecting.

Today's theory:
Teensy 2.0 has 21 pins available. (I think)
ZusDox currently has 14 columns by 6 rows. Plus the thumb clusters. Columns 7 and 8 only have 3 keys, so the spares can be put in the thumb clusters. By my count that leaves 4 extra keys to take care of, or 2/3 of a column.
So let's count that as 15 columns, with the middle one being split across the thumb cluster.
15+6 = 21 pins.
That would leave me with no option for LEDs at all (scroll lock being of particular interest).
So an IO expander may well be necessary, and make the join between halves look less messy.


Quote from: rsac
DSA is a key profile, PBT and ABS are types of plastic.
Hmm. Ok. I could have sworn there were three types of plastic to choose from. Google... OH. I was getting PBT mixed up with POM.
Ultimately I don't think it matters which I choose as yellowing and shine don't bother me sufficiently to matter so PBT will remain on the 'nice to have' list. Availability will be the deciding factor as per yesterday's update.

Offline rsac

  • Posts: 47
Re: Zustiur's Custom Keyboards ZusDox
« Reply #8 on: Sat, 16 May 2015, 23:46:33 »
Today's finds:
'Magnet wire' is a type of wire that you can use without having to use wire strippers. You just burn the insulation away with your soldering iron. That's likely to reduce my build time significantly!
If you read Rose's build log, his experience with magnetic wires wasn't the best. YMMV.

Today's theory:
Teensy 2.0 has 21 pins available. (I think)
ZusDox currently has 14 columns by 6 rows. Plus the thumb clusters. Columns 7 and 8 only have 3 keys, so the spares can be put in the thumb clusters. By my count that leaves 4 extra keys to take care of, or 2/3 of a column.
So let's count that as 15 columns, with the middle one being split across the thumb cluster.
15+6 = 21 pins.
That would leave me with no option for LEDs at all (scroll lock being of particular interest).
So an IO expander may well be necessary, and make the join between halves look less messy.
Teensy 2.0 has 25 available GPIO pins, so you don't need to do any gymnastics with your matrix if you don't want to. But there was some talk about wiring a keyboard with a minimum amount of pins in the CHIP thread if you are still interested (to use more LEDs, for example): https://geekhack.org/index.php?topic=71758.0

Offline blawb

  • Posts: 47
  • Location: USA CA
Re: Zustiur's Custom Keyboards ZusDox
« Reply #9 on: Sun, 17 May 2015, 02:20:35 »
This thread is not only interesting, but has a ton of actually useful information and references. I like it.  :thumb:
i hate wet socks

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #10 on: Mon, 18 May 2015, 07:29:01 »
Very glad to hear it blawb. I was worried that I was being verbose and boring, when my intention is to be detailed and informative. Hopefully it will become useful to others as I accumulate more information and document my experience.

While I may not have made any practical progress yet, starting this thread (and thereby mentally committing to the project) is already being beneficial. It has made me more observant.
As a result, today when I noticed my right hand ring finger hurting, I also noticed what I was doing exactly. It seems that the pain trigger of that RSI(*) is reaching for the enter key with my pinky, or for backspace with ring finger or pinky. This explains why I haven't noticed the same problem at home on my ergodox - no keys cause that movement.

rsac, really? 25 GPIO pins? Hmm. I referenced a diagram when I counted the pins... I've just counted again. Apparently I cannot count :P
It was this one which Rose posted in the simple questions simple answers thread

If I've counted correctly this time, there are 24 purple pins. Which is the 25th? No, don't answer that. I should be looking things like that up for myself. The datasheet here must surely have the answer https://www.pjrc.com/teensy/atmega32u4.pdf
Annnd it looks like PD6 is the answer, though I'd need more reading time to be sure (I just don't have the spare time tonight that I want).
« Last Edit: Mon, 18 May 2015, 07:32:29 by Zustiur »

Offline berserkfan

  • Posts: 2135
  • Location: Not CONUS Not CONUS Not CONUS Not CONUS
  • changing diapers is more fun than model f assembly
Re: Zustiur's Custom Keyboards ZusDox
« Reply #11 on: Mon, 18 May 2015, 09:14:10 »
Hi, my friend, I don't have time to address so many of the things in your posts now, but I am VERY ENTHUSIASTIC to support you.

I also have small hands and was unable to use the normal ergodox.

Right now I am using this pair of boards with the layouts
 
123456                   7890-=
TABqgfpw                lujy;BACKSPACE
BACKSPACE rastd     hneio'
SHIFTzxvck              bm,./ SHIFT
CTRL pageup pagedown alt num space       space pluskey alt pagedown pageup CTRL

I am using 1u keys, including shift and space and return. It's very comfortable. The main problem I have is with the ' key which I am using a regular keycap on, but which is too low for my pinky.

Didn't have enough time to read all your posts, but I recommend a fully split layout ie two separate parts. That way your keyboard-s match your shoulder width.

Go for teensy 2+. Otherwise you struggle with too many limitations. You can barely do 100+ keys even on a difficult to design 10x10 matrix with room left over for lock lights and LED controls. And I'm guessing you, like me, need a lot of functionality not just typing regular alphas. Do you really want to use 3 layers which requires more memorizing or more labelling? Also if you use 2 teensies, you will be able to do one handed layout usage, you will have spare pins to do more detailed LED control eg program LEDs by rows, etc.

Really hoping that your project will succeed. If it is promising enough I will join your PCB and casing group buy!
Most of the modding can be done on your own once you break through the psychological barriers.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #12 on: Tue, 19 May 2015, 04:27:18 »
Hi berserktan, welcome to the thread.
I'm a long way from PCBs and cases yet, but hopefully I'll get there before too many months go by. You raised an idea that I had myself last night after going to bed. "If 1.5x keys are such a problem, why not just use 1x for everything?"
That is my current plan for prototype one. I'll have to redraw the layout before looking at case cutting anyway, so there's no rework required. Hopefully this change will make it possible to order parts with out any more fussing around and agonizing over the decisions.
Can't make any progress tonight - it's my dad's birthday.


 

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #13 on: Fri, 22 May 2015, 20:35:25 »
My teensies arrived yesterday. One less excuse to delay other purchases.

Getting back to berserktan's suggestions: While I do want a 'fully featured board', I am willing to be practical about it. And to be honest, I'm not losing that many keys anyway. Let's evaluate:
Standard kb is 104 keys.
Tenkeyless boards have 17 less at 87. I've used a tenkeyless before and have no sense of loss of functionality.
I'm building a board with a target of 88 keys.

I could just take a tenkeyless layout and shuffle things around into an ergonomic pattern, but that would leave many keys in hard to use places or result in illogical scattering of arrow keys. Instead some things will be shifted into layers. By doing this I free up some of those 88 keys to perform repeated roles. For instance, if you're mousing with your right hand, you might want to hit enter with your left, so it's useful to have an enter key on the left hand.

A semi-random idea just struck me though: The keypad/tenkey could be shifted to the middle of a split keyboard to make your basic board more ergonomic (separating the alphas to accommodate your shoulders better). It's probably been done somewhere but I don't think I've seen it.

I've been playing with the http://www.keyboard-layout-editor.com/ again. I seem to have hit the same problem as last time where it won't let me save or permalink after a certain point. Possibly that point is a quantity of information, or possibly it's a number of alterations.
I'm also convinced that Swill's plate builder isn't correctly handling 1.5x keys when I put them in. It doesn't appear to treat the center of the key as the spot for the cutout/stem.
Looking at the raw code, I can see that KLE has gone a bit screwy. Thankfully the code is easy enough to understand, so I rewrote each line. This took quite a while and I was learning as I went. Here are the rules that weren't immediately apparent:
Each line of raw code moves the keys down 1 position. If you want staggered keys you need to move them back up with a negative y coordinate
However a 'line' isn't necessarily where you have a carriage return in the code. it's where you have the square brackets and the comma that separates them.
If you ever end up with a line that includes y:-1  then you should take that key and re-write it into the previous line
Key rotation does crazy things to your code if you're not careful. Do those keys last.

I can see why the code works the way it does (by the way, I'm a bit of a progammer, so that helps) but for column stagger, I'm sure there'd be a friendlier way of doing things.

I redid the finger keys this way, then chucked it into the plate builder for confirmation. MUCH better results.
I then added in the thumbs and tried to permalink again. That still doesn't like me. Oh well, here's the raw code; you can see it for yourself this way. BTW 90 keys now :)
Code: [Select]
[{x:2.25},"F2","F3","F4",{x:9},"F9","F10","F11"],
[{y:-0.75,x:5.5},"F5","F6",{x:4.5},"F7","F8"],
[{y:-0.5},"Esc",{x:0.25},"F1",{x:15},"F12",{x:0.25},"Print\n\n\n\n\n\nScreen"],
[{y:-0.5,x:3.5},"#\n3",{x:10.5},"*\n8"],
[{y:-0.75,x:2.5},"@\n2",{x:12.5},"(\n9"],
[{y:-0.75,x:4.5},"$\n4",{x:8.5},"&\n7"],
[{y:-0.75,x:5.5},"%\n5","^\n6",{x:4.5},"_\n-","^\n6"],
[{y:-0.75,w:1.5},"~\n`","!\n1",{x:1},"F\n\n\n\nUp",{x:10.5},"U\n8\n\n\nUp",{x:1},")\n0",{w:1.5},"+\n="],
[{y:-0.75,x:2.5},"W",{x:12.5},"Y\n9\n\n\nPgUp"],
[{y:-0.75,x:4.5},"P",{x:8.5},"L\n7\n\n\nHome"],
[{y:-0.75,x:5.5},"G",{h:1.5},"L+1",{x:4.5,h:1.5},"BkSpc","J"],
[{y:-0.75,w:1.5},"Tab","Q",{x:1},"S\n\n\n\nDn",{x:10.5},"E\n5\n\n\nDn",{x:1},":\n;",{w:1.5},"|\n\\"],
[{y:-0.75,x:2.5},"R\n\n\n\nLf",{x:12.5},"I\n6\n\n\nRt"],
[{y:-0.75,x:4.5},"T\n\n\n\nRt",{x:8.5},"N\n4\n\n\nLf"],
[{y:-0.75,x:5.5},"D",{x:6.5},"H\n0\n\n\nHome"],
[{y:-0.75,w:1.5},"Caps","A",{x:1},"C",{x:10.5},"<\n2\n\n\n\n\n,",{x:1},"O\n\n\n\nEnd",{w:1.5},"\"\n'"],
[{y:-0.75,x:2.5},"X",{x:3,h:1.5},"Enter",{x:4.5,h:1.5},"Del",{x:3},">\n3\n\n\nPgDn\n\n."],
[{y:-0.75,x:4.5},"V",{x:8.5},"M\n1\n\n\nEnd"],
[{y:-0.75,x:5.5},"B",{x:6.5},"K"],
[{y:-0.75,w:1.5},"L Shift","Z",{x:1},"L Alt",{x:10.5},"R Alt",{x:1},"?\n/",{w:1.5},"R Shift"],
[{y:-0.75,x:2.5},"\nFn 2",{x:12.5},"Menu"],
[{y:-0.75,x:4.5},"\nFn",{x:8.5},"\nFn"],
[{y:-0.5,w:1.5},"L Ctrl","Win",{x:14.5},"Win",{w:1.5},"R Ctrl"],
[{r:30,rx:6.125,ry:4.25,y:1,x:1.75},"","Ctrl\n\n\n\n\n\nF4"],
[{x:0.75,h:2},"BSpc",{h:2},"Del","{\n["],
[{x:2.75},"}\n]"],
[{r:-30,rx:13.35,y:1,x:-3.75},"Alt\n\n\n\n\n\nF4",""],
[{x:-3.75},"Insert",{h:2},"Insert",{h:2},"Enter"],
[{x:-3.75},""]

I think I mentioned it previously, but Swill's plate builder has a limitation at the moment - it simple doesn't handle rotated keys. That's fair enough and there are ways around the problem.
All told, that re-creation of my layout took about an hour and a half. That's not too bad when you consider that it's taken me from utter confusion to a plate file that would actually work if sent to a laser cutter.

The next step will be opening up the file in CAD (I'll be trying Inkscape) and rotating the thumb keys myself. That however will have to wait for a few hours while life gets in the way.

Offline berserkfan

  • Posts: 2135
  • Location: Not CONUS Not CONUS Not CONUS Not CONUS
  • changing diapers is more fun than model f assembly
Re: Zustiur's Custom Keyboards ZusDox
« Reply #14 on: Fri, 22 May 2015, 21:22:44 »
Here's some shameless self promotion (preparing the ground for June keyboard of the month)

https://geekhack.org/index.php?topic=72100.0

https://geekhack.org/index.php?action=dlattach;topic=72100.0;attach=101319;image
Most of the modding can be done on your own once you break through the psychological barriers.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #15 on: Sat, 23 May 2015, 01:22:20 »
Did I say the next step was CAD? I lied.
The next step was ordering switches and caps. I went to a lot of different pages (all listed here https://geekhack.org/index.php?topic=45672.0) and ended up picking http://mechanicalkeyboards.com/?cc=1 for several reasons.
1 they sell caps AND switches (thus saving me from paying 2 lots of postage)
2 they weren't a difficult website to navigate
3 many of the other sites I looked at didn't have a basic white on black printed key set, or if they did, it was out of stock
4 all the colour options might look nice, but I have to allow for putting them on a keyboard that requires 88 or 90 keys, in what is still roughly an ergodox layout.

I dare say I could have found cheaper or more efficient options if I looked long and hard enough, but time is more precious than money. As a result, I have ordered:
108 Keycaps
110 Cherry MX White switches (plate mounted greens were out of stock, along with all the clears)
50 Cherry MX Red switches


Also, in answer to my questions from an earlier post:
Given that I want printed keys, and colemak layout, DSA is the only suitable profile option (without doing a custom order...)
There's no point in buying PBT keys until I figure out how to resolve the 14 1.5x key requirement issue.

My temporary solution to that will be to put 1x keys from the keypad onto 1.5x positions until such time as I get a better solution. That better solution may well involve cutting larger caps down to size.

Offline naz

  • Posts: 54
Re: Zustiur's Custom Keyboards ZusDox
« Reply #16 on: Sat, 23 May 2015, 08:27:17 »
I understand that DSA keycaps are exclusive to Signature Plastic, so you can't get them anywhere else.

by the way what kind of teensy did you choose?? 2.0, 2.0++, with pins, without pins???

Regards

« Last Edit: Sat, 23 May 2015, 08:49:53 by naz »

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #17 on: Sat, 06 June 2015, 05:43:56 »
I'm finally fiddling with LibreCAD (Which is free by the way). Man this is unintuitive.
I'm very slowly getting the hang of how to do things but I'm sure there are more efficient ways...

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #18 on: Sat, 13 June 2015, 05:00:49 »
I have too many hobbies, I keep getting distracted from this project. I kept expecting to be inspired when my switches turned up, but that has not happened yet. I've just fired off an email to confirm that they've been shipped...

I was playing around with LibreCAD last weekend and quickly got frustrated. One thing I now realize is that, other than as a learning exercise, there's not too much point working out how to rotate thumb sections etc until I've settled some important questions. If I do it in the wrong order, I'll just end up having to do the diagram modifications all over again.

So:
1) I intend for this to be two separate hand pieces, thus putting both hands into the plate builder is actually detrimental.
2) I'll be using an ergodox style sandwich of acrylic, as that's probably the cheapest and most available substance.
3) I need to decide between the layers of my ergodox (Litster's design, figures below) or using a 1.5 mm layer for the switches so that they clip in properly. I'm leaning towards Litsters because of familiarity and to avoid potential plate snapping. However, As I'm not planning to use a PCB yet, that might be a bad idea.
4) Since I won't be using stabilizers, I'm better off selecting the costar stabilizer option in swill's plate builder as that will be easier to clean up in CAD.
5) I need to source screws before I commit to a hole size. Also the choice of sandwich options above would affect screw size. Another reason for wanting to stick with the 'known' design.
6) Until I settle on a laser cutter, I won't know what kerf value to use.
7) The plate builder (understandably) isn't leaving room for the teensy. I need to allow for that in CAD, and also ensure that I have the necessary cutouts for the USB plug and any holes I need to join the halves.

I tried to d/l and open litster's case design, but the files seem to be blank. I'm very confused. I was hoping to copy the size of the teensy slots from that so that I'm not guessing at requirements.


Here's a bit of a step by step for those of you following along:
My version 2 design with the 2 extra keys.


Un-rotate the thumb and delete one half.


Take it to plate builder


Rotate the thumb section and move it to the right spot, allow for teensy and connection to other half.  Note that these extra holes are only shown here as a guide for the moment, I haven't settled on their placement or size.


This leaves the bottom edge a long way back, but that might be okay since I'm going for a 'full hand' design anyway. I've got decades of being a 'palm rester', and see no reason to break the habit. Only when I'm typing a significant quantity of text on a qwerty board to my wrists float above the keyboard. On a colemak/dox my hand's don't need to move enough to warrant it. Or that could just be in my head...   I might just not be lifting my palms because I'm still insufficiently familiar with colemak.
Getting back to the point, the bottom edge may actually need to be extended slightly. This sounds easy, but I think I need to spend several hours with a LibreCAD tutorial as I'm still finding it near impossible to do things that sound easy in concept. Surely there is a way to move a line by a set amount, not just guessing at the right spot with a mouse.

Continuing my trend of not understanding how to use the plate builder properly, I was wondering where the extra layers got to. Then I scrolled down the web page.
Oh.
DUH.

« Last Edit: Sat, 13 June 2015, 05:03:56 by Zustiur »

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #19 on: Sat, 13 June 2015, 08:42:33 »
Okay, I found a tutorial by TheReimber that is helping a lot.
https://www.youtube.com/playlist?list=PLB9CB29692D89976A
I preferred this series to the one that was the first result in youtube (by GaryFox). However it's worth watching both as GaryFox covers a lot of other useful topics.

I still say LibreCAD is unintuitive but at least I'm getting somewhere. I've now been able to make the changes I knew were necessary and then print the plate to scale on paper. This is a very important step because I then called on my hobby skills and tools (Warhammer 40,000 in this instance) and cut some of the switch holes out and start TESTING my layout.
First test, are the holes the right size for a switch to click in? Yep.
Second test, are the columns staggered by the right amount for me? Yes, though I suspect I may want to shift the middle finger column by about 0.1x in a later revision. I was sticking with 0.25 increments in the layout editor to keep things simple. I conducted this test both by placing my fingertips in the holes and by actually slotting switches in. The latter option is what I need to be sure of the column shift requirement, but paper simply isn't rigid enough to make it a sufficiently accurate test.
Third test, is the thumb section in the right location? No, not quite. The first angled key is rubbing the nearest straight key. This brings me back to CAD. I've simply eyeballed the placement of that section in CAD. I'll need to find a more accurate way of moving it into the position that I chose in layout editor. I think I can do that now that I understand how to use grid snap and Snap on Endpoints. Not knowing those two things was causing a huge problem before because I could not actually place things precisely.

I first have to conquer my lack of understanding of rotated key placement.
I understand these sorts of lines:
[{y:-0.75,x:5.5},"B",{x:6.5},""],
but not yet these ones:
[{r:30,rx:6.125,ry:4.25,y:1,x:1.75},"",""],
r: is rotation by degrees clockwise (amusing since rotating objects in LibreCAD goes ANTIclockwise)
rx: had me confused, but acts just the same as x:. I'm not sure why it was necessary to call it rx instead.
ry: is more difficult because y isn't measured from a fixed point, it's measured from the previous row.
The corner point of the first key needs to be at X 6.125, Y 4.25. But which corner? Is it the corner of the KEY or the corner of the switch? I believe it's the corner of the key. That makes things awkward because the keys aren't in CAD, only the switch holes. Am I over complicating this? X is X right? It doesn't matter what the measurement is, the important thing is to use the same ratio.
Urgh. I can feel my brain fogging up. I'll have to sleep on it. Part of my brain knows how to do this but it's failing to communicate with my consciousness properly. Too many late nights/bad sleeps lately.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #20 on: Sun, 14 June 2015, 04:09:41 »
x is 19.5. That's not going to change. It doesn't matter which object I'm looking at.
19.5 by 19.5 is the space that a keycap and its switch sit in the center of.
I fiddled around with LibreCAD all day today. One of the features I want doesn't exist in this tool (at least according to the tutorials). I can't copy data from one layer of the diagram onto another. It might be possible to work around the limitation by making a block of the object and then adding that block to the new layer, but I'll abstain from that for now. Other free tools may solve the problem too (freecad?) but I haven't decided to try them yet.
Also I couldn't see how to import multiple dxf files into a single file as separate layers.

I tried another printout using what I thought would help me line up the thumb cluster perfectly, but it caused two different keys to rub instead. I was still working from KLE to Swill to CAD but I ended up redrawing the entire diagram in CAD. There is a way to script data entry (at least in some CADs), that might have been a better option, and it's something I'll look into if I need to adjust for the Kerf value later.
In the mean time, I knew that to do the above I'd need a very clean set of coordinates in terms of X measurement (that's X as in 19.5, not x as in the horizontal axis). This took me back to KLE and forcing it to draw each keyboard row as a complete staggered row, instead of treating the keyboard as 26 separate rows all with weird modifiers.

This is the raw code I started with:
More
[{x:2.25},"F2","F3","F4",{x:9},"F9","F10","F11"],
[{y:-0.75,x:5.5},"F5","F6",{x:4.5},"F7","F8"],
[{y:-0.5},"Esc",{x:0.25},"F1",{x:15},"F12",{x:0.25},"Print\n\n\n\n\n\nScreen"],
[{y:-0.5,x:3.5},"#\n3",{x:10.5},"*\n8"],
[{y:-0.75,x:2.5},"@\n2",{x:12.5},"(\n9"],
[{y:-0.75,x:4.5},"$\n4",{x:8.5},"&\n7"],
[{y:-0.75,x:5.5},"%\n5","^\n6",{x:4.5},"_\n-","^\n6"],
[{y:-0.75,w:1.5},"~\n`","!\n1",{x:1},"F\n\n\n\nUp",{x:10.5},"U\n8\n\n\nUp",{x:1},")\n0",{w:1.5},"+\n="],
[{y:-0.75,x:2.5},"W",{x:12.5},"Y\n9\n\n\nPgUp"],
[{y:-0.75,x:4.5},"P",{x:8.5},"L\n7\n\n\nHome"],
[{y:-0.75,x:5.5},"G",{h:1.5},"L+1",{x:4.5,h:1.5},"BkSpc","J"],
[{y:-0.75,w:1.5},"Tab","Q",{x:1},"S\n\n\n\nDn",{x:10.5},"E\n5\n\n\nDn",{x:1},":\n;",{w:1.5},"|\n\\"],
[{y:-0.75,x:2.5},"R\n\n\n\nLf",{x:12.5},"I\n6\n\n\nRt"],
[{y:-0.75,x:4.5},"T\n\n\n\nRt",{x:8.5},"N\n4\n\n\nLf"],
[{y:-0.75,x:5.5},"D",{x:6.5},"H\n0\n\n\nHome"],
[{y:-0.75,w:1.5},"Caps","A",{x:1},"C",{x:10.5},"<\n2\n\n\n\n\n,",{x:1},"O\n\n\n\nEnd",{w:1.5},"\"\n'"],
[{y:-0.75,x:2.5},"X",{x:3,h:1.5},"Enter",{x:4.5,h:1.5},"Del",{x:3},">\n3\n\n\nPgDn\n\n."],
[{y:-0.75,x:4.5},"V",{x:8.5},"M\n1\n\n\nEnd"],
[{y:-0.75,x:5.5},"B",{x:6.5},"K"],
[{y:-0.75,w:1.5},"L Shift","Z",{x:1},"L Alt",{x:10.5},"R Alt",{x:1},"?\n/",{w:1.5},"R Shift"],
[{y:-0.75,x:2.5},"\nFn 2",{x:12.5},"Menu"],
[{y:-0.75,x:4.5},"\nFn",{x:8.5},"\nFn"],
[{y:-0.5,w:1.5},"L Ctrl","Win",{x:14.5},"Win",{w:1.5},"R Ctrl"],
[{r:30,rx:6.125,ry:4.25,y:1,x:1.75},"","Ctrl\n\n\n\n\n\nF4"],
[{x:0.75,h:2},"BSpc",{h:2},"Del","{\n["],
[{x:2.75},"}\n]"],
[{r:-30,rx:13.35,y:1,x:-3.75},"Alt\n\n\n\n\n\nF4","Scroll/n/n/n/n/n/nLock"],
[{x:-3.75},"Insert",{h:2},"Insert",{h:2},"Enter"],
[{x:-3.75},""]

I've now cleaned that up to fit in 6 rows +3 for thumbs:
More
[{y:0.75},"Esc",{x:0.25},"F1",{y:-0.75},"F2","F3","F4",{x:0.25,y:0.25},"F5","F6",{y:-0.25}],
[{y:1.25,w:1.5},"~\n`","!\n1",{y:-0.75},"@\n2",{y:-0.25},"#\n3",{y:0.5},"$\n4",{y:0.25},"%\n5","^\n6",{y:0.25}],
[{w:1.5},"Tab","Q",{y:-0.75},"W",{y:-0.25},"F\n\n\n\nUp",{y:0.5},"P",{y:0.25},"G",{h:1.5},"L+1",{y:0.25}],
[{w:1.5},"Caps","A",{y:-0.75},"R\n\n\n\nLf",{y:-0.25},"S\n\n\n\nDn",{y:0.5},"T\n\n\n\nRt",{y:0.25},"D",{h:1.5,y:0.5},"Enter",{y:-0.25}],
[{w:1.5},"L Shift","Z",{y:-0.75},"X",{y:-0.25},"C",{y:0.5},"V",{y:0.25},"B",{y:0.25}],
[{w:1.5},"L Ctrl","Win",{y:-0.75},"\nFn 2",{y:-0.25},"L Alt",{y:0.5},"\nFn",{y:0.25}],
[{r:30,rx:7.125,ry:6},"","Ctrl\n\n\n\n\n\nF4"],
[{x:-1,h:2},"BSpc",{h:2},"Del","{\n["],
[{x:1},"}\n]"]

And that might make more sense to readers without the key labels in it:
More
[{y:0.75},"",{x:0.25},"",{y:-0.75},"","","",{x:0.25,y:0.25},"","",{y:-0.25}],
[{y:1.25,w:1.5},"`","",{y:-0.75},"",{y:-0.25},"",{y:0.5},"",{y:0.25},"","",{y:0.25}],
[{w:1.5},"","",{y:-0.75},"",{y:-0.25},"",{y:0.5},"",{y:0.25},"",{h:1.5},"",{y:0.25}],
[{w:1.5},"","",{y:-0.75},"",{y:-0.25},"",{y:0.5},"",{y:0.25},"",{h:1.5,y:0.5},"",{y:-0.25}],
[{w:1.5},"","",{y:-0.75},"",{y:-0.25},"",{y:0.5},"",{y:0.25},"",{y:0.25}],
[{w:1.5},"","",{y:-0.75},"",{y:-0.25},"",{y:0.5},"",{y:0.25}],
[{r:30,rx:7.125,ry:6},"",""],
[{x:-1,h:2},"",{h:2},"",""],
[{x:1},""]

The reason that I put in that effort is that I could then take those 6+3 rows, chuck them into Excel and split them out into X and Y coordinates for each key. Trying to do that with 26 separate 'rows' was melting my brain. Also, in this process I've managed to fix the thumb clusters to only use rx and ry instead of also using x and y for placement of the 1st key. As far as I can tell, rx and ry are 'rotated block start point', which can be thought of as 'absolute point' rather than being relative to the previous row.

That gave me an idea. One of the things that makes the translation confusing is the 'next row' numbers are assumed automatically by KLE and I was having to put them back in manually in excel. If I use absolute references for each row, that won't be a problem. However, before I went down that path, I tested how they work in the builder. I chucked my simplified row code into Swill's tool and it came out in straight rows instead of being staggered. This might explain some odd behaviour I'd seen previously. I think his tool is only looking for x and y values at the start of the line, then ignoring all remaining changes - because it is expecting row stagger, not column stagger. I know he's rebuilding the tool at present, so hopefully that will be fixed/improved in time to others from having to repeat my manual efforts.

On the plus side, I no longer feel that I'm relying upon his tool to do the whole drawing task for me. I have at least some of the necessary skills now. That could come in handy later on down the line when I consider PCBs. In fact the only thing I'm uncomfortable with CADwise at this point is allowing for the kerf value.

The next point of confusion was that KLE uses Y upside down. Positive numbers move down the page and negative numbers go up. I therefore needed to flip the numbers around to save myself some confusion and to stick to the positive quadrant of the grid in CAD.

Here's the result:

The thumb keys fit now - Going to the trouble of drawing it all out in CAD meant that I could move the thumb section with the outlines of keys visible. Actually I used sqaures of 19.5 to do this bit, virtually the same thing anyway. Once I finished the drawing and fixed errors I printed and tested the key placement again. All good. In fact I could potentially bring the thumb keys another mm in, but I'll skip that for now. The flaw with this placement is that there doesn't appear to be enough material left in the triangular gap between certain keys to make the cut without it snapping the top layer during the cutting process. If I'm right I'll deliberately shift the cuts a bit and have that middle piece as something I can glue in after assembly. Otherwise there'll just be a hole there to catch dirt etc.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #21 on: Sat, 20 June 2015, 03:50:24 »
I'm some-what at a loss today. I'm not sure what I need to work on next. My switches and caps still haven't arrived, and I've received nothing from Mechanical Keyboards to indicate if they've been shipped or not. I just double-checked, the payment has definitely gone through. I've had issues in the past with international shipping, so I hope this is just a case of my order being held up in Australian customs. It's happened before, so fingers crossed. If my order doesn't turn up in the next business day or two I'll email them again, this time directly to their email address instead of using the 'contact us' form.

I've spent some time revising and checking my diagram for accuracy.
I did a couple of extra layers last weekend that I haven't shown off yet:

Wiring diagram (ugly isn't it? :P)


Riser plates to tilt the halves at 15 or 25 degrees.


I'm also looking again at plate thickness and screw options.
According to my notes, the ergodox I own consist of 5 plates. 2x 3mm and 3x 5mm. That adds up to 21 mm of plates once you stack them. Yet 20 mm screws hold them together. Something must be wrong with those measurements!
I'm not seeing where I've made any errors with measurements etc, so I'm going to give in and simply ask this time:
https://geekhack.org/index.php?topic=22780.3630

Measuring my existing ergodox indicates a total thickness of 16 mm, but I can't measure the plates themselves easily enough to work out their individual properties. It looks like
2, 3.5, 5, 3.5, 2 which would total 16mm. Calipers and an unassembled board would solve this... I have neither and I'm not willing to pull this apart right now.

I guess the total is more important right now than the individual layers.
If I can source M3x20 screws and screw caps (which is turning out to be way harder than it sounds...) then I should just work with 16 mm total and go from there.
I'm not yet using a PCB in my design so the switch plate should be 1.5 or 1.6 mm to ensure the switches clip in properly.
I'll work with 1.5 for the moment.
I want plenty of room for hand routing wires, so the middle layers need to be fairly thick, with thin outer layers.
Let's say Bottom = 1.5, wiring and component plates = 5, switch = 1.5, top = 1.5.
2x5+3x1.5 = 14.5
I know there's a bit of wiggle room in either direction with the screws and caps that I have on the Dox, so 14.5 may be okay, but could be a little bit too shallow.
Switching to 1.5 mm plates gives me 14.8.
Switching to 2mm for the top and bottom and 1.6 for the switch plate gives me 15.6.
I'll aim for that.

I found what appears to be a one-man one-machine laser cutting business in Perth. That should be ideal for my initial prototyping runs as he/they're not likely to over charge for a small batch. I've fired off an email asking a few questions. If I get favourable answers I'll be sending the diagrams and asking for a quote.

Another thing I tried today was cutting a nice 14mm hole in some scrap foamcore. This confirmed that the switches would wriggle too much if I tried to use that rather than acrylic sheets. Still, if I get unlucky with laser cutters, it's a partial solution as the other layers could easily be made from foamcore instead of acrylic. Thick card could theoretically serve as the switch plate. It's only a backup plan though.

I've also contacted hoggy, and started browsing his posts in search of knowledge regarding keyboard roll angle.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #22 on: Fri, 10 July 2015, 20:32:06 »
Fliberty-Gibbet!
My order from MK.com has finally arrived (the delay seems to have been MK losing my order!), but the key caps have row profiles! I swear I picked an option that wouldn't have that.
GRRRRRRRRRRRRRRRRRRRR.

It's not a total disaster, I can swap keys from my existing full board, but damn that's frustrating.

In other frustrating news, the laser cutter I mentioned in the last post only works on Thursdays and Fridays, and has stopped responding to my emails.

Those issues aside, I did make some progress while GH was down. I now have most of the components that I need. Though I'm still missing wire and plates.
I'll contact some more laser cutters today, and experiment some more with foamcore while I wait for responses. It'll be tedious cutting, but at least I can test the layout in foamcore, it won't matter if the keys wobble.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #23 on: Sat, 11 July 2015, 20:19:04 »
Wow. I seriously underestimated how useful making a prototype in foamcore was going to be. I decided to 'allow for the kerf of my knife' by cutting all of the switch holes too small. This seems to have eliminated the wobble problem to the point where I am now considering wiring this up without bothering with acrylic at all!
I also wildly overestimated how many 1.5X keys were in a standard 104 key board :P. This isn't a problem, and its given me some ideas of how to resolve my earlier problem with sourcing 1.5x key caps. Why not just use 1.25 x key caps in some spots? Sure, it will make the board look a bit ragged, but I don't mind that if it means key sets are easier to obtain.
I also stumbled across this interest check last night: https://geekhack.org/index.php?topic=72241.0 I had no idea that interest checks sometimes happened in vendor forums instead of the interest check forum! That's valuable information.

About 1 hour of cutting:


Stabbed myself many times on the pins while inserting these. I'll have to find a better way next time.


With mostly the right caps in place


Palm rest


The pins were being a problem because I couldn't just put it down anywhere without risk to the pins and to the surface I placed it on, so I cut another layer for where the wiring/pcb would go.


The layers are simply glued together with pva/white glue.

I then used the offcut to help ensure I had all the necessary caps for the other side, and to test out a theory re cap sizes.



Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Zustiur's Custom Keyboards ZusDox
« Reply #24 on: Sat, 11 July 2015, 22:06:45 »
Keep it up!  I don't have much to add besides encouragement, really I'm just replying so I'll see new replies  :thumb:
Jesus loves you.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #25 on: Mon, 13 July 2015, 05:35:31 »
I just had a moment of utter confusion. I was tying on my new board (which isn't wired up) just to experiment with the feel of it. Then, because I actually needed to do something on the computer I put my hands on the ErgoDox and wondered why the dox felt uncomfortable. WOW. That adjusted column stagger makes a huge difference. Every time that I drop my hands on the ZusDox the columns just feel right.

Sunday involved building the right hand in foamcore, then figuring out github basics (a task which was made way harder than it needed to be, thanks to a ridiculous bug in the version I downloaded ages ago. Then I had a look at the TMK firmware and decided I was well past the point of thinking coherently enough to deal with a new programming language.

Firmware and soldering are the next two major steps. I have to figure out how keyboard matrices are read, as I have a horrible feeling that I've got my logic upside down... This will affect how columns and rows need to be wired up.

Thanks for the encouragement VfDavid, it thrills me every time I see that someone other than myself has posted in this thread.

I'm in no fit state for learning C right now (work has been very draining lately), so I'm just amusing myself with Keyboard Layout Editor right now.

Even THIS is probably an improvement over your basic 104 keyboard.

Yuck.

Here's a pic of both hands of the ZusDox 1.0. Anyone guess what I made the palm rest out of?

Yes, that's right, I cut up the foam tray which the Ducky keycaps were supplied in. It feels a little dodgy under my right palm, but *shrug*. It'll do on a board made out of bleeping foamcore. hahah. I have some much nicer foam to use when I get a proper case.

Speaking of proper cases, I just remembered to check my email. One of the laser cutting companies has responded with very positive results. I've just sent them a copy of my drawing to base a quote on.

Of course, that leaves me in a slight quandary. Should I finish building the foamcore version, or wait until I've got acrylic? I'll see how things pan out, and try to focus on firmware while I get quotes etc.

Either way, the foamcore version has been extremely useful in identifying potential issues. With my limited supply of keycaps, there are a lot of unexpected gaps. Most of these were caused by the 1.5 X key issue. This has been compounded by my ignorance as I thought many keys on a regular board were 1.5 when in fact they're. 1.25. I should have checked!!

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Zustiur's Custom Keyboards ZusDox
« Reply #26 on: Mon, 13 July 2015, 21:30:04 »
I'm a little shocked I had never seen a tenkey in the middle of a board before.  Tilt it for use with the right hand, and that might actually be a good location.  Good to use . . . not so much for looking at!
Jesus loves you.

Offline VinnyCordeiro

  • Posts: 432
Re: Zustiur's Custom Keyboards ZusDox
« Reply #27 on: Mon, 13 July 2015, 21:46:07 »
matt3o made a very good tutorial about how to build your own firmware using TMK. If it seems too complicated, you can also use Soarer's firmware.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #28 on: Sun, 19 July 2015, 04:49:15 »
I'm a little shocked I had never seen a tenkey in the middle of a board before.  Tilt it for use with the right hand, and that might actually be a good location.  Good to use . . . not so much for looking at!
Hah, actually I envisioned it as being a flat bridge between two tilted 'halves'. In much the same way as Kurplop has a 'flat' section for the trackball between the halves of his board.

matt3o made a very good tutorial about how to build your own firmware using TMK. If it seems too complicated, you can also use Soarer's firmware.

Extremely helpful. See folks, this is why I love the GeekHack community. I was planning to just sit down and read the code over and over until it made sense, but now I don't have to.

Status Update
I was starting to wonder if I should forget hand wiring and go straight to PCB. Looking at the code has made it a very simple decision. This WILL be hand wired. I need to get more familiar with how to set up a matrix without trapping myself before I worry about PCBs and their permanently fixed traces. I have a feeling I'm going to be wiring and rewiring (at least in a diagram, if not in reality) many times before I'll have a satisfactory solution to a flippable PCB like the Ergodox. I'm beginning to see why the additional chip was required there.

I got quotes back from one of the laser cutters. When they initially said their minimum order quantity was $88 AUD, I began hoping that this would be a cheaper exercise than I had imagined. Then the first quote came back at $139.90 AUD. PER HAND. Ouch. It took me several minutes to spot that there was an error in the quote itself - they had the plate thicknesses wrong. A corrected quote still comes out to $113.34 AUD per hand. Not cheap, but still much more palatable than the original quote. I've mulled it over for a few days now and about 90% decided to skip acrylic for now. I plan to wire up the prototype on foamcore while I figure out some of the more troublesome parts of the design. That decision has been holding me up because I didn't want to wire it up and then have to unwire everything again to re-mount the switches into acrylic.

I'm still puzzling over how to join the halves and still keep track of the wires. I have some spare cat 5 ethernet cable lying around, That may well become my bridge. I'll cut a length off, strip about 2 inches of insulation off, then use the strands to connect to the teensy or rows as required. That'll give me 8 colour coded wires to work with, and I can easily use a second length of cat 5 to cover the fact I require more than 8 wires to go across.

The other thing keeping me from getting acrylic cut is I'm not sure how to mount the Teensy without having to break-out the USB header the same way that the ErgoDox does. I'm strongly against doing that because I found that to be the hardest part of building my 'Dox by far. Just stripping the cable back to get at the bare metal took hours. Eesh. Also, it seems like such an expensive waste to buy a whole cable just for the end and about an inch of 4 wires.

Speaking of the ErgoDox, there are two resistors on there, but I don't know what they're for. I'd better figure that out before I fry something. I have a feeling it was for LEDs, but I need to check.


With the prompting from VinnyCordeiro, I have now read matt3o's guide. It could use some improvement but it's still been very helpful.
The first stumbling block was:
Quote
Open Makefile file and check the following globals:
He doesn't say what to open the file with, and doesn't make any mention of a suitable program in his Development Environment section. I ended up downloading 'Programmer's Notepad'. That solved this issue.
I then had to read the columns and rows sections several times before it clicked. So glad I've had training both in progamming and computers in general. This would have been very confusing otherwise.
Oh, working through the code made me realize I'd drawn my wiring diagram with a wire going to D6, which is the pin that controls the LED on the teensy. Oops. Fixed. I'd also somehow labelled one of the pins C8. They're only numbered from 0-7, and I wrote 8 multiple times before I said "wait a minute, where did 8 come from?????"  Fixed...

I've now created my matrix and my layers and sorted out all the pins that each row and column is attached to. I'm not certain that I've got the layer switching keys right. I was expecting something more familiar to the 'push/pop' terminology that was used on MassDrop's site for the ergodox configurator. Not being able to load and test the firmware is becoming a problem now so that'll spur me on to get soldering.

That's enough hours for one day. I'll leave compiling to another day. Possible after wiring is done.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #29 on: Sat, 25 July 2015, 04:39:33 »
I was all set to start soldering my diodes today. Then I realized that I don't know which way they should go.
I couldn't find an explicit answer to my question, "Which way do the diodes need to go for Hasu's firmware?", but I did find enough threads and pictures all showing the same thing to make me comfortable. Also, firmware can be altered if I get things backwards.
So the answer I'll work with: Diodes run across the rows of the keyboard, with the cathodes on the right hand side. That is, there's effectively a line of wire running the length of the board, and the diode sits between the switch and this wire, preventing current from going into the switch.
I'm about 2/3 through soldering the left hand board (not counting the teensy, which looks scarey). Learned several lessons. Looks like I need to revise my plate design to allow more room for wires to travel under the bottom keys. A PCB wouldn't need the extra space of course...
It's much easier to solder the diodes onto the switch pins if you wrap one or more loops into the anode leg first, then slide it down over the pin. That way it holds itself more or less in place and gives the solder a circle to pool in not unlike the way it pools in a hole of PCB.
The wire strippers I bought rock. Definitely go for the trigger style, don't waste time with the ones that look like scissors.
I'm sure there has to be a better way of doing the column wires. I've been cutting a length of wire long enough to cover all the pins in a column, then carefully cutting lengths of the insulation and dragging them along the wires to line up the gaps with the pins. Then soldering the edge of the wire to the pin (Not easy). This looks like examples I've seen on GH and DT, but I'm still convinced there is an easier way.
I only bought 4 m of wire, thinking that was a lot more than I required. I'm going through it pretty fast! Probably should have bought more...

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #30 on: Sun, 26 July 2015, 05:18:10 »
Soldering is definitely something you get better at with practice.
I finished the columns on the left hand and done all the columns on the right hand in about the same time that it took me to do half of the left hand columns yesterday.
Yesterday the diodes took me most of the morning. Today they've taken only a couple of hours.
Doing the column wires first works much better for me than doing the diodes first. I now work as follows for a column:
1) cut short bits of wire for each of the connections (about 4 cm each, but each one is just an estimate)
2) strip ~9mm from both ends
3) using fingers, twist ends to 'braid' them
4) still using fingers create a hook in one end, making sure to work with whatever curve is in the wire currently so that they'll lie flat
5) place the hook over the 'top' pin, turn until it's almost but not quite pointing straight down to the next switch
6) using needle nose tweezers squeeze the hook until it completely circles and grips the pin
7) repeat until entire column has one wire on each pin
8 ) solder these 'top' connections in place
9) again using tweezers wrap the other end of wire around the next switch on top of the wire already on that pin.
10) solder these connections


For diodes, it's a similar process:
1) use scissors to cut between each leg on the red side of the paper
2) pull enough diodes out of the white side to do a row
3) put a loop into the white led side, cut off the excess
4) pull off the red tag
5) slide loop down over pin, double checking that you haven't messed up the rows
6) repeat until the row is in place
7) solder the diodes to their looped pins
8 ) using tweezers as an anchor point, bend each cathode leg towards the next cathode leg in the row. They won't all reach, but most will
9) tin each leg where the joins will happen
10) reheat the solder while holding one leg with tweezers, hold in place till the solder dries
11) use offcuts to join the legs that weren't long enough


Notes for future revision:
* I haven't had the same problem with the cut out shape on the right hand because when I was cutting it out I got lazy and cut a straight line from Ctrl across to the thumb section. This is SO MUCH EASIER.
* For some unknown reason in my wiring diagram (which I am sticking to carefully) the thumb sections have columns 0,1,2,4,5,6. This would have been easier with 1-6 instead. i.e. connect 3 but don't connect 0.
* 4m is enough wire to join up all the switches but not enough to then connect to the teensy.
* for the process of hand wiring, diodes on the columns and wires on the rows would work better/be easier

Two days well spent. (?) Note this is upside down, so the left hand is on the right.


I've checked with my cheapo multimeter and fixed one short. Couldn't find any more.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #31 on: Tue, 28 July 2015, 03:41:24 »
Yesterday's lessons:
1) Ethernet cable is NOT a substitute for hook up wire. The insulation on each wire is very thin. this makes it nigh impossible to strip, even with awesome wire strippers. Also because it is so thin, it melts very easily. I managed to fuse two wires together before I gave up and desoldered it from the teensy.
2) If you end up with a pin hole full of solder, it is possible to salvage the situation by heating with one hand and inserting a wire with the other (not easy, but possible!)
3) When installing wires in a teensy, it is best to work throught the pins in order (right to left in my case, being left handed), rather than to try to do them in order of your columns or rows
4) 100m of wire costs $15 AUD. I was too stubborn to buy multiple reels of 100m, so I'm now stuck with one colour. This will get confusing. It's funny when you compare it to how much I expect to spend otherwise, why does another $15 bother me so much? I guess it's the thought of having so much unused wire left afterwards.
5) Helping hands aren't just awesome, they make the impossible possible. If I find myself having to repeat the soldering of a teensy excercise, I may invest in a second set as the positioning of the two alligator clips is too wide for working on a teensy
6) Don't solder too late in the day (9 PM) as your coordination and concentration will both be impaired
7) Thinking about keyboards makes it hard to sleep/hard to get back to sleep if you wake up at 4 AM


I have joined the teensy up to the Left Hand. Every step of the way I've had a feeling that I've misunderstood how energising the rows and reading the columns works (or is it the other way around?). Now we put that to the test.
Step one, check for shorts... I don't even know where to begin because I've lost confidence in my knowledge of where the energy should go.
Step two, make sure I haven't fried the teensy. It still blinks. Seems good.
Step three, put the teensy where I want it to be and see if the light is visible. Yes, but not really. I'll have to cut/drill another hole in the foamcore to make it visible. Possibly at an angle.
Step four, compile the firmware... umm. Back to research!

Also, at this exact point, I have/had no idea if the code would even work with only one hand. I think it will, but I really don't understand well enough yet.

First thing I notice when re-reading Matt3o's guide? I misread the first instruction. That does not bode well.
Better check all the other instructions. Wait. Where has my matrix gone????
Somehow I got confused and saved several files in the wrong directory. Finding them didn't take long. Just look for the most recently updated files.
This is why we double check things before trying to run or compile new code.

Ok, I think all my files are good enough to compile now. Matt3o says 'Exit. Open the terminal'. Umm. 'The terminal'? I'm going to assume that's a linux term for command prompt. Indeed, going to the right directory and typing 'make' gives me a suitable message. Unfortunately 'make -f makefile' gives an error message:
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3)
A little research and test of 'make clean' suggests this is because I installed the make software in "Progam Files (x86)" (yes I typo'd when installing) and the tool doesn't like having brackets in the path.
Chucking "SHELL=C:/Windows/System32/cmd.exe" as the first line of makefile got past this problem.
I ran make clean and got a screen full of garbage I don't understand. Worryingly the first two lines were "The system cannot find the path specified."
I proceeded on the assumption that it couldn't find the files [to delete] because I'd not made them yet.
Sadly no.
Quote
D:\Programming\Shared Projects\tmk_keyboard\keyboard\ZusDox>make -f makefile
The system cannot find the path specified.
The system cannot find the path specified.
ECHO is off.
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

-f was unexpected at this time.
make: *** [sizebefore] Error 255

The comments Hasu has in the top of makefile don't list 'make -f makefile' as an option.

More research and fiddling.
My makefile still referred to keymap_common.c instead of keymap_zusdox.c, but that wasn't causing the issue. In fact there appears to be an IF statement to catch that very thing.
I get the same error when compiling someone else's code (hhkb), so I don't think this is actually an error with my edits.

I tried downloading MHV AVR but that gives me the same error.

Google is failing me and I haven't been able to locate the answer on GH either. I'm stuck!


Today's other lessons:
1) My wiring plan for the teensy was insane for hand wiring. I might actually be better off mounting the teensy upside down and pressing reset from underneath. Except then the LED would not ever be visible.
2) It's hard to concentrate and be productive when your feet are freezing. Comfort is important in any work situation.
3) Sometimes you have to stop trawling Google and just ask for help.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #32 on: Tue, 28 July 2015, 13:56:54 »
I use enameled Ψ 0.2 or 0.15 mm copper wire (some call it magnet wire). It is easy to use and you just burn through the insulation where soldering (no need to strip insulation). If you want to try this sometimes then there are few things to remember:
  • use thin wire (Ψ 0.2 mm at most) because the thicker the wire the harder it is to burn through insulation
  • add more solder to the tip when burning through insulation (the solder must surround the wire so that the heat is trasfered well from the iron to the wire
  • use higher iron temperature (≥ 400°C)

I played with ergodox firmware few years ago. At that time the firmware would not initialize I2C (and would not boot) if the left hand side was not connected. If this was not improved then one side will not work alone. Though, you can just comment out the I2C initialization for tests.

Make process should not be catching any exceptions. Looks like some problem with your installation.
GNU make know -f option (i.e. your command line looks ok), microsoft nmake knows /f option option instead. Though the firmware probably excepts GNU make.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #33 on: Tue, 28 July 2015, 23:09:49 »
At the suggestion of VinnyCordeiro, I installed cygwin and tried make from there (Note you only need to type 'make' if you're in the right directory. It looks for makefile by default).
New error! yay, that's helpful because it means I'm no longer having issues with the compiler itself. I won't paste it all but there was a lot of this:
keymap_zusdox.c:35: error: 'ESC' undeclared here (not in a function)
keymap_zusdox.c:35: error: 'F1' undeclared here (not in a function)
I fixed these first by checking keymap_zusdox.c and putting in a line that was missing 'KEYMAP_ANSI('

I was also getting 5 of these:
keymap_zusdox.c:22:76: error: macro "KEYMAP_ANSI" passed 90 arguments, but takes just 61
Which means exactly what it says, I've defined 90 keys, but told it to look for 61. It took me a while to figure thes out but it's because in keymap_zusdox.c I'm referring to keymap_ansi, but in keymap_common.h I was working in keymap, not keymap_ansi.
I removed the _ansi references from keymap_zusdox.c
Now it tells me I have 90 instead of 89, so I must have missed a key in my mapping somewhere. This is starting to make sense!
Yes, there was a key missing from my thumb row in the .h file

Next errors:
keymap_zusdox.c:12: error: 'KC_PSCN' undeclared here (not in a function)
keymap_zusdox.c:22: error: 'KC_TNRS' undeclared here (not in a function)
keymap_zusdox.c:32: error: 'KC_NNCK' undeclared here (not in a function)

TNRS is a typo, it should be TRNS short for transparent.
NNCK is also a typo, I meant to write NLCK for numlock
PSCN is a guess on my part, not a typo. I want printscreen, but what is it's 4 letter code? A quick check of docs\keycode.txt informed me that it was PSCR. Also straight forward to fix, except the error suggests it's on line 12, when in fact its on lines 6 and 36.

With those fixed, I ran make again and was surprised at how long it took. While not that long in reality (about a minute) I was expecting under 20 seconds (for no reason, just what I imagined).

New question. What happens if you have two teensies connected when you run teensy loader?
I decided not to find out.
Rack brain for where I left teensy loader.
Unplug ergodox
plug zusdox
press reset button, drag on .hex file... download error. Press download again, Download OK. Reboot teensy.
Wait patiently for USB drivers to install.

IT WORKS.
mostly.

Capslock doesn't work, but TAB, shift, escape and control do. I'll figure that out later. Also it's a bit hard to test F3 and F6 but they're low priority right now.

This means I can stop worrying about my understanding of the wiring. Huzzah!

Back to soldering!

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #34 on: Wed, 29 July 2015, 02:49:31 »
This message has been brought to you by the power of ZusDox!
F1 F2 F3 F4 F5 F11 print screen
`12345667890=
qwfpgjluy;\ and fn1
arstdhneio' and enter
Zxcvbkm,.?
control, win, fn0, alt, fn3, space, alt, app, win, control
backspace, delete, home, end, pg up, pg dn, insert, fn0, enter

All of those are working on the first full test. Not sure how to test the other F keys, but they're in rows and columns that are working so I'm pretty confident.
Scroll lock seemed to work once only. LED not showing. Caps not working. One column not responding but it only has 3 keys. I'll figure that out shortly. All in all I'm pretty chuffed right now :)
I clearly made an error in my defining of FN keys because they're not behaving the way I thought they would.
Also mouse keys work. I keep hitting wrong keys, it will take a while to adjust to the new column stagger but boy does it feel nice to have my fingers in their natural relaxed position be perfectly aligned to the home row. Not really noticing any issue with the wrong row profile on keys that had to move for the sake of colemak. I'm more noticing the relocation of esc from its position on my ergodox because I keep hitting right alt when I want a comma and my instinct is to hit escape next.

Once I iron out a couple of issues I'll take another look at the construction side of this prototype as there's a lot of exposed wire right now.

Pics coming soon.

[Edit]go to https://geekhack.org/index.php?topic=34670.msg641440#msg641440 and download the switch tester. Fkeys tested!
Still having problem with caps key and LED. Everything else fixed.
« Last Edit: Wed, 29 July 2015, 05:00:37 by Zustiur »

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #35 on: Wed, 29 July 2015, 23:05:58 »
Done. Everything is working. Capslock continued to be a problem until I finally diagnosed that it was a cold solder joint (i.e. not soldered properly) and re soldered it for the 2nd time. For a while I thought I had actually snapped the pin to the switch itself. Fortunately not.
The LED took me quite a while to figure out because I don't think that matt3o's example is correct. Here's what I ended up with:
Code: [Select]
#include <avr/io.h>
#include "stdint.h"
#include "led.h"

void led_set(uint8_t usb_led)
{
    if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
        // output low
        DDRD &= ~(1<<6);
PORTD |= (1<<6); //Switch LED On


    } else {
        // Hi-Z
        DDRD |= (1<<6);
        PORTD &= ~(1<<6); //Switch LED Off
    }
}

And here are the promised pictures.
The ugly underbelly:

My riser system for getting the 15 degree tenting.

The finished product.


Of course 'finished product' it a bit misleading. I still want to put some more cardboard or foamcore on the bottom to protect the wires and I still need to cut a slot to expose the reset button and LED, but in essence, it is a finished working design.

Time to start revising my designs. The first issue I should tackle is the risers aren't wide enough, so the whole board wants to shift under my hands. This isn't helped by the wires all pushing and getting in the way. Unfortunately I've used up all my foamcore, so any replacement will require a trip to the art supply shop. I really didn't expect or consider this problem when I designed the risers, so all in all, doing the first prototype in foamcore has been extremely helpful and saved me a lot of money on faulty designs!

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Zustiur's Custom Keyboards ZusDox
« Reply #36 on: Thu, 30 July 2015, 20:07:44 »
I know (first-hand) it makes things more complicated, but have you considered a curve?  Loosely cup your hands as if they were on a keyboard, and rotate them so your palms are facing each other and relax the hand a little.  Notice your fingertips describe something like an arc.  Look at the tips of the fingers on the smaller left hand in this picture I found on a Google search:



Obviously it's not required, but since you're doing something custom to suit yourself, maybe a little curvature in the tenting like on a Microsoft Natural keyboard is worth consideration?

See the 2nd and 3rd images down from the top:



$0.02
Jesus loves you.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #37 on: Fri, 31 July 2015, 03:07:41 »
If curving a plate at all then why no to go go all the way to a Kinesis or Maltron like plate?
I would say that the best advantage of flat plate is that one can put switches on a PCB.
But if one is using manual wiring and has an access to a Reprap then is quite cheap to get a curved plate.

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Zustiur's Custom Keyboards ZusDox
« Reply #38 on: Fri, 31 July 2015, 21:06:32 »
A curve on one axis can be done by bending a flat part.  A compound curve is . . . not as simple.  The troll on my shoulder says, "plus a single curve still looks like a keyboard whereas the Kinesis looks like a prop from Star Trek" but of course I would never say something like that! ;)

A PCB could for sure be used with a curved plate.  With as small a curve as on the Microsoft board, it might not even require very much fiddling to get the hole spacing right.  I think however that the time required to design a PCB with proper spacing for curves, would be less than the time required to hand wire a single board.  If making many boards, a curved PCB is definitely do-able, and a bunch of smaller PCBs would be easier to do than one big one.
Jesus loves you.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #39 on: Sat, 01 August 2015, 07:48:01 »
A PCB could for sure be used with a curved plate.
Yes, Kinesis does curve their PCB in both directions.
« Last Edit: Sat, 01 August 2015, 07:50:00 by vvp »

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #40 on: Sat, 01 August 2015, 08:15:52 »
Eesh, set the goal high why don't you?  :eek:
Curves aren't going to happen in the materials that I'm using/planning to use. Nor do I have access to a 3d printer. I'll bear it in mind however as a future possibility. I've never even looked into 3d printing. Hmm. No, not until I have a bigger house. Bad Zustiur No more space taking stuff!

In the mean time I think that the properly calibrated column staggering removes most if not quite all of the benefit of curvature. Hand wiring was always meant to be a stop gap thing. I'll get PCBs done eventually but I understand they're expensive and I needed to make sure I knew what I was doing first. Looking into PCB design is next task on my list while I spend time experiencing the prototype.

Speaking of which, some observations;
I made the wire between halves a bit too long and it doesn't retract in any way. I'll try to avoid that next time.
Raw foamcore edges squeak and squawk when the risers slide across the desk. Which it does all too often as it is really light and has no grip. I'm wondering about creating a flat base piece to prevent that and give it some more rigidity. Some sort of rubber feet or grippy pad would also be sensible.
I'm a long way from being used to the new column stagger and getting a lot of typos.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #41 on: Sat, 01 August 2015, 15:32:46 »
Sorry for being off topic. I just think that if curving the plate at all then it should be done the full way.
I did not want to indicate that you should change your plan with your current ergodox mod. But if you would want to change then it should be done right not half the way the MS "ergonomic" keyboards do.
I like people doing their own keyboards. Good job so far!

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #42 on: Sun, 02 August 2015, 00:41:05 »
Oh I appreciate the input and you really weren't off topic per se. Curvature isn't out-of-bounds, it's just ... premature. I'll probably start coveting curved boards in a year or two.

I fixed a minor issue today. The padding I put down for the palm rest on the left hand was not deep enough to cover the natural resting position of my hand, so I glued another strip of foam in place.
I'm getting really sick of the halves sliding around as I type. The sooner I find a solution to that the better.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #43 on: Sun, 02 August 2015, 03:21:24 »
I glued rubber pads on the bottom of my keyboard. That was enough for me.
If it is not enough you can consider using softer rubber and putting a glass plate below the keyboard, or even adding some weight to the keyboard to increase the friction.

The more radical options are sucking discs or velcro.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #44 on: Mon, 10 August 2015, 04:25:39 »
I finished my annual leave and went back to work today. Using an ergonomic keyboard felt like an instant improvement. However one of my fears has been realized - the KVM switch I use at work does not properly support this type of keyboard. Some background for those that have not used them before:
Keyboard-Video-Mouse (KVM) switches allow you to have one keyboard and one mouse and one monitor to connect to multiple machines (up to 4 in my case). They are typically one of two types. The first type has a dedicated box with buttons on it to let you switch to each machine. The second type (which is what I have) listens to the keyboard for a particular combination of keystrokes (in this case scroll-lock scroll-lock) to know when to switch between machines.
The way they handle that is to mark one of the USB plugs for specific use by keyboards. By plugging a regular keyboard into that port it will filter out the double scroll lock command and a number + enter key and send through any other keystroke that you type. Unfortunately, the only data that the switch will send through from that port is keystrokes. Anything that isn't a regular key (such as macros) won't get through. So when I plug the Zusdox into this port, windows doesn't even detect it. Drat.
The second port on this switch is what we call a 'passthrough' port, so anything will work in there exactly as if it was plugged into the computer directly. The ZusDox works just fine if I plug it into that port, but the switch won't detect the double scroll lock command from there. So to keep using it I'd need to keep a regular keyboard plugged into the switch as well as my ZusDox, which means I don't have a spare port for the mouse.

There are several solutions to this, but I'll need time to consider the options. I think the easiest option would be to buy a new KVM switch that has dedicated buttons rather than listening for a key combination. That should in theory have full passthrough on all ports.
The immediate option which I'd like to avoid is to have two keyboards on my desk, one purely for scroll-lock+1234+enter and the other being the ZusDox, then have a separate mouse dedicated to each computer. I'll probably do something like this in the short term but it's hardly ideal. Either way it's a lot of desk real-estate being wasted.
If anyone can suggest a way of handling multiple outputs from one keyboard (essentially putting the switch box INTO the keyboard), I'd like to hear it.

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #45 on: Mon, 10 August 2015, 06:41:58 »
I do not know about a keyboard with embedded KVM.
I use software KVM (synergy). Good enough for me.
I doubt that macro behaves differently than a sequence of regular keys. The only difference I expect is that macro keystrokes are very quick. My guess would be that your KVM is processing all keystrokes while searching for the NumLock NumLock <Number> Enter sequence and it is not quick enough to handle the quick keystroke sequence in a macro.
As for as windows not even detecting it. Is your firmware in N-KRO mode. Maybe just your KVM switch is not good enough to handle anything more advanced than a boot keyboard. If you are not using 6KRO, then try it first.
Looks to me that this should be most easy to fix in the firmware if you know C programming.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #46 on: Fri, 14 August 2015, 06:01:41 »
Alas software KVM will not do for a number of reasons. Primary reason being that the computers in question are on totally different networks.
I recall reading something about the TMK firmware not working under certain circumstances, if mouse keys were enabled. I have mouse keys in my firmware. It's possible that removing them will resolve the issue but I have not tried that yet.

I've now used the board in my workplace for a whole week. I've made a number of observations, several were totally unexpected. In my head I've been tweaking the design and also considering going back to square one and designing from scratch rather than using the ErgoDox as the starting point.

Observations:
* The ctrl key needs to move down 0.25-0.5 and/or be a taller key in order to more comfortably use it as a palm key the way I'm used to doing.
* The fact I'm still using qwerty caps on a colemak layout means I occasionally find the wrong home keys. I need to remove the nubs from F and J. I think this may also be contributing to my hitting the bottom row when I want comma as the key below it is a 'row 5' profile, making it far taller than the comma key.
* I need to make the nubs on T and N bigger/more tactile. I simply used a line of superglue with nothing attached. On my ErgoDox I actually glued down tiny pieces of plastic rod (from model making). Somewhere between these two would be best.
* I also placed dots of super glue on the other home row keys as I was having trouble with correctly orienting my other fingers. This works but to do it more consistently next time I'll 'paint' the glue on with a toothpick or something instead of simply using the tube to place the dots.
* Rather than sticking to the ErgoDox 1.5 key for `~ and '" and += keys, I'll make them standard 1x keys. This means I can use standard caps, and also make room to put _- into it's normal place next to +=
* The underscore key is a real problem. If using the number row for maths (eg Excel formula) it's annoying to reach where I have it now (inner most key, number row, right hand). It's even more annoying when I want to hyphenate in the middle of typing a sentence like - this or-this. I'm sure it will be even more aggravating next week when I'm working for a client where I frequently type things like this: SERVER_C_FOLDER 1 NAME_FOLDER 2 NAME_FOLDER 3 NAME. The relocation mentioned above may help, but I'm planning to also place it on the navigation layer on the comma key.
* When using mouse keys I keep hitting comma instead of down (e), yet when I'm using the same keys as navigation keys I don't do this. Continued use will hopefully train my brain not to associate mouse movements with keypad style arrow placement.
* Using mouse keys is rarely a good substitute. I really want that pointing stick now.
* Even if I build a PCB I plan to continue using through hole diodes as they're far easier to replace than SMDs. This was something I learned from the ErgoDox, but I only realized it today when I was smiling about how nothing has broken yet. It's so much easier to get a good connection when you have a lead. I'll leave SMDs to their intended place: pick-and-place machines
* Having column stagger for F# keys doesn't really achieve anything and continues to confuse me. I think I'll remove it entirely and go back to having that as a straight row
* The wire length I left between halves is WAY too long and is causing issues. Because of it, the ZusDox is as wide as a full 104 keyboard. Not helpful for mousing. It also is springy enough to resist being put into the inward angle I require to eliminate wrist discomfort from pronation/ulnar deviation
* The padding I used is not quite soft enough. I have an alternative (I forget its name) to try but I don't think that will be much softer. Also I've used the alternative in the past and found that it starts to irritate my skin if I use it constantly (month after month). I'll look for another option and also look into covering it with some sort of fabric
* The column stagger is great but I think that the pinky columns could move up about 0.1x
* My wiring was needlessly long and complex. This was caused by my not being sure of how it all works. I have a much better grasp of things now and could do better with shorter runs
* For use in my regular job tenting is detrimental! There are too many situations where I need to press keys on the left half while using a mouse (I use a left handed mouse at work). I'll see how it goes next week while working for the other client.
* My risers for tenting are also a problem due to basic postural ergonomic issues. That is: Desk height + keyboard thickness + risers - max chair height = too much of a gap between my legs and the keys. This results in raising my arms up past the comfy 90degrees and also means that I'm bending my wrists forward/down. If I can find one, I want to try a 'stable table'. I'm not sure if they exist elsewhere in the world. It's a cushion you put on your lap with a flat plastic surface on its top. They're intended for eating meals while watching TV. The keyboard would go on that and be stuck down somehow to ensure it doesn't move around.
* I'll have to bite the bullet at some stage and remap my fn modifiers. I chose not to on this build because I didn't want to be relearning that while also dealing with so many other changes. I simply use the navigation layer too frequently to have it on the key below x. It needs to be a more comfortable thumb position.
* 19.05 from key to key is more than you actually need. Between columns I think it's fine, but reducing the gap between rows may be beneficial.

I've been reading https://geekhack.org/index.php?topic=55099.0 (Extinct web pages about) extinct ergo keyboards and rereading https://geekhack.org/index.php?topic=62848.0 fixing the ergodox thumb section. These threads are filling my head with awesome alternatives. As a result I've finally done 'step 0' of designing an ergonomic keyboard: I've traced my hand and all the finger positions that I can comfortably reach without moving my wrist. I plan to use this as the starting point for a future version (possibly as early as version 2, but more likely 3). I suspect it won't look so much like the ErgoDox after that. I may need to come up with a new name.


p.s. can anyone please tell me the forum code for naming a hyperlink so that you don't see the path?

Offline vvp

  • Posts: 886
Re: Zustiur's Custom Keyboards ZusDox
« Reply #47 on: Fri, 14 August 2015, 08:50:53 »
Code: [Select]
[url=http://geekhack.org/]geekhack[/url]

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #48 on: Sat, 15 August 2015, 05:17:07 »
Thanks vvp. I'll try not to forget again.

I fiddled around with my hand diagram and key caps that I'd pulled from my Leopold 104 (which I've brought home from work now that the ZusDox 1 is at work). By my count, there are 33 positions I can tap without moving my wrist and without pulling my thumb under my hand (a movement I'm beginning to dislike). Multipling that by two hands should give 66 keys you can press without moving wrists or palms (for those of us who plant their palms down and type from finger movements primarily). 66 is a sizable number, but considerably fewer than the 90 keys of ZusDox 1.

It occurred to me late last night that I should spend some time getting acquainted with the masters of layering; the 40% board layouts. So I did some reading and some googling. I think it's a niche within a niche within a niche because I didn't find a lot, but what I did find was still useful. Particularly the fact that people will shift all symbols to a secondary layer, including comma and full stop/period. I hadn't considered things that drastic before. Someone mentioned LShift+RShift = caps. That sounds sensible. No mention of firmware was made though so I'm not sure how to achieve that.
After reviewing my existing layout and tweaking it with some of the discoveries from the last week I took what I learned into KLE and started playing with the JD40 preset. For ease of play I made all of the keys 1x by 1x and filled out the grid where necessary. This gave me 4 rows of 11. That's no good, we have two hands so an even number makes sense unless you're sharing keys in the center line, so I made it 4 rows of 12, giving me 48 keys to work with.

I set to work populating the keys with values using the different label positions to denote layers. The result was very complex and I hadn't put odd keys like Pause in. It was getting really confusing so I started again, this time with 16 rows, separated into groups of 4 to show 4 separate layers of 48 keys. It's the same design, but much easier on the eyes.

Lack of ergonomic shaping notwithstanding, I'd be really tempted to try using this layout. I can think of a few places and times where I'd be happy with a small board like this, but my regular job isn't one of them.

With my new-found knowledge and experience, it's time to reexamine my original goals (post 2)
Work Situation
I work for a number of clients in an 'IT Security Administrator' role. In other words, I spend most of my time making changes in Active Directory and some form of request handling system.
Client A - Under normal circumstances I spend 80-100% of my day working for this client
Client B - Usually an hour or so in the afternoon, but not always.
Client C - I work from a different desk for this one because they refuse to have their equipment on the same desks as our other clients. They apparently fear that cables will be plugged into the wrong network... The less said about my opinion of this client the better. Usually if I do anything for this client it's just an hour here and there. Periodically they get me to do project work which can take days, weeks or months. I'll be starting one of those multi-month projects tomorrow.
Clients D through G - I only work on these as backfill for someone else.
And of course there's our own internal network in addition to all of these. I don't "Do Work" here, but deal with internal email, HR stuff etc etc

Client A is on their own network. I access it from Machine A.
Client B is accessed via VPN from Machine B, and occasionally Machine D (a laptop). I only use the laptop if there's enough work to warrant keeping a VPN session live for an extended period. Normally I just VPN from Machine B and disconnect the VPN 5-10 minutes later. Look up the next job, connect, disconnect, repeat until there are no more tickets.
Client C as mentioned is on a different desk where I use Machine C. This desk is shared with other people who also help out on that client.
Client's D through G are accessed in the same manner as client B.

We'll ignore Client C and Machine C for now, there isn't really any special requirements from them other than needing easy access to the underscore key. If I'm there for short periods I can make do with QWERTY. If I'm there for extended periods I'll relocate Keyboard 1.

Keyboard 1 is/will be attached to a KVM switch that handles Machines A and B, as is my left handed Evoluent mouse.
Keyboard 2 is/will be attached to the docking station for Machine D (the laptop), as is my right handed Evoluent mouse.
Two mice, two keyboards, one desk, three computers 2-3 monitors depending on whether you count the laptop's own screen.

Monitor 1 is attached to Machines A and B via the same KVM device.
Monitor 2 is attached to Machines A and D via switching between digital and analog inputs.

The KVM has 4 outputs but cannot be used for Machine D as I need the screen NOT to switch when I'm typing there - the information I need to read is on Machine B, and I need to enter it on Machine D.

Confused yet?  :'(


Keyboard 1 - the daily driver
This keyboard gets over 90% of my daily use at work. I type a lot, but it's not consistent text/document typing. Nor is it programming nor any other task where you can really settle into typing and enjoy a high WPM. The majority of my work for 'Client A' involves typing a few words, a name or a few characters followed by tab/space/enter/mouse movements. 'Client B' is similar and D through G are pretty much unknowns as I only work there in specific situations which I cannot predict.

Requirements:
Ergonomics in the form of:
   • Split I'm losing faith in split boards due to the difficulty in keeping them in the right place. I'll persevere until I settle on a suitable angle, then I'll join them up somehow.
   • Column staggered more than the Ergodox Still true
   • Thumb Keys Still true
   • Colemak (i.e. programmable)  Still true
   • Mild tilt Make that really really mild
   • Palm rest Still true
Equivalent of tenkeyless/80% (I use too many Fkeys to go without dedicated ones) Still true
Programmable key layout with function layers Still true
Functions through a KVM switch which monitors keyboard input for 'scroll lock scroll lock' in order to switch between the 2 connected PCs Still true, and a current issue as it's not working yet
Scroll lock key (to interact with the KVM) Still true, and a current issue as it's not working

Wants:
Programmable/recordable macro keys ala Logitech G15 (A tool I used prior to going mechanical. It saved me 1000s of keystrokes over the years) I think I can safely demote this to 'nice to have'
Included mouse of some-sort (See discussion below)  This may need to become a requirement. If I can achieve it, greater tilt can be used. As the week progressed using the ZusDox 1 I wanted this more and more.
Non TRRS cable for the join (because so many people have had problems with them) Still true

Nice to Have:
LEDs for caps lock and scroll lock Still true

Do not want/care for:
Backlighting Still true
Numlock Still true
LCD display Still true
Separate halves that slide around (a problem I have with the ErgoDox) Still true. Becoming more annoying by the day.

Keyboard 2 - the supplemental
This keyboard is used to control a laptop while being at least vaguely ergonomic in regards to where I can put the keyboard. I think 'where' equals, on my lap, so thinness is desirable so that it will slide under my desk while on my lap. There is VERY little room, so that may be the first feature to ignore. I use this keyboard for less than 100 words on a typical day, so lack of keys such as Fkeys is a very minor thing.

Requirements:
Small Still true
Wireless Not necessarily a problem if it's small enough. I'm now thinking to make it really tiny like a 40%. If it's approximately that size and has a long enough cable I should be fine.
60%ish Still true, in that I need dedicated number keys for this one. 'Full' 60% may not be necessary though.
Good battery life Still true if wireless

Wants:
Thin Still true but unlikely without using other switch types.
Programmable/Colemak layout Still true
Dedicated arrows + menu key or built in mouse I no longer care about the arrow keys. I'm used to having a nav layer now. Mouse keys might be sufficient but a pointing stick is still desirable.

Nice to Have:
Mechanical Still true
No slippy bottom surface (I can fix this myself by gluing something to the bottom if I have to) Still true

On the topic of resting palms
Firstly, I think this is more about personal preference than anything. Secondly, I noticed a long time ago that I only lift my wrists when doing a large volume of typing. Documentation, long emails. Anything where I can write sentence after sentence without having to navigate or mouse etc. I think the need to raise wrists in that situation is driven by QWERTY's awful layout.

Offline Zustiur

  • Thread Starter
  • Posts: 235
Re: Zustiur's Custom Keyboards ZusDox
« Reply #49 on: Sun, 23 August 2015, 00:35:36 »
Here is my latest design for the daily driver:

Keen eyes will note:
* Space key in the numeric row for typing sequences of numbers (also provides a benefit that the right hand space key can now be space+fn like it's left hand partner as I still have a way of holding down space if required (yes, this actually came up at work once... while designing the first prototype!))
* No longer completely symmetric, so that I can use more of a standard key set
* One piece, not split
* Inspiration partly from Rose's eagle
* Two underscore keys for use in different situations (math vs STUPID_NAMING_STANDARD)

The angling is 12.5 degrees inward on both halves (so 25 if you measure them in regards to each other). The angled thumb keys are at 30 degrees from the finger keys, so 42.5 from 'true'. This feels right on paper (and was worked out by printing two halves and cutting bits of paper until it felt right), but only time will tell if it's truly the right angle for how I typically sit at work. I should also point out that I use space and Alt as thumb keys despite their orientation.

KiCAD continues to confuse me, so I haven't made any progress on that. Instead I've drawn this out in LibreCAD already (can't believe how much faster I am at that now), with one concession to the metric system. I'm using 19mm key spacing rather than 19.05 mm. It's just so much easier to work with! Wiring this up may prove interesting as the 5 keys in row 2 present issues unless I decide to use 8 rows instead of the 7 from my original design.

I've placed an order for the Carbon Set including 3 of the dvorak/colemak subset. That should resolve my key cap woes.
I've done an inventory of my switches: 32 white, 36 red, 5 blue + 104 that can be salvaged from my Leopold now that I no longer need it at work.
I'm keeping my eye on Zealio's (Gateron Purple) switches as they would bring me back on track with my original goal of using MX Clears.
I'm trying not to rush but I 'can't wait' until I can build V2 and take it to work so that I can bring V1 back home to replace my ergodox on my home PC. It's minimal staggering feels so wrong now!

For anyone curious, here's the 48% matrix layout I came up with last weekend:

While I would never build a keyboard that was in a matrix like this, the concepts behind this layout may make their way into the supplemental keyboard or into my home keyboard.