Difference between revisions of "PACmate20 Braille Display"

From Hackstrich
(Adding a category.)
(IN endpoint is 02 not 82)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
==PACmate 20 Braille Display==
+
The Freedom Scientific [http://www.freedomscientific.com/fs_products/PACmate_20.asp PACmate 20] is a 20-cell braille display with two pushbuttons over each cell, and two 'whiz wheels' (mousewheel-type wheels) on either side of the braille area.  It connects to a PC or other device via USB, and can be attached to the [http://www.freedomscientific.com/fs_products/PACmate2.asp PACmate notetaker] to integrate them into one device.
The PACmate 20 is a 20-cell braille display with two pushbuttons over each cell, and two 'whiz wheels' (mousewheel-type wheels) on either side of the braille area.  It connects to a PC or other device via USB, and can be attached to the PACmate notetaker to integrate them into one device.
 
  
=== Notable Chips ===
+
== Notable Chips ==
 
{| border="1"
 
{| border="1"
 
!Chip
 
!Chip
Line 18: Line 17:
 
|TLC555
 
|TLC555
 
|Timer
 
|Timer
|Near large cap, may be part of the HV charge pump?
+
|Near large cap, small caps, and inductors.  May be part of the HV charge pump?
 
|}
 
|}
 +
 +
== USB Descriptors ==
 +
<pre>
 +
Configuration descriptor:
 +
Total length:          0020
 +
Number of Interfaces:  01
 +
Configuration value:    01
 +
Configuration string:  00
 +
Attributes:            80  [Device doesn't have own power, can't generate remote wakeups]
 +
Maximum power usage    FA  [500mA]
 +
 +
Interface descriptor:
 +
Interface number:      00
 +
Alternate:              00
 +
Endpoints:              02
 +
Class:                  FF  [Vendor Specific]
 +
Subclass:              00  [Ignored: Class FF]
 +
Protocol:              00  [Ignored: Class FF]
 +
Interface string:      00
 +
 +
Endpoint descriptor:
 +
Endpoint address:      01  [10000000: OUT endpoint 1]
 +
Attributes:            02  [01000000: Bulk]
 +
Maximum packet size:    0040 [64 bytes]
 +
Polling interval:      00  [Ignored: Not isochronous or interrupt type]
 +
 +
Endpoint descriptor:
 +
Endpoint address:      02  [10000010: IN endpoint 1]
 +
Attributes:            02  [01000000: Bulk]
 +
Maximum packet size:    0040 [64 bytes]
 +
Polling interval:      00  [Ignored: Not isochronous or interrupt type]
 +
</pre>
 +
 +
== Protocol ==
 +
Protocol documentation all taken using BRLTTY's FreedomScientific driver as a reference implementation.  Packets sent to the PACmate20 display all follow a standard format, detailed below.
 +
=== Packet Format ===
 +
<pre>
 +
byte type
 +
byte arg1
 +
byte arg2
 +
byte arg3
 +
byte payload[256]
 +
OR
 +
byte manufacturer[24]
 +
byte model[16]
 +
byte firmware_version[8]
 +
OR
 +
byte extended_keys[4]
 +
</pre>
 +
 +
=== C Structure ===
 +
<pre>
 +
typedef struct {
 +
  unsigned char type;
 +
  unsigned char arg1;
 +
  unsigned char arg2;
 +
  unsigned char arg3;
 +
} PacketHeader;
 +
 +
typedef struct {
 +
  PacketHeader header;
 +
  union {
 +
    unsigned char bytes[0X100];
 +
    struct {
 +
      char manufacturer[24];
 +
      char model[16];
 +
      char firmware[8];
 +
    } info;
 +
    struct {
 +
      unsigned char bytes[4];
 +
    } extkey;
 +
  } payload;
 +
} Packet;
 +
</pre>
 +
 +
== Images ==
 +
[[Image:PACmate20_Internal.png]]
  
 
[[Category:Products]]
 
[[Category:Products]]

Latest revision as of 19:01, 9 October 2011

The Freedom Scientific PACmate 20 is a 20-cell braille display with two pushbuttons over each cell, and two 'whiz wheels' (mousewheel-type wheels) on either side of the braille area. It connects to a PC or other device via USB, and can be attached to the PACmate notetaker to integrate them into one device.

Notable Chips

Chip Chip Function Use in Product
C8051F320 Microcontroller w/ USB Brains of the display, talks to the PC/device natively over USB.
LM358 Op-amp Don't know
TLC555 Timer Near large cap, small caps, and inductors. May be part of the HV charge pump?

USB Descriptors

Configuration descriptor:
Total length:           0020
Number of Interfaces:   01
Configuration value:    01
Configuration string:   00
Attributes:             80   [Device doesn't have own power, can't generate remote wakeups]
Maximum power usage     FA   [500mA]

Interface descriptor:
Interface number:       00
Alternate:              00
Endpoints:              02
Class:                  FF   [Vendor Specific]
Subclass:               00   [Ignored: Class FF]
Protocol:               00   [Ignored: Class FF]
Interface string:       00

Endpoint descriptor:
Endpoint address:       01   [10000000: OUT endpoint 1]
Attributes:             02   [01000000: Bulk]
Maximum packet size:    0040 [64 bytes]
Polling interval:       00   [Ignored: Not isochronous or interrupt type]

Endpoint descriptor:
Endpoint address:       02   [10000010: IN endpoint 1]
Attributes:             02   [01000000: Bulk]
Maximum packet size:    0040 [64 bytes]
Polling interval:       00   [Ignored: Not isochronous or interrupt type]

Protocol

Protocol documentation all taken using BRLTTY's FreedomScientific driver as a reference implementation. Packets sent to the PACmate20 display all follow a standard format, detailed below.

Packet Format

byte type
byte arg1
byte arg2
byte arg3
 byte payload[256]
 OR
 byte manufacturer[24]
 byte model[16]
 byte firmware_version[8]
 OR
 byte extended_keys[4]

C Structure

typedef struct {
  unsigned char type;
  unsigned char arg1;
  unsigned char arg2;
  unsigned char arg3;
} PacketHeader;

typedef struct {
  PacketHeader header;
  union {
    unsigned char bytes[0X100];
    struct {
      char manufacturer[24];
      char model[16];
      char firmware[8];
    } info;
    struct {
      unsigned char bytes[4];
    } extkey;
  } payload;
} Packet;

Images

PACmate20 Internal.png