Opened 8 years ago

Last modified 2 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 8 years ago.
Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.
Syslog.2.x2 (2.0 KB) - added by Bouncer 8 years ago.
Extract of debugging trace - when HIDProtocol::AddHandler() is called for tablet.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 8 years ago by mmlr

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.

Changed 8 years ago by Bouncer

Attachment: Syslog.x2 added

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

Changed 8 years ago by Bouncer

Attachment: Syslog.2.x2 added

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

comment:2 Changed 8 years ago by Bouncer

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 Changed 8 years ago by Bouncer

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 Changed 7 years ago by modeenf

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 Changed 7 years ago by modeenf

Keywords: touchscreen added

comment:6 Changed 10 months ago by cocobean

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.

Last edited 10 months ago by cocobean (previous) (diff)

comment:7 Changed 2 months ago by waddlesplash

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

component -> USB-HID (new)

Note: See TracTickets for help on using tickets.