This is the BRLTTY driver for TSI braille displays, Version 2.74 April 2004 Author and maintainer: Stéphane Doyon E-Mail: s.doyon@videotron.ca This driver contains the code to support most of Telesensory Systems' braille displays. It is a part of the source code for BRLTTY. The information here pertains only to the support of the TSI displays. You must also read the documentation of the main module of BRLTTY. There is only a handful of BRLTTY users. If you are trying out my driver, please let me know! I am willing to help and I am open to suggestions. See the headers of brl.c for history notes. Supported braille displays ========================== Navigator 20 / 40 / 80 (latest firmware version only?) PowerBraille 40 / 65 / 80 Unsupported displays: Older firmware versions of the navigator models may not work. I have used older versions of this driver every day for over two years with a Navigator 40, so I can say that BRLTTY and this driver are pretty stable. Since version 2.0 of this driver, I have integrated support for PB80 displays. I have used a PowerBraille 80 for nearly a year now, and a PowerBraille 40 for a few months. I have had success reports from about 10 other people (most of them use a PowerBraille 40). Navigator 40 has not been tested since version 2.1 of this driver (I changed my Navigator 40 for a PowerBraille 40). Navigator 20 and 80 should work but has never been tested. I am currently trying to debug support for two emulators of the PowerBraille 40. - BAUM displays (Vario?): This display emulates a PowerBraille 40. However, it cannot operate at 19200baud as PowerBraille models can. The driver now detects this and falls back to 9600baud. I don't know much about BAUM display models. I have had two success reports but also one failure report. - mdv mb408s: This display also emulates a PowerBraille 40 and it too is capable of operating only at 9600baud. However it also has additional timing constraints. Please uncomment the FORCE_FULL_SEND_DELAY option in braille.h before compiling. This has been tested by only one person. However with both these emulators, there is another limitation: the key configurations are not the same as that of any TSI model and some key combinations for certain commands may be difficult or impossible to reproduce. Specific drivers need to be written for these models, and efforts are under way. Until then, the driver remains useful and at least partly functional even with this limitation. For impatients ============== If you really want to go ahead right now without further reading, well then go for it: no special configuration is really necessary. All you have to know is the key to bring up the help screen: - For navigator users: press the "cursor left" and "cursor right" keys together. - For PB40 users: press the first and the last cursor routing keys together (cursor routing keys 1 and 40). - For PB65/80 users: Press cursor routing keys 1 and 80 together, or press the two small square buttons on top and to the left of the display. Connecting the display =========================== Navigator users should connect their displays the same way as they do for use under DOS. PowerBraille users however might require additional instructions. This driver only supports the serial interface to the PowerBraille: you cannot use its parallel port. You will therefore need a serial cable to connect your PowerBraille to your computer. The cable must be "straight through" (not "null-modem"). Connect one end to one of the COM ports of your computer and the other to the DCE port (the 9-pin female connector) on the PowerBraille. Configuration of the driver =========================== The file braille.h contains some few parameters specific to this driver which you can modify, but you really don't have to. No adjustments are necessary: everything will be autodetected by the driver when you start BRLTTY. PowerBraille displays can operate at 19200 baud. If you don't trust your serial port to operate at that speed (for example, if you're using DOS), you can disable this feature with the HighBaud=no driver parameter, and crawl at 9600 baud. The HighBaud= driver parameter specifies whether or not the driver is permitted to use 19200 baud. It can be set to either yes (the default) or no. Note that if this parameter is set to no but the display has been configured to operate at 19200 baud then it won't be autodetected. The SetBaud= driver parameter specifies which baud is to be used. It can be set to 4800, 9600, or 19200. The default is to use 19200 baud if the display supports it or to use the baud at which the display was autodetected if it doesn't. You usually won't need to specify any of these driver parameters. A case where you would, though, is if you're using a PowerBraille on DOS because DOS doesn't support higher than 9600 baud. In this situation, you'll want to specify the HighBaud=no driver parameter. You'll still have a problem, though, if the PowerBraille is currently configured to use 19200 baud. If this is the case, first connect it to a system that does support 19200 baud and specify the SetBaud=9600 driver parameter. So, for example: on Linux: -B SetBaud=9600 on DOS: -B HighBaud=no Note that braille driver parameters can be specified either via the -B (uppercase) command line option or via the braille-parameters brltty.conf directive. The format is name=value. So, for example: on the command line: -B HighBaud=no in brltty.conf: braille-parameters HighBaud=no Initialization and reset ======================== When BRLTTY is started, it will call a function within this driver to detect and initialize a braille display. If none is connected, then the whole BRLTTY process will sleep until a braille display is connected and turned on. Immediatly, it will be detected, identified, initialized, and updated with a welcome message, and then with some text from the screen. It will then be ready for use. This means that your braille display need not be active when your machine boots (when BRLTTY starts up). Furthermore, you may also turn off your display at any time while BRLTTY is running, take it away for the day while your computer is still running, and connect it back later. After 2 or 3 seconds, BRLTTY will realize that the display is off or disconnected. It will then go back to waiting for you to connect it and turn it on, at which point it will reinitialize it. Key bindings ============ The online help describes the key bindings: for each available function, the display key or combination of keys that activates it is listed. For details on the functions themselves, see the documentation of the main module of BRLTTY. Here again is how to bring up the help screen: - For navigator users: press the "cursor left" and "cursor right" keys together. - For PB40 users: press the first and the last cursor routing keys together (cursor routing keys 1 and 40). - For PB65/80 users: Press cursor routing keys 1 and 80 together, or press the two small square buttons on top and to the left of the display. I am open to suggestions. If you don't like the help screen, if you find the names of the keys confusing, if you find an inconsistency or if you just don't like the bindings I have chosen, send me your comments. It is not very hard to change which keys trigger which function. I have tryed to come up with the best arrangement but you might have a better idea. If any of the keys mentioned in the help screen do not work or are somehow inconsistant, please let me know. In general the key bindings are the same for all the diplays, Navigator and PowerBraille models alike. The Navigator 80 and the PoewrBraille 40 simply have some added key bindings to take advantage of their routing keys. Furthermore, certain key combinations that can conviniently be pressed on the Navigator 20/40 cannot be entered on a PowerBraille since it does not have the cursor left/right keys and since it uses rockers instead of button pairs. But you do not have to worry, since the help screen that is provided will vary according to the model of the display that is detected. In fact, the first line of the help screen identifies the display model that was detected. If this is incorrect, then you're in trouble and you should contact me! I've tryed to keep key bindings similar to what is used under DOS, but there are several differences. Basic movement of the braille display is the same, but several bindings have been added for more elaborate functionalities. You also have those keys that are mapped to the keyboard arrow keys, but I did not think it was really relevant to have a key act as the RETURN key. Also the link/unlink button does not exactly work the same: the rightmost of the front middle buttons simply jumps to the cursor; it is not a toggle. The left button toggles the link/unlink (whether or not the braille display should follow the cursor if it moves), but unlinking the braille display from the cursor can be done without bringing the braille window back to the cursor beeforehand. Also note that there is no function to combine lines and wrap words... There is however a function to skip identical lines. For Navigator 20/40 users: You will find one interesting addition to cursor routing: now you do not only have a function that routes the cursor to the biginning of the display, you also have another function that brings it somewhere towards the end of the display. I find it quite useful. BRLTTY also supports a cut-and-paste functionality that can be triggered from the braille display. This has forced me to add a very strange twist to the interface. Users of braille displays with cursor routing keys normally will mark text to be cut/copied by using some combination of these routing keys. Since we don't have them, I've added a key binding that brings you into a special mode in which a "virtual" cursor appears. By moving that special cursor around you can mark up the start of the text to cut. As soon as this mark is made, you are returned to the normal mode of operation. You can then move to the end of the text to mark, reactivate the special cursor mode, and mark the end of the text. At that point the text will by copied in a buffer, and you'll be able to paste it wherever you want. Note that there also are two shortcut keys to do cut & paste: one combination states that the block of text to be copied starts at the beginning of the display and the other states that the block of text ends at the end of the braille display. Just experiment with it in an editor. you'll see it's great! Mail me if you're mixed up. For Navigator 80 / PowerBraile users: You will find that several key bindings use combinations of cursor routing keys. You may not be used to that. In particular the cut-and-paste functions, used to mark the start and the end of a block of text to be copied, uses combinations of three keys. One more thing so that you don't get confused: it is impossible to mark the beginning of a block of text to cut/copy in the last two cells of the braille display, and it is impossible to mark the end of a block in the first two cells. There is a function that allows movement of the braille window by only a few characters left or right: this usually suffices to get around this limitation. Again if you have suggestions as to what would be most convenient, do not hesitate to contact me. Credits ======= Thanks to Jason Fayre (I don't have his current address) for his patient help in getting PowerBraille 40 support working: he tested each version of the PowerBraile support until it worked. I myself did not have access to a PB40. We worked over E-mail. Thanks to Nicolas Pitre for extensive help writing the very first version of this driver. Initially, this code was derived from that of the driver for the Alva ABT40. Surprising how little they have in common now. ------------------------------------------------------------------------------- Well that's about it! Try it out and do let me know how it goes PLEASE! Hope this is of use to you!