The BrailleNote operates at 38,400 baud, with 8 bits per character, with
no parity, and with 1 stop bit.

Whenever a key, or combination of keys (chord), is pressed, two bytes are
sent to the computer. The first byte indicates which kind of key or chord
has been used, and the second byte indicates which keys have been pressed.
The byte sequence is sent once all of the keys have been released.

0X80: Any combination of dots 1 through 6. The second byte consists of bit
0 (0X01) for dot 1, bit 1 (0X02) for dot 2, bit 2 (0X04) for dot 3, bit 3
(0X08) for dot 4, bit 4 (0X10) for dot 5, and bit 5 (0X20) for dot 6.

0X81: Any combination of dots 1 through 6 in conjunction with the space
bar. The second byte is as defined for 0X80. The following dot
combinations are intercepted by the BrailleNote, and, therefore, aren't
seen by the computer: [15], [125], [135], [1235], [136], [1356], [235],
[123456\.

0X82: Any combination of dots 1 through 6 in conjunction with both the
space bar and the backspace key. The second byte is as defined for 0X80,
except that bit 6 (0X40) is also always set.

0X83: Any combination of dots 1 through 6 in conjunction with both the
space bar and the enter key. The second byte is as for 0X80. The following
dot combinations are intercepted by the BrailleNote, and, therefore,
aren't seen by the computer: [1], [4], [2], [5], [3], [6], [145], [125],
[234], [2345].

0X84: Any combination of the thumb keys. The second byte consists of bit 0
(0X01) for Previous, bit 1 (0X02) for Back, bit 2 (0X04) for Advance, and
bit 3 (0X08) for Next. Three- and four-key combinations don't work.

0X85: A cursor routing key. The second byte is 0X00 for the first
(leftmost) key, 0x01 for the second, etc. This sequence is sent when the
key is pressed, rather than when it is released, and is auto-repeated as
long as the key is held down.

If "<escape>?" is sent to it, then it responds with three bytes:

    1: 0X86
    2: The number of status cells.
    3: The number of text cells.

To refresh the braille cells: send "<escape>B", followed by one byte for
each status cell, followed by one byte for each text cell. Those status
and text bytes which match "<escape>" (0X1B) must be sent twice. 1-bits
represent raised dots, and 0-bits represent lowered dots.

    Bit  Hex  Dot
     0    01   1
     1    02   2
     2    04   3
     3    08   4
     4    10   5
     5    20   6
     6    40   7
     7    80   8

