Telxon PTC-1194 - Touchscreen Interface

NekoHako

Main

New Site

Tech

Software

id3tool

Telxon1194

xfpd

twiddled

SAIS-xf

Valid XHTML 1.0!

Valid CSS!

Hardware

The touchscreen is based around a serial controller interface.

The serial UART is a standard 16550A style interface, which the standard linux serial driver can communicate with. The correct configuration paramaters are:

IO Port 0x4220
IRQ 12
UART Type 16550A

You can use setserial to bind these settings to a serial port at runtime. However, you can NOT use a kernel with PS/2 Mouse support compiled in due to the IRQ 12 conflict.

Software

The Touchscreen Protocol, so far, doesn't match any other protocols I've been able to find - It does, however, bear a superficial resemblance to binary form of the Microtouch protocol. If somebody can identify this protocol as being somebody else's protocol, could they please contact me so I can put the details here, and further research the interface.

The touchscreen communicates using fixed serial parameters: 19200 baud, 8 bits data, 1 bit stop, no parity.

Every packet is 5 bytes long. The first byte of every packet can be identified by the presence of a sync-bit which is only set on the first byte of the packet.

The first byte also contains state flags for the digitiser, and for the 'buttons'.

Packet Format

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
(Binary) 1sc# ##rl 0xxx xxxx 0XXX XXXX 0yyy yyyy 0YYY YYYY
Bit Definition
# Unknown/Insignificant
s State Change Detection. This bit is set 1 to indicate that the contact state of the touchscreen has changed.
c Screen Contact. This bit is set 1 to indicate that the stylus is currently is contact with the screen.
l & r Left and Right mouse button (respectively). Only set when bits s and c are both 1. Due to design, these states are also mutually exclusive.
xxxxxxx Least Significant Byte (bottom 7 bits) of the X coordinate.
XXXXXXX Most Significant Byte (top 7 bits) of the X coordinate.
yyyyyyy Least Significant Byte (bottom 7 bits) of the Y coordinate.
YYYYYYY Most Significant Byte (top 7 bits) of the Y coordinate.