Opened 9 years ago

Last modified 9 months ago

#7481 new bug

Haiku does not support "touchscreen" - on Eee Slate. (Asus Eee ep121).

Reported by: Bouncer Owned by: mmlr
Priority: normal Milestone: R1
Component: Drivers/Input/USB-HID Version: R1/alpha2
Keywords: touchscreen Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86

Description

I am attempting to get Haiku running on Asus's new ep121 computer. It is a tablet device - with a touchscreen replacing the conventional mouse.

Yes - Haiku does run on this machine. But as expected there are a number of problems. I am currently able to run Haiku on this machine by using external usb hid devices.

FIRST PROBLEM : Haiku is not working correctly with the touchscreen device.

The touchscreen device is an 'eGalax PCAP Multitouch' controller. A usb hid device. Haiku's usb hid driver recognizes it as a generic mouse.

Yes - Haiku does respond to a screen touch. But only to position the cursor to the extreme bottom-right corner of the screen.

So - the driver is working (sort of). But haiku is getting some bad input.

I have added debugging statements to the usb_hid driver - and I can clearly see the problem is one of absolute vs relative positioning coordinates.

The device issues 'mouse movement' co-ordinates in the range of 0-32367 for both the X and Y axis. Any touch, almost anywhere on the screen, will result in huge position values. So large in fact that they move the mouse pointer to the far bottom-right corner of the display.

I have also been able to verify that the positioning coordinates reported are in fact proportional to the screen position which was touched.

I am thinking about developing a patch for this myself. It would certainly be fun. But the Input Server is pretty complicated. I would appreciate some advice as to the best approach before I spend a lot of time on this.

Perhaps a 'touchscreen' driver - similar to the way 'touchpad' was set up for the ps/2 drivers ?

Attachments (2)

Syslog.x2 (2.0 KB ) - added by Bouncer 9 years ago.
Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.
Syslog.2.x2 (2.0 KB ) - added by Bouncer 9 years ago.
Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.

Download all attachments as: .zip

Change History (9)

comment:1 by mmlr, 9 years ago

See #7354 which is where tablet support is being developed. It should apply for your device as well. If it does we can close this report as duplicate, please test.

by Bouncer, 9 years ago

Attachment: Syslog.x2 added

Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.

by Bouncer, 9 years ago

Attachment: Syslog.2.x2 added

Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.

comment:2 by Bouncer, 9 years ago

I have applied the Patch as suggested. Sorry - But it is not working.

I am providing an attachment with an extract of the syslog files. (Ignore the second attachment - duplicate).

The logs show debugging statements of when the HIDProtocol::AddHandler() fcn is called. And - if it proceeds to the TabletDevice - so debugging statements from there as well.

The TabletDevice::AddHandler() fcn seems to get called for 3 different 'HIDReports'. The first two cause the addition of the Driver. The Third does not.

After what appears to be a successfull addition of a driver - no further USB activity is seen from the eGalax device.

I cannot find any evidence that any messages are being received for this device. Though I have attempted to put debugging statements in TabletDevide::Control() - nothing seems to call this fcn. Any further suggestions ?

comment:3 by Bouncer, 9 years ago

Correction - I went back and reviewed the patch from Ticket #7354. And noticed that I had only applied the 'usb_hid' patch and not the earlier 'tablet' patch. After a long struggle to get the 'tablet' to compile - (I needed to modify the 'HaikuImage' file in the Jam directory) - it finally works.

It does not work perfectly. But at least the screen pointer now tracks the movement of both mouse and finger. No pressure activity though - to simulate a button press though.

comment:4 by modeenf, 7 years ago

Ticket #7354 are not for that type of tablet. It's for thouse tablet where you have a pen and connect that to pc like a mouse.

comment:5 by modeenf, 7 years ago

Keywords: touchscreen added

comment:6 by cocobean, 17 months ago

hrev52017 reviewed. We can modify this ticket as an enhancement ticket. I'm tracking this device now through Asus: https://www.asus.com/Tablets/Eee_Slate_EP121

Tickets referenced: #7354 ('usb_hid' and 'tablet' patches)

Some parts of those patches were integrated as of: hrev46015 Can review current state further.

Version 1, edited 17 months ago by cocobean (previous) (next) (diff)

comment:7 by waddlesplash, 9 months ago

Component: Drivers/Mouse/USBDrivers/Input/USB-HID

component -> USB-HID (new)

Note: See TracTickets for help on using tickets.