Filling the vacuum in high quality chording keyboards market.
The "final" version, with all keys' assignments.
ino - 21.07 kB - 04/29/2017 at 03:26
The button reminder for the keyboard top.
Portable Network Graphics (PNG) - 61.27 kB - 04/29/2017 at 03:25
Final wiring diagram. Note my $3 Arduino had defective pin 5, so I reassigned some lines around.
Portable Network Graphics (PNG) - 158.29 kB - 04/29/2017 at 01:57
Use 1/8 in tungsten single-flute end mill bit for cutting Plexiglass on CNC
Network Common Data Form (NetCDF) - 1.66 kB - 04/25/2017 at 09:54
Use 3 mm drill bit for drilling on CNC
Network Common Data Form (NetCDF) - 393.00 bytes - 04/25/2017 at 09:54
Used the long weekend to finalize the project.
Based on the Prototype 2 experience, the thumb board 3 had been moved 11 mm away from the finger boards and 2 mm higher. The finger boards 1 and 2 changed angles from 40 to 36 degrees. The CNC files are published.
And everything eventually comes together! Note two silicone mousepads used as hand rests.
I am comfortably reaching 25-30 WPM continuous, with up to 50 on a 1-minute test. This is a 50 % improvement over my standard QWERTY four-finger input. Most important, in many years of computer use I am typing totally touch-type, without looking down at the keys.
This is a brief explanation on how to learn chords. The method works for me.
The fingers are named PRMI-T-IMRP: Pinky,Ring,Middle,Index (Left) - Right Thumb - Index,Middle,Ring,Pinky (Right). Left thumb is holding Alt, Shift, Control. Right thumb is for Fun, Num, Shift.
To enter, for example, T, press _MI-_-___:
For G, press __I-_-IM__:
Z is infrequent letter, so it is assigned to P__-_-__P:
For people like me, who have trouble with pinky synchronization, two alternatives provisioned _MI-_-_R_ and _MI_-T-__P. The latter is convenient if a word starts with capital Z after a space.The "manipulation" chords are in the separate column on the charts. The example below is for PRINT SCREEN
("from left to right and top to bottom"):
DELETE button is P__-_-__, and BACKSPACE is __-_-__P.
There are dedicated chords for COPY (Control-C) and PASTE (Control-V):
PRM_-_-__ - grab selection with left hand (COPY)
___-_-_MRP - release with right hand (PASTE)
The double quote: "" is __MI-_-IM__. Just remember this nice fellow:
1. I started by learning the primary chords and punctuation for 40 minutes:
Real oiler lair,
Oil or ore are a lie.
Oral lier -- lira ear?
Ale or roe are a lire!
Earl or liar are a role;
Air rail oiler:
2. On the same day, added two-finger chords (1 hour):
life boats hail stone
tail bones orientals
frost line relations
obtainers refashion horntails
shift table sabotier
boar or fish
baronets foresail tables
insolate rats in holes
banisher liberates laborists
hotlines on the inflation
3. On the next day, added the rest of the chords, with 1-hour practice. By the day end the entry speed was at 10 WPM.
By that time, the table was not needed for the letters, although I kept it handy for characters like @#$&`\~|=^/*
This prototype keyboard was not difficult.
Pressing two keys simultaneously is comfortable; pressing three is OK, but four buttons at once is tiring. Personally I found both the BAT and the Microwriter (CyKey) layouts tiring in a long run. Some letters, such as P in CyKey, require almost 350 gram of force with the “MX clear” switches. ASETNIOP probably does not have this problem as the buttons are pressed on the screen, and there is no additional weight on your fingers.
At the end I decided to reassign keys U and D from the initial layout, but I've kept the four-finger combinations for backward compatibility.
The main difficulty were chords with the ring finger of the opposite hand. My version: since both ring and pinky share the same muscles, the brain has less capacity to handle them. After about two days with the new keyboard, all keys were remembered, although I still confuse sometimes I and O. Numbers, function keys, basic punctuation, including the parenthesis, were mastered. The print speed increased to about 10 words (50 characters) per minute.
Immediately, one problem was apparent. It turns out that for normal work on editing code you need "arrows" with a repeater. Moving and precise adjustment of the cursor to the place in the "one-touch-one-shift" mode is inconvenient.
I got the impression that the chord keyboard failures are closely related to the developers' desire to do everything exclusively with chords. Sometimes you can't do without the "classical" arrows!
The solution was to implement additional hardware. The keys were sold in sets of 20, and I had used only 14 for now.
Using the same technique as before, I added arrows as shown below. Simultaneously the boards were transferred from the chipboard to a Delrin sheet (the 1 meter square plate was bought at a TIP - in the other life it was a manicure salon advertisement.)
The board was cut on X-Carve
The current assignment is positively more convenient (at least as my preference goes) than the one-handed BAT keyboard or the Microwriter.
Retrospectively, selecting the MX Clear for Control, Alt, Shift, and Space was a mistake; a "clicky” MX Blue would feel better. But as is the keyboard does not look too bad.
Initially three boards were built: one for the thumbs and two for the fingers.
As the project is experimental, I decided to make separate components - with electrical connectors and M3 bolt holes. The pre-drilled "line" PCBs with 2.5 mm holes fit perfectly to the selected button size.
For each button, three PCB holes should be expanded, and one additional 1 mm hole drilled through the trace. The latter is tricky to do with the classic electric drill, so I've used a high-speed Dremel (wear eye protection!)
The PCB drawings are as following:
1. Left finger board
2. Right finger board (a mirror image of #1, but pins are different)
3. Thumb board
The schematics is as following (the standard approach for Arduino keyboards):
Note the diodes protecting from the false closures.
The operational mockup looked as below (the original mockup board was used for the base):
The basic requirement was to build a blind-typing chording keyboard for individual use. The proposed design should be for a desktop use (not a handheld) and should allow reasonably fast data entry for programming languages and common text entry. All function keys and their combinations with Alt, Control, Shift, Win should be supported. Additionally, the keyboard must support 2nd language entry with Cyrillic alphabet.
The basic conceptual design:
Here the fingers are recorded as PRMI-IMRP: Pinky, Ring, Middle, Index
A mockup was built, first with cardboard, then with chipboard. The latter served also for the initial prototype testing. The keycaps were held in place with two-sided scotch. For my rather short fingers, the optimal horizontal spacing seemed to be 30mm, the hand angle -- 40 degrees.
Decide if you need a stationary chorded keyboard. This piece is designed for those who work at the comfortable desk! If you look for a "wearable" chorder, there are other devices around. This design presumes full use of both hands, but may be modified for one-handed operation, similar to the BAT Personal or CyKey. You may even convert it into a cool gaming keyboard by adding SZXC under the left hand.
Assemble materials. If possible, try the mechanical switches to suit your hands. I used the Cherry MX Clear for all buttons. Perhaps, MX Blue would be better for Alt, Control, and Shift. Anyway, for the top boards you need "Tactile", and for the bottom "Clicky" or "Linear".
You will need suitable for electronics soldering iron, a Dremel machine and/or small electric drill, hacksaw with fine teeth, a coping saw, pliers, screw-driver, metal ruler and a scratcher, eye protection. CNC machine is optional.
For programming Arduino, the latest IDE from https://www.arduino.cc/en/Main/Software
Decide on the finger spacing and button sizes. The best way is to put real keycaps over a piece of carton, but if the keycaps are not available, cut "buttons" from thick packing plastic. The standard button size is 18x18 mm.
After finalizing the layout, cut the PCBs to size (round the size up to the PCB holes) I ended up with the finger spacing of 30 mm (center to center) and the board angle of 36 degrees (do not trust the photo!)
After cutting, measure the PCBs carefully. The hole spacing may is most likely not 2.5 mm, but 1/10 inch (2.54 mm). Over the PCB size, the length accumulates into an extra length.