What touchscreen driver use for Ruggedbook Tablet PC 800?

Hello!

I have Samwell Ruggedbook Tablet PC 800:
Samwell Group

It has 4-wire resistive touchscreen controlled by PIC16F819. Microcontroller
has 10-bit ADC and it seems to be connected to PS/2. (I have no idea what
is inside PIC’s ROM.) Under Windows device works well with Wacom Tablet PC
and PanJit TouchSet drivers (the later is not proprietary for this device).

Under Linux I can capture events from /dev/input/event2 device. So I
have written
simple program that dumps data in hexadecimal view.

Data from device comes in packets of 16 bytes long.
First 4 bytes are Unix time stamp, next 4 bytes are millionth’s of second
(from 0 to 999999). Both fields are stored in Intel’s byteorder.

Since first 8 bytes has the same meaning for all types of events, I
will omit them.
(I will number bytes since 9-th byte - 9-th will be refered as 0-th, etc)

I have seen 4 types of events: X-coordinate, Y-coordinate, unknown (reserved for
Z-coordinate or pressure?) and probably OnClick event.

Coordinates comes in group of 3 events, e.g.:

02 00 00 00 b0 00 00 00 (X = 0xb0)
02 00 01 00 ac ff ff ff (Y = 0xac)
00 00 00 00 00 00 00 00 (Unknown. Reserved for Z-coordinate or pressure?)

Having 0-th byte set to 02 denotes coordinate. 00 in 2-nd byte means
X-coordinate
and 01 means Y. Coordinate itself is stored in 4-th byte. It can be
from 0 to 255.
(In practice, from 15 to 237 - perhaps of screen borders).

Next three bytes can be 0x000000 or 0xffffff. Numbers are changes very quickly
but with some regularity. Perhaps it is the least significant bit of
coordinate.
I shift 4-th byte 1 bit left and add 1 right bit from 5-th byte to
compute coordinates.
So, I have 9-bit coordinates. The ADC in PIC16F819 is 10-bit, but I don’t have
any ideas where developers have lost one bit. :wink:

Also I have seen events like
01 00 12 01 01 00 00 00
or
01 00 12 01 00 00 00 00.

They have 0-th byte set to 01. It looks like OnClick event notification.
First event of that type comes in about of three groups of coordinate events
after touching screen with stylus. And until release you will see about 2-4
that events. 4-th byte can be 00 or 01 and always changes on next event.
So, if you read an event with 4-th byte set to 00, the next event will be
with 4-th byte set to 01 and vice verse. I don’t know what is the reason
to have OnClick event on a touchscreen - if coordinates changes then
the screen is touched. :wink:

Now is the main question. Is there a driver suitable for this protocol
or it should be written? Have you seen this protocol in another touchscreen
controllers already?

Thank you.

On Thu, 17 Jul 2008 08:26:04 GMT
izh1979 <izh1979@no-mx.forums.opensuse.org> wrote:

>
> Hello!
>
> I have Samwell Ruggedbook Tablet PC 800:
> ‘Samwell Group’ (http://www.ruggedbook.com.tw/product_view.asp?ID=50)
>
> It has 4-wire resistive touchscreen controlled by PIC16F819.
> Microcontroller
> has 10-bit ADC and it seems to be connected to PS/2. (I have no idea
> what
> is inside PIC’s ROM.) Under Windows device works well with Wacom
> Tablet PC
> and PanJit TouchSet drivers (the later is not proprietary for this
> device).
>
> Under Linux I can capture events from /dev/input/event2 device. So I
> have written
> simple program that dumps data in hexadecimal view.
>
> Data from device comes in packets of 16 bytes long.
> First 4 bytes are Unix time stamp, next 4 bytes are millionth’s of
> second
> (from 0 to 999999). Both fields are stored in Intel’s byteorder.
>
> Since first 8 bytes has the same meaning for all types of events, I
> will omit them.
> (I will number bytes since 9-th byte - 9-th will be refered as 0-th,
> etc)
>
> I have seen 4 types of events: X-coordinate, Y-coordinate, unknown
> (reserved for
> Z-coordinate or pressure?) and probably OnClick event.
>
> Coordinates comes in group of 3 events, e.g.:
>
> 02 00 00 00 b0 00 00 00 (X = 0xb0)
> 02 00 01 00 ac ff ff ff (Y = 0xac)
> 00 00 00 00 00 00 00 00 (Unknown. Reserved for Z-coordinate or
> pressure?)
>
> Having 0-th byte set to 02 denotes coordinate. 00 in 2-nd byte means
> X-coordinate
> and 01 means Y. Coordinate itself is stored in 4-th byte. It can be
> from 0 to 255.
> (In practice, from 15 to 237 - perhaps of screen borders).
>
> Next three bytes can be 0x000000 or 0xffffff. Numbers are changes very
> quickly
> but with some regularity. Perhaps it is the least significant bit of
> coordinate.
> I shift 4-th byte 1 bit left and add 1 right bit from 5-th byte to
> compute coordinates.
> So, I have 9-bit coordinates. The ADC in PIC16F819 is 10-bit, but I
> don’t have
> any ideas where developers have lost one bit. :wink:
>
> Also I have seen events like
> 01 00 12 01 01 00 00 00
> or
> 01 00 12 01 00 00 00 00.
>
> They have 0-th byte set to 01. It looks like OnClick event
> notification.
> First event of that type comes in about of three groups of coordinate
> events
> after touching screen with stylus. And until release you will see
> about 2-4
> that events. 4-th byte can be 00 or 01 and always changes on next
> event.
> So, if you read an event with 4-th byte set to 00, the next event will
> be
> with 4-th byte set to 01 and vice verse. I don’t know what is the
> reason
> to have OnClick event on a touchscreen - if coordinates changes then
> the screen is touched. :wink:
>
> Now is the main question. Is there a driver suitable for this protocol
> or it should be written? Have you seen this protocol in another
> touchscreen
> controllers already?
>
> Thank you.
>
>
Hi
Does dmesg command provide any information on the device? I have an
EETI USB device not sure if yours is similar, have a look here;

http://home.eeti.com.tw/web20/pdfs/SoftwareGuide02.pdf
http://home.eeti.com.tw/web20/TouchKitDriver/linuxDriver.htm


Cheers Malcolm °¿° (Linux Counter #276890)
SLED 10 SP2 i586 Kernel 2.6.16.60-0.23-default
up 16:17, 1 user, load average: 0.69, 1.10, 1.12
GPU GeForce Go 6600 TE/6200 TE Version: 173.14.09

I am looking forward to buy this touch screen tablet pc. Thanks for your information . if got nay problem using this devices I will surely concern you. Thanks.

touch screen tablet pc

On 06/03/2011 12:36 PM, pedror414 wrote:
>
> ‘touch screen tablet pc’ (http://www.vivotablet.com/)

i do not understand your question…you are going to buy a vivo tablet
and what??

what does it have to do with openSUSE?


dd CAVEAT: http://is.gd/bpoMD
[NNTP via openSUSE 11.4 [2.6.37.6-0.5] + KDE 4.6.0 + Thunderbird 3.1.10]
Dual booting with Sluggish Loser7 on Acer Aspire One D255