Geiger Code Chorded Keyboard

Reworking the Infogrip Bat Chorded Keyboard for key-press efficiency and Awesomeness!

Similar projects worth following
Creating a new chord-code to reduce keystrokes based on Huffman coding and reported key frequencies for English. Symbol frequencies from C/Python programming languages to create a more efficient coding keyboard. Also adding Cherry MX-Clear keys and LEDS for a tutorial mode.

Chording keyboards are not new. Douglas Englebart (inventor of the mouse) also created a chording keyboard called the "Keyset". It only used 5 keys (for the 5 fingers), so only 31 codes were available. By extending the keyset to use 2 more keys, that trigger "modes" or work like modifiers, many more combinations become available to the keyboard user. This was done by Infogrip with their "BAT" keyboard, but it seems as though their encoding was inefficient for English.

The original encoding for the Infogrip BAT requires users to use any given finger ~65% of the time. Using a simple algorithm derived from Huffman Coding, individual finger usage can be reduced to ~35% of the time. This gives my encoding a 30% edge over the original and should reduce finger strain over long periods of time.

I'm a fan of MX-Blue switches, but multiple MX-Blues being depressed at the same time all day would probably be pretty annoying for my work-mates. Therefore, I've picked up some MX-Clears to replace the originals (which I've heard are reds). I will probably do the "Ergo-Clear" modification -- which involves putting a weaker spring inside the MX-Clear.

Finally, the last phase of this project will be creating a "training mode" where LEDS embedded under the keys can be used to teach the user where all of the chords are.

  • 1 × Infogrip Bat Chorded Keyboard
  • 1 × Cherry MX-Clear Keyswitches
  • 1 × Teensy

  • Creating Pinouts for Teensy

    Big Boy Pete11/21/2014 at 19:27 0 comments

    Although the original hardware includes a PIC that is USB capable and has a serial programming breakout -- the original firmware is written in such a way that I think it will ultimately be easier to desolder the PIC and use the original pinout to create an interface for the teensy.

    This would be a cleaner hack if I were to use the PIC18fxxxx chip that is on board, but not as easy to write the software. Software ease is trumping chip reuse.

  • The Unit has Landed! (Got my InfoGrip Bat)

    Big Boy Pete11/17/2014 at 23:36 0 comments

    I haven't had time to dig deep into the layout of the circuitboard, but what I've seen so far is impressive.

    1. There's definitely an ICSP connector (in circuit serial programmer -- a PIC thing).

    2. There's a full sized PIC18F2450 on board -- which means I can either desolder it and replace it with screw headers to attach a teensy or reprogram the PIC.

    3. It APPEARS that there is hardware (capacitor circuit) debouncing for all of the switches.

    4. There are holes for the LEDs to go through. Not yet sure if they are connected to power or not --- but maybe I got lucky.

    Not Impressive:

    Cherry MX Red switches -- who likes those?

  • Geiger-Code for Alphabet + a few common keyboard commands.

    Big Boy Pete11/16/2014 at 21:14 0 comments

    // In "Standard" && Shifted input mode we can use the binary #s these translate to to quickly map. // The GeigerCode Reference 
    //     1     2     3     4     5A     5B     5C     Binary # (1s = 1, 2s = 2, 3s = 4, 4s = 8, 5B = 16 5A = 32, 5C = 64) 
    // A   X                                              1 
    // B   X     X                         X             19  
    // C   X                 X                            9 
    // D         X     X                                  6 
    // E               X                                  4 
    // F   X                 X             X             25 
    // G   X     X     X                                  7 
    // H               X     X                           12 
    // I   X     X                                        3 
    // J   X     X     X     X                           15 
    // K         X     X     X                           14 
    // L   X     X                                        5 
    // M               X                   X             20 
    // N                     X             X             24 
    // O         X                                        2 
    // P         X           X             X             26 
    // Q   X           X     X                           13  
    // R         X           X                           10 
    // S   X                               X             17 
    // T                     X                            8 
    // U         X                         X             18 
    // V               X     X             X             28 
    // W   X           X                   X             21 
    // X   X     X           X                           11 
    // Y         X     X                   X             22 
    // Z   X     X           X             X             27 
    // " "                                 X             16 
    //LF   X     X     X     X             X             31 
    //Bck        X     X     X             X             30 
    //Tab  X     X     X                   X             23  
    //DelX X           X     X             X             29

View all 3 project logs

Enjoy this project?



Patrick Tait wrote 08/18/2015 at 00:59 point

Kinda interesting how you optimized your key map.  I'm somewhat curios, as I (with no prior experience with chorded keyboards) built a key map with the opposite approach.  My layout is based more on using the stronger fingers for more common letters.  Have you been using this and have you noticed a balanced approach  is better?  And should I update my key map before muscle memory makes that nontrivial?

  Are you sure? yes | no

Big Boy Pete wrote 08/18/2015 at 11:33 point

Patric, I ultimately found that the chorded keyboard didn't have a huge place in my life.  It is very rare that you need keyboard and mouse at the same time.  I would definitely optimize strong fingers for common letters, but the idea of minimizing finger use appealed to me.

  Are you sure? yes | no

Patrick Tait wrote 08/18/2015 at 22:53 point

Fair enough, thanks

  Are you sure? yes | no

Paul_Beaudet wrote 11/17/2014 at 17:53 point
Intersting approach, I just guessed at my layout by the way it might be most easily remembered. Though I'll eventually be switching to motion based input vs. keyswitch, would enjoy seeing more details on this approach.

Currently I'm working alone, so pounding on the cherry blues with hallow case all day is acceptable! haha

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates