Results 1 to 4 of 4

Thread: What touchscreen driver use for Ruggedbook Tablet PC 800?

  1. #1
    izh1979 NNTP User

    Question 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. ;-)

    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. ;-)

    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.

  2. #2
    Join Date
    Jun 2008
    Location
    East of Podunk
    Posts
    32,932
    Blog Entries
    15

    Default Re: What touchscreen driver use for Ruggedbook Tablet PC 800?

    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. ;-)
    >
    > 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. ;-)
    >
    > 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/TouchK...inuxDriver.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


  3. #3

    Default Re: What touchscreen driver use for Ruggedbook Tablet PC 800?

    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

  4. #4
    Join Date
    Jun 2008
    Location
    Earth - Denmark
    Posts
    10,730

    Default Re: What touchscreen driver use for Ruggedbook Tablet PC 800?

    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

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •