2016 07 16 With the help of adafruit.com I have finally (14 years :-) made a Bluetooth Low Energy (BLE) Chordite, as follows. What Adafruit has done is hand us a BLE module as a black box which you communicate with by AT+ commands, in the style of an old-fashioned telephone modem, along with enough documentation to make sense of it. Pretty slick. Bordering on awesome. The state of my code is such that both keyboard and mouse mode work with my wife's macbook but so far only the keyboard works with my Android settop box. Probably some timing issue. The prototype fabrication instructions downloadable at chordite.com are still the best I have.



atmega32u4 datasheet:

Arduino setup info:

beta-quality source code:

2010 09 16 A new downloadable zip file is now available for the Teensy board.

2010 08 06 I've ported the Chordite code from the at90usbkey demo board to the Teensy board, which is much smaller, lighter and cheaper.  Combined with a lighter, easier mechanical design involving corrugated plastic signboard, it provides my best prototype yet.  I haven't yet generated complete instructions in a downloadable zip file but it's possible to figure it all out by reading one of the existing downloadable zips, looking at this, this and this and loading this executable hex file (right click it) into the Teensy board with the Teensy loader.  It uses port B on the Teensy board.  Since there's only one LED on the Teensy board, it lights for any modifier key (control, alt, shift, shift lock) and blinks when in mouse mode.

2010 02 24 I've added mass (well, 16MB) storage functionality to the USB Chordite code which runs on the $30 Atmel at90usbkey demo board. Atmel provides 3 separate firmware development demos for this board which make it into a keyboard, a mouse or a little flash drive. With some effort these can be combined into a USB compound device or even modified into a Chordite. So here without further ado is Chordite_3in1.hex (right click) which is (supposed to be) equivalent to the firmware in the downloadable kit except it appears to the host not only as mouse and keyboard but also as a flash drive. As always there are no guarantees, use at your own risk. Eventually I'll get around to publishing the 3-in-1 source analogous to the 2-function source which is in the downloadable kit. Party on.

2010 01 10 I've slightly improved the at90usbkey kit (that you can download from the download page of this site) by moving the chord input to port A and correcting a bug that kept turning off the mouse mode indicator LED.

2009 06 29 One year later I’ve finally updated and consolidated everything about the USB Chordite prototype into a single zipped kit you can download from the download page of this site.  Happy prototyping.

2008 06 30 I've posted a new version of the 3-mode firmware mentioned immediately below. chordite0051.hex corrects errors in the game-mode code that prevented certain simultaneous commands from working. The link in the entry below now points to the new code as well.

2008 05 10 I've posted a new 3-mode version of the executable firmware for the at90usbkey. chordite005.hex toggles between keyboard, mouse and game controller modes. Game controller mode so far is really just Quake II mode and you must change the key for fire weapon from the default Control to the letter h. The 8-key layout is, assuming a left-hand unit, index finger on the right side of the screen, distal above proximal,



where pressing T/R makes you translate instead of rotating: to jump up press Up+T/R. Up alone causes the view to rotate upward. Etc. The mode toggle chord is 00XX over 0XX0, i.e., inboard ring+both middle+outboard index. I'll post a new patch for the source code.

008 01 08 I've created a patch file which, when executed in some form of Unix, will convert Atmel demo source to the WinAVR/avr-gcc source of my USB implementation mentioned below. You must get the Atmel code from Atmel. I supply current instructions.

2008 01 03 I've finally produced a USB version based on Atmel's at90usbkey small, cheap development board ( 1.25x3.5 inches, <$40 @ DigiKey). It is described in the Yahoo newsgroup. A problem with the Yahoo group is you apparently must become a member to download files so I will try to keep a copy of the latest, greatest hex file here (right click) where anyone can have it without signing up for anything.

2007 01 15  This news page has been semi-abandoned in favor of the Yahoo news group.  If anything really big needs reporting I'll put it here but generally stuff goes there.

2005 12 17  I mentioned some time ago in the newsgroup that Atmel has declared obsolete the AT90S2313 chip I have been using and replaced it with the pin-compatible ATtiny2313.  I have tried the new chip with the code and circuitry in the downloadable zip file and it works fine --- I'm using it now.  However, the new chip has "fuse bits" which the old chip does not have and in order to set them properly (i. e., for the 4Mhz clock which the code expects) I ended up spending $80 on a new STK500 development board.  As discussed in the news group, there are cheaper ways to do this but I had trouble getting them to work so for at least a while if anybody needs a 'tiny chip programmed he can send it to me and I'll do the job with my STK500.

2005 11 25  It has been brought to my attention that at least some people running fully patched Windows XP can't view my little .avi movies with Windows Media Player (is that a problem or a benefit? :-)  WMP used to work on those files under NT & W98 but the required codec seems not to have survived to XP.  I'm not sure what to do short term except refer everyone to the much larger but otherwise equivalent .mov files sitting.mov and standing.mov

2005 02 26  Anyone who tried to download the new file mentioned in the last note got the old one instead because I screwed up the link. Sorry, please try again if you want the right-handed mouse version.

2005 02 13   There is a (barely) new downloadable zip file keyboard_2.2.zip. I added kbm06_rh, a right-hand version of the code and tidied up the manifest in readme.txt.  The mouse functionality introduces a handedness to the code because I want keys on the left (keyboard held knuckles up) to drive the cursor left, etc.  If the original code is used in a right-handed keyboard some people, including me, will perceive the assigned mouse chords as backward.  The basic keyboard code does not have this problem, only the mouse.  Another way to say all this is that I decided to assign different mouse chords for left and right handed units but I use the same keyboard chords for both.  Either code will work in either keyboard and there is (hopefully) no difference at all except in mouse mode.

2004 10 04  I've added the instructions for the improved prototype to the downloadable info kit thus transforming it to keyboard_2.1.zip which by itself now contains everything but nothing new since the last note.

2004 08 05  I've been working on an improved prototype.  It is more adjustable and rugged than its predecessors and a little less silly looking.  Eventually instructions for it will be included along with other improvements in a whole new downloadable .zip file but I want to make them available sooner than that in case anybody wants to get started using the existing download.  Also I want to weaken the click-through license so that you no longer have to explicitly agree that my patent applies, you only have to agree that I (John) think it does ;-).  Temporarily here is the new license from where you can click through to download the latest instructions.

2004 03 03  Slashdot draws our attention to a review of Gyration's latest gryroscopic mouse.  This would be very sweet integrated into a one-hand keyboard, eh?

2004 02 19  The new, consolidated downloadable kit for the keyboard+mouse is now in place.

2004 02 17  Bad movies of the keyboards in action.

2004 02 03  After eating some more of my own dog food, as they say, I've found and repaired some more errors in the keyboard+mouse code. The latest, greatest version is now here.  Both mouse and keyboard functions work through the USB/PS2 adapter as well at straight into the PS/2 ports under W98.  Both also work into the PS/2 ports under Debian 3.0r2 but for some reason the mouse (only) screws up through the adapter under Linux (only).  Probably a configuration problem.  But never mind that.  The new code is still very much preferable to the old code because the old code had some goofy errors I don't even want to talk about and didn't work right.  The links in the previous 2 notes also now point to the latest and greatest.  Again, you'll probably need the original downloadable kit to make sense of all this.  And again, if you don't want to play with the mouse you'll be fine with the old keyboard-only code that's in that kit.  Hopefully before too long I can tie this all together in a new kit but first I want to make a little movie.

2004 01 06  I've fixed a problem that my keyboard+mouse code had with a PS/2-to-USB (some say USB-to-PS/2) adapter with which I've been playing.  The adapter (a generic, brandless unit marked UC 451N ) sends an $F4 "enable reporting" command to the mouse once every second or so, probably just to generate the ACK to see if the unit is still plugged in.  Long story short the effect of this on my mouse emulation was to delete any keyboard modifier keys (shift, alt, control) which had been queued waiting for their target to be keyed in --- a nasty little bug.  Hopefully it's now repaired.  If you aren't using a PS/2-to-USB adapter there is no need to download the new code.  Also, of course, there is no need to download this code if you're using the keyboard-only kit without the mouse emulation.  Note the keyboard+mouse download link in the previous note also now points to the same, newest code.

2003 10 29  I've now got a version of the mouse+keyboard code that boots NT and W98 on my machine.  You can download it if you dare.  Eventually I'll have better instructions and so forth but why wait.  To make sense of this new code you'll probably need to have already downloaded the old code.  The keyboard function works just as before.

2003 09 25  Eventually I decided the most ergonomic mini-joystick might be none at all and now I'm working on new software that adds mouse (pointer) functionality via the existing keys.  I should have thought of this long ago.  The new code isn't quite ready for release.  It doesn't yet converse with the bios quite right at boot time but everything works OK when hot switched in after booting with a real mouse.  The keyboard+mouse prototype looks exactly like the keyboard-only units except its cable Y's to a second plug for the PS/2 mouse port.  In mouse mode the keys specify one of 8 directions.  When I get the boot dialog fixed I'll declare the code public domain and put it in a downloadable zip file along with the diagrams, instructions, etc.  Anyone who has already built a prototype can upgrade by just adding two pull-up resistors and the new plug.   After playing with it for a while I can report that mousing in this way is clunkier than using a real mouse on a mouse pad while seated at a desk but, IMHO, not any clunkier than using a Trackpoint in a laptop.  And of course you can do it standing, etc.

2003 08 15  More on mice: Varatouch (see the previous note) apparently has a tough, time consuming "certification" program.  The way I read their literature, they examine your gizmo, pass "quasi-objective" judgement on the ergonomics and performance and if they don't like what they see they refuse to sell you any joysticks!  I'm thinking you might find it hard to explain to your investors that you're not really in control of the product anymore ;-).   If so you might begin to think about using something like IBM's Trackpoint, the little pencil eraser that sits in the middle of some lap-top keyboards.  So far I haven't found any place you can get either the eraser (sensor) or the controller chip, the Phillips TPM754.  When I do I'll say something here.  Hopefully, they'll be treated as ordinary components you can buy and abuse at will.

2003 08 13  Here, surely, is the perfect mouse for a portable one-hander.  I shouldn't say mouse.  Varatouch Technology Inc. makes tiny joysticks out of "resistive rubber" (TM).  A little button bends a membrane which acts as variable resistors.  These can be connected to a/d's on the same microprocessor that effects the keyboard.  Varatouch supplies nifty code (firmware) that automatically adapts to wear, temperature differences, etc., so all you do is interface that with your keyboard program.  Fancy software makes for simple hardware.   The website says $150 gets you an evaluation kit and  $2500 gets you a development kit with some engineering help.  They've got routines for  "ZiLOG L99 (and more generally Z8 processors), Atmel AT89Cx051 (and more generally, 8051-compatible), Mitsubishi 740 family and the Samsung KS88C01xx family."

2003 07 30  Darcy J. Currey very kindly sent me photos of a one-hander he built from coat hangers and 5-minute epoxy.  He modified the code in my downloadable kit to implement the (qwerty) keyboard lights (num lock, cap lock, scroll lock) and has made his mods available in a zip file.  I like the way the wire frame looks but Darcy says it's difficult to form the wire precisely.  Out of curiosity, I Googled around a while looking for tools and found the "K&S Mini Wire Bender" which might (or might not) help if you choose to go that route.  There's also this if you can find a farmer to teach you how to use it :-)

2003 04 22  If your kingpin-style prototype turns out too heavy for all-day use, consider adding a webpad.

2003 03 02  Regarding the previous note, I have learned that (GNU/Linux) Gnome has an "applet" to change the keyboard (i.e., the key<-->character map).  You can choose as many as you want from a list of just about every keyboard (map) that ever existed anywhere in the world and then cycle between them with one click.  It's very nice although I still haven't found the inverted question mark in their version of us-international.  KDE probably has something similar.

2003 02 26  I was pondering how best to implement the accented vowels and non-english characters that are available on qwertys, like á,  ü and ¿ when I finally realized it's all in the host so all I needed to do was tell my PC to use the US-International keyboard (map).  This is simple  on MS Windows.  It's apparently simple on Linux too but I haven't tried it there yet.

2003 02 13  There is an alternative to making these keyboards adjustable --- custom build them for individual customers.  This might not be as impractical as it first seems.  I'd like to open a little store in a shopping mall, perhaps next door to an optometrist's, in which a customer could have his relaxed hand measured automatically.  Perhaps he would stick the hand into a box where cameras or lasers would scan it.  Then a computer would direct a small milling machine to carve a keyboard out of a block of plastic.  I think that, given a little time, even I could write the necessary software.  It seems to me the whole setup should fit on a table top and the customer could pick up his keyboard after an hour.  Maybe instead of a store by the optometrist's I'll just have a cart next to the popcorn lady's :-)

2003 02 05  Here are some more doodles, these meant to suggest how a salable unit might look if manufactured in a garage with very low capital investment.

2003 01 11  Here are some cartoons of how one might make one of these things adjustable enough to fit practically anyone.  I offer them not as serious designs but merely to argue that adjustability is not that big a deal.

2002 12 17  Yet another correction to the ever troublesome schematic diagram in the downloadable zip file (incorrect mini-din pin numbers). Thanks John Tokash.

2002 12 13  Today I finally added the power filter capacitor to the schematic diagram in the downloadable zip file. That's the only change, you don't really need to redownload.  The 1.5uf cap goes between +5 and ground.

2002 12 12  I'll be incommunicado 18 Dec --- 26 Dec.  If you're building a keyboard or even thinking about it you might want to sign yourself up to this freeby Yahoo group  [correction: no signup required --- I found where that turns off [correction: I had to turn it back on because of spambots]]  Some of the people building keyboards clearly know better answers than I do to some of the questions other builders are asking me.   Let me not be a bottle neck.

2002 12 08  I've belatedly become aware there are PS/2 to USB converters that (should) allow use of the prototypes (or any other PS/2 keyboard) with things like Macs and Palms that have only the USB port.  Google shows a lot of them.  Here, here, here and here are a few.  I haven't actually tried any of them.  Please let me know if you do.

2002 11 29  For the record, my personal typing speed has accidently crept up to 33 wpm on the one-hand prototype.   That's up from 27.6 last time I tested it and significantly faster than my 26.5 on the qwerty.  33 isn't what you would call blazing but perhaps it's not too shabby for something so portable.  It's probably faster than most people can manage using just their thumbs on one of those tiny qwertys you see on some pagers and palmtops.  And it's way easier.

2002 11 24  One of the big motivations for this sort of keyboard is freedom from postural restrictions.  There's no need to sit up straight, adjust your chair properly or any of that.  If you like you can lie belly up and stare at a screen on the ceiling.  However, I have noticed that my speed drops and my error rate climbs when I twist my wrist away from what I have been calling the handshake position meaning, when the forearm is horizontal, the index finger is above the little finger or, when standing with the arm hanging down at your side, the index finger forward (as you would grip a pistol).   I don't know whether this is to be expected by everyone.

2002 11 21  I expect every new webmaster gets fascinated by his/her/its access log.  I'm certainly no exception.  Traffic at chordite.com has settled down to about 45 visitors per day including 5 or 6 search-engine robots.  That's something like 1200 people per month.  Most arrive via a search engine or have followed a link from a news site.   Including the initial transient back when we were today's news, the total number of visitors is approaching 35,000 (240K hits).  About 2400 people have downloaded the prototyping kit.  Of course only some tiny fraction of those downloads will be actualized but kits have gone to most of the companies which,  IMHO, should be interested and to thousands of dial-up connections world wide.  Hopefully, some potential manufacturers are busy experimenting, forming opinions about the learning curve, etc.  

2002 10 06  Seppo Tiainen has informed me of his sites supporting "open standard" design of portable devices with chording keyboards.  Anyone can download his (GPL'd) code that lets a PIC microprocessor talk to the PS/2 port.  I mention this supposing it may benefit people who are considering modification of the (public domain) Atmel code in my prototyping kit to serve some purpose of their own.  They might find Seppo's PIC code a better starting point.

2002 09 17 If you modify the source code by expanding either scan code lookup table then you must change the statement ".org   124" in ps2_001.asm to the new 1st address after the tables.  If you expand the primary table you must also change the statement ".equ    table_start_2 = 108" to the new start point of the secondary table.

2002 09 10  Stéphane Doutriaux has sent me photos of the keyboard he built using the download kit --- AFAIK, the first ever not built by me.  He carved it from a block of wood.  It has all 8 keys.  

2002 09 03  Guido Schreuder wrote to inform me of an ERROR on the schematic diagram in the prototyping kit;  a spurious dot connects the PS/2 clock and data lines.  I guess I'll roll the correction into a version 1.1 kit, along with a (trivially) corrected bom and a reference to this news page.

2002 08 22  When the keyboard fits poorly the keys will seem difficult to work.  Here is a test for proper fit.  Hold the operating hand in the handshake position (index finger above pinky).  With all digits relaxed, you should feel light but solid contact with all four pads (top pad plus 3 palm pads) and the thumb brace at their proper contact points (as discussed in the download).  At the same time you should feel all the keys lightly touching the fingers at their proper points.  In other words all the contact points should conform to the relaxed hand.  

You should also be able to maximally straighten (extend) all your fingers and thumb without losing contact with any of the palm pads or the top brace.

2002 08 19  I should say somewhere else besides the source code that the chord interpretation algorithm used in the prototyping kit is NOT the one described in my patent, 6,429,854 but is instead the "one released" technique described by Bequaert et al. in US patent 4,042,777, working on debounced samples of course.  The Bequaert algorithm is just better.  It takes as the intended chord the one you were expressing just before your first key release.  In that way it is just like what we are all used to with the qwerty and you never have to think about this issue at all.  You just bang away naturally and it all works.  I only bring it up for the interested few.

2002 08 15  At this point over 25,000 people have visited chordite.com (191K hits) and more than 1,800 of them downloaded the prototyping kit.

2002 08 15 It could be lighter.   It's beginning to annoy me that my kingpin-style prototype is not smaller and as light as my previous models.  I think I'll build another one and remove the circuit board.  I'll use a long, 10-conductor ribbon cable from the switches to the remote pcb.  Hopefully 3 meters or so will not pick up too much noise.   Also I'm going to try lighter, smaller switches without rollers (probably @@).  Also I'll try to find a skinnier, lighter bolt for the kingpin.  Then I should be happy.

2002 08 15 Slots.  I notice I don't have any good pictures up of the slot-&-screw type of keydeck.  They do appear obscurely in the figures.  In figure 6 you can make out the little bolts perpendicular to the decks.  They pass through slots that follow the curve of the deck.  After cutting these slots (and after taking this picture) I glued small pieces of wood on the ends of the decks to close the slots and thus add strength.  It's hard to find bolts small enough to go through the mounting holes of the switches.  The motivation for the slot-&-screw approach is that it can be readjusted.  The disadvantage is that all that hardware is a lot heavier than glue.  

2002 08 15 Glue.   As has been pointed out to me by Chris Biggs regarding staking (immobilizing and reinforcing) the wires at the circuit board, "hot melt glue guns are the trick here. Quick, strong and non-conductive. Widely used in electronics. The guns are cheap as dirt these days, too; try a 'discount homewares' store or a craft store."

2002 08 13  Powweb disables the site indefinitely at 3:00am PST, after it's all over, for "bandwith abuse," just as I was thinking of sending them a congratulatory email for getting through the hit storm.  Back up by 9:30 after some discussion with "admin."

2002 08 12  NY Times article appears and we are promptly Slashdotted

2002 08 06  Patent issued, website up.