Braille2000: Keyboard Requirements

[Braille2000 logo] Keyboard requirements
To use any computer braille-entry program, including Braille2000, you will need a keyboard that responds to six-key input. Be alerted that many famous-brand computer systems are supplied with keyboards that are NOT suitable. Be especially careful when shopping for a laptop computer—not being able to use its built-in keyboard will be a real hassle.

How to shop for a keyboard
You should shop for a keyboard in person at a computer store in your community.  Take the KbdEval utility program with you, on a diskette or CD-ROM.  Run KbdEval from the diskette or CD-ROM (it leaves no trace on the computer) and then enter braille cells, particularly the full cell and the full chord (all six dot keys plus the spacebar).  Check the display to make sure that the dots and spacebar combinations you enter are being reported accurately.  Click here to download the KbdEval tool. 


How to tell if your keyboard is OK
If you do not have Braille2000 software on your computer, start up a simple word processing program such as "Wordpad". Put an empty document window on the screen, so that if you type on the keyboard the text shows on the screen. Then press the keys SDF JKL all at the same time and note what appears on the screen. A "good-for-braille" keyboard will generate six letters on the screen: sdfjkl but not necessarily in precisely that sequence. For each time you press all six keys at once, you should see six new letters appear on the screen, one each of s d f j k 1, in any order. If you get this behavior, your keyboard will be good for braille entry. A typical failing keyboard generates only three or four letters rather than all six. Such a keyboard will be OK for typing, but it is useless for braille entry.

If you already have Braille2000 software on your computer, start Braille2000, get a new workarea, and then try to enter a full cell (all dots). If your edition of Braille2000 supports both the braille view and the print view, click the "B" button to get the braille view before you enter braille cells.  If you can braille full cells time after time, your keyboard is just fine. If instead of a full cell you get a single cell with just a few dots, your keyboard is not acceptable for braille entry. If you get multiple cells, check to make sure your keyboard settings do not use the "Time-dependent operation" (click Adjust and then Keyboard to check on this).

Please feel free to contact Computer Application Specialties Company for assistance in evaluating the keyboard of a computer you are considering for use with Braille2000. You can reach us via the inquiry page.

How to solve your keyboard Problem
You are not alone if you unpack your lovely new PC and discover that its keyboard does not do well with six-key braille input. We estimate that more than half of the keyboards that come with name-brand computer systems today do not do well. See the background information below to learn how this is so, if you are interested.

There are three basic paths to a solution:
1. Arrange for your computer vendor to provide an alternative keyboard, one that conforms to the "original IBM PC specification". You will have to explain to the vendor what an "original IBM PC specification " keyboard is. Refer them to this web page and ask them for an "IBM PC down/up encoded keyboard with n-key rollover". This phrase concisely describes the original IBM PC keyboard characteristics.  Tell them you really need 6-key rollover for the keys SDFJKL.  They may have a keyboard that will be OK, even though it is not n-key rollover.
2. Visit second-hand computer stores and look for a compatible older keyboard—older models tend more to be built to the "original IBM PC specification".
3. Buy a new replacement keyboard. Computer and office supply stores sell keyboards. Today, most of the keyboards do not conform to the "original IBM PC specification" and are thus useless for braille entry, so be sure to test the keyboards before buying. There are some manufacturers still producing the kind of keyboard you want, but you have to hunt for them. Computer Application Specialties Company stocks affordable replacement keyboards that are guaranteed to handle six-key braille inputs.

When buying a replacement keyboard, be aware that there are three types of keyboards differentiated by the size and shape of the connector used to plug into the computer:
The PC/AT type of keyboard attaches with a large (about 5/8") round connector with 5 pins.
The PS/2 type of keyboard attaches with a small (about 5/16") round connector with 6 pins.
The USB type of keyboard attaches with a rectangular connector.

We know of no wireless keyboards on the market that are good for braille input.

Of these three types, the PC/AT and PS/2 types are electronically identical and differ only in the size of the connector. You can buy an adapter to convert one round plug type to the other. The USB type of keyboard is electronically different from the others. Although the USB type is the most modern, the PS/2 type still is commonly used on new computer systems.

If your keyboard problem is on your laptop computer, it is not economically feasible to replace the integral laptop keyboard. You can however attach an auxiliary keyboard (to most laptop models). Check the laptop specifications to determine what type of keyboard you can attach (usually either PS/2 or USB) and then acquire a keyboard of that type that also handles six-key braille inputs.

If you wish to use a "split" keyboard (the so-called ergonomic type), there is at least one model that has been shown to be good for braille inputs: the Microsoft Natural Ergonomic Keyboard 4000 V1.0, Microsoft part number X802610-001.

Technological Background Information
Prior to the IBM PC (early '80s), keyboards generated character codes when you pressed a key. For example, if you pressed the "A" key the code for "a" was generated. If you pressed that same key while holding down the "Shift" key, the generated code would be for "A" instead. The point is that the digital output of old keyboards was character codes and the effects of the shift key were handled inside the keyboard and caused different letter codes to be produced.

IBM changed the way keyboards behave by specifying that the IBM PC keyboard would be "down/up" encoded with all keys treated equally. On this type of keyboard, every key generates a digital "down" message when the key is pressed and a digital "up" message when the key is released. All the keys have assigned key-numbers. The operating system handles the keyboard messages and thereby knows the state (down or up) for every key. The IBM PC specification also provided that all keys would behave the same regardless of the current state of the keyboard. This means that if you have already pressed some combination of keys, any new key you press or release still generates the normal "down" and "up" messages. This ability to respond to newly-pressed keys regardless of how many keys are currently held down is called "n-key rollover".

In the IBM PC keyboard design, "Shift" and "Ctrl" and "Alt" and even "Caps Lock" are keys treated exactly the same way: when pressed, a "down" message is generated and when released, an "up" message is generated. The meaning of the key is determined only inside the operating system (DOS or Windows). The operating system knows which standard key-number is the "Shift" key and when you press "Shift" with "A", the operating system receives the two "down" messages in sequence and knows that the "A" is pressed while "Shift" is also down, and it then translates the key-number for the "A" key not to "a" but to "A". This design was necessary to support international keyboards in which the keytops would differ both in layout and in the symbols represented—one keyboard paradigm would thus handle all international usage with just different software in the operating system. A clever design, introduced in the early '80s with the advent of the IBM PC.

Given the "down/up" nature of the IBM PC keyboard, six-key braille entry is a snap: a program, such as Braille2000 merely has to listen to the "down" and "up" messages and to interpret clusters of "down" messages (for the key-numbers for the SDF JKL keys) as cells.

This original IBM PC specification behavior has been disrupted in the last ten years by non-IBM-standard keyboards with internal circuitry (a controller chip) that tracks only three or four key presses at a time, having merely 3-key rollover. This kind of internal keyboard logic simply cannot sense more than three or so keys pressed simultaneously. And because of that, when you press more keys, only three or four "down" messages (and later, three or four "up" messages) are sent out to the computer. Some of the keys are missed, and thus some of the braille dots are not there. The response of this kind of keyboard is fundamentally insufficient to encode the six-key input. This limitation is part of the internal logic of the keyboard and can be manifest on all types of keyboards, including the new USB keyboards.

The irony of the "new technology" is that it does not significantly reduce the cost of the keyboard. The original IBM PC keyboard design specification is not overly expensive. It is true that contact-type keyboards use a matrix of key switches and that to achieve n-key rollover those designs need an anti-ghost diode per switch.  Such diodes cost about 8 cents each (times 105 keys) plus some added manufacturing complexity. There are also non-contact keyboard types, using resistive or capacitive keys and hall-effect sensors. These designs can be n-key rollover capable without using diodes.

By the way the key switch matrix is laid out, diode-free contact-type designs can offer multi-key rollover for certain combinations of keys, provided that the controller chip is prepared to track more than 3 keys being "down".  The "good for braille" keyboards of today are mostly of this latter design: they are not true n-key rollover keyboards (because they lack anti-ghost features and do not track all possible patterns of key presses) but the controller is prepared to respond to multiple keys being "down" and the keys SDFJKL are distributed in the matrix so that ghosting is not a problem for combinations of those keys.  The effect is 6-key rollover for SDFJKL, a perfect response for six-key braille input. (The ideal keyboard also has the spacebar key on the matrix where it does not conflict with SDFJKL, thereby giving it 7-key rollover for SDFJKL and the spacebar.)

With USB keyboards, there is a new issue related to the buffering of the data stream and the burden of managing the USB protocol.  Some USB keyboards that can sense patterns of SDFJKL may still fail to be satisfactory because the multiple "down" and/or "up" messages that need to be sent out won't fit into the data buffer (data packet overflow) and are lost.  Or there may be times when the USB controller is busy with protocol and does not have time to sense all of the keys.  The result is a USB keyboard that works nicely for isolated cells (even SDFJKL pressed all at once) but which fails when there is a continuing stream of such cells, as when brailling rapidly.

It is most likely that the inferior keyboard designs come about from the ignorance of the importance of rollover—the inferior design is adequate for ordinary typing input and it is doubtful that manufacturers (in Malaysia, Singapore, and China) are aware of any software applications (such as Braille2000) that need multiple-key response, beyond three keys. And to make matters worse, the U.S. computer integrators (Dell, Compaq, Gateway, and others) do not specify IBM PC behavior on their OEM bids for keyboard production.  Regardless of the technical issues (per-key diodes vs. capacitive vs. hall-effect vs. buffer-length design factors), high volume production of n-key rollover keyboards would be affordable, as were the keyboards made for years by IBM for the original IBM PC.

Thus, some keyboard designs remain true to the original IBM PC standard (and are by that design great for braille entry) while others, though not with n-key rollover are quite satisfactory for six-key inputs, while the majority it seems, are not satisfactory at all. And only the original manufacturer knows whether a given keyboard model has a rollover characteristic that is good for braille. Such a specification is almost never published.  For the end user, only empirical testing will tell you for sure.