Re: webcamd based touchscreen problem on Pi3

From: Bernd Walter <ticso_at_cicely7.cicely.de>
Date: Mon, 26 Mar 2018 01:11:28 +0200
On Mon, Mar 12, 2018 at 12:12:47PM +0100, Bernd Walter wrote:
> On Sat, Mar 10, 2018 at 01:03:39AM +0100, Bernd Walter wrote:
> > On Fri, Mar 09, 2018 at 02:25:39PM +0100, Bernd Walter wrote:
> > So the older 7" HDMI C Rev 1.1 with the non IPS panel won't even attach, but
> > it always needed some special binary support for Linux, no surprises here.
> > The newer Rev 2.1 with the IPS panel claims to be the same and work with
> > webcamd, at least I get data via /dev/input/event0, which looks reasonable
> > with evdev-dump.
> > That's an interesting starting point.
> 
> I've got a new model of the 10" HDMI B.
> It behaves differently.
> First of all - uep seems to take it, which it didn't for any of
> the previous displays I'd tested.
> I had to remove the driver from the loader.conf to have webcamd attach to it.
> webcamd attaches fine and it delivers touch events:
> [29]sa# evdev-dump /dev/input/event0
> /dev/input/event0  3041705595.425438 EV_ABS ABS_MT_TRACKING_ID 0x00000000
> /dev/input/event0  3041705595.425438 EV_ABS ABS_MT_POSITION_X 0x000001CF
> /dev/input/event0  3041705595.425438 EV_ABS ABS_MT_POSITION_Y 0x0000025E
> /dev/input/event0  3041705595.425438 EV_ABS ABS_MT_PRESSURE 0x00000005
> /dev/input/event0  3041705595.425438 EV_KEY BTN_TOUCH 0x00000001
> /dev/input/event0  3041705595.425438 EV_ABS ABS_X 0x000001CF
> /dev/input/event0  3041705595.425438 EV_ABS ABS_Y 0x0000025E
> /dev/input/event0  3041705595.425438 EV_ABS ABS_PRESSURE 0x00000005
> /dev/input/event0  3041705595.425438 EV_SYN SYN_REPORT 0x00000000
> 
> Whatever had been the cause for my previous problem, they obviously
> have fixed them in firmware.

Unfortunately I still have some problems.
[63]sa# evdev-dump /dev/input/event1
/dev/input/event1  3043946310.664423 EV_ABS ABS_MT_TRACKING_ID 0x0000003F
/dev/input/event1  3043946310.664423 EV_ABS ABS_MT_POSITION_X 0x000001C9
/dev/input/event1  3043946310.664423 EV_ABS ABS_MT_POSITION_Y 0x00000112
/dev/input/event1  3043946310.664423 EV_KEY BTN_TOUCH 0x00000001
/dev/input/event1  3043946310.664423 EV_ABS ABS_X 0x000001C9
/dev/input/event1  3043946310.664423 EV_ABS ABS_Y 0x00000112
/dev/input/event1  3043946310.664423 EV_SYN SYN_REPORT 0x00000000
/dev/input/event1  3043946310.784395 EV_ABS ABS_MT_TRACKING_ID 0xFFFFFFFF
/dev/input/event1  3043946310.784395 EV_KEY BTN_TOUCH 0x00000000
/dev/input/event1  3043946310.784395 EV_SYN SYN_REPORT 0x00000000




/dev/input/event1  3043946316.944324 EV_ABS ABS_MT_TRACKING_ID 0x00000040
/dev/input/event1  3043946316.944324 EV_ABS ABS_MT_POSITION_X 0x000001CE
/dev/input/event1  3043946316.944324 EV_ABS ABS_MT_POSITION_Y 0x000000FE
/dev/input/event1  3043946316.944324 EV_KEY BTN_TOUCH 0x00000001
/dev/input/event1  3043946316.944324 EV_ABS ABS_X 0x000001CE
/dev/input/event1  3043946316.944324 EV_ABS ABS_Y 0x000000FE
/dev/input/event1  3043946316.944324 EV_SYN SYN_REPORT 0x00000000
/dev/input/event1  3043946317.004303 EV_ABS ABS_MT_TRACKING_ID 0xFFFFFFFF
/dev/input/event1  3043946317.004303 EV_KEY BTN_TOUCH 0x00000000
/dev/input/event1  3043946317.004303 EV_SYN SYN_REPORT 0x00000000



/dev/input/event1  3043946319.744283 EV_ABS ABS_MT_TRACKING_ID 0x00000041
/dev/input/event1  3043946319.744283 EV_ABS ABS_MT_POSITION_X 0x0000020E
/dev/input/event1  3043946319.744283 EV_ABS ABS_MT_POSITION_Y 0x000000D8
/dev/input/event1  3043946319.744283 EV_KEY BTN_TOUCH 0x00000001
/dev/input/event1  3043946319.744283 EV_ABS ABS_X 0x0000020E
/dev/input/event1  3043946319.744283 EV_ABS ABS_Y 0x000000D8
/dev/input/event1  3043946319.744283 EV_SYN SYN_REPORT 0x00000000
/dev/input/event1  3043946319.864240 EV_ABS ABS_MT_TRACKING_ID 0xFFFFFFFF
/dev/input/event1  3043946319.864240 EV_KEY BTN_TOUCH 0x00000000
/dev/input/event1  3043946319.864240 EV_SYN SYN_REPORT 0x00000000



/dev/input/event1  3043946322.004229 EV_ABS ABS_MT_TRACKING_ID 0x00000042
/dev/input/event1  3043946322.004229 EV_ABS ABS_MT_POSITION_X 0x00000209
/dev/input/event1  3043946322.004229 EV_ABS ABS_MT_POSITION_Y 0x000000CD
/dev/input/event1  3043946322.004229 EV_KEY BTN_TOUCH 0x00000001
/dev/input/event1  3043946322.004229 EV_ABS ABS_X 0x00000209
/dev/input/event1  3043946322.004229 EV_ABS ABS_Y 0x000000CD
/dev/input/event1  3043946322.004229 EV_SYN SYN_REPORT 0x00000000




/dev/input/event1  3043946325.454187 EV_ABS ABS_MT_POSITION_X 0x0000016A
/dev/input/event1  3043946325.454187 EV_ABS ABS_MT_POSITION_Y 0x000000D2
/dev/input/event1  3043946325.454187 EV_ABS ABS_X 0x0000016A
/dev/input/event1  3043946325.454187 EV_ABS ABS_Y 0x000000D2
/dev/input/event1  3043946325.454187 EV_SYN SYN_REPORT 0x00000000
/dev/input/event1  3043946325.574174 EV_ABS ABS_MT_POSITION_X 0x0000016B
/dev/input/event1  3043946325.574174 EV_ABS ABS_X 0x0000016B
/dev/input/event1  3043946325.574174 EV_SYN SYN_REPORT 0x00000000

All 5 blocks are a single touch, which means finger on screen for a short
moment.
On the first 3 I get position data and BTN_TOUCH 1 as well as BTN_TOUCH 0.
But this is not consistent, sometime I get only a 1 and sometime only a 0.
In the 5th block I even got neither.
The timestamps on the first 3 cases mark it clearly when I removed the finger.
I got a 1 on touch-start and a 0 on touch-end.
On the 4th case I got a touch-start, but no touch-end.
In the 5th case I only got positon updates.
This is a 7" display - the 10" also delivers ABS_PRESSURE, but the problem
is the same that I don't consistently get the EV_KEY events.

-- 
B.Walter <bernd_at_bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
Received on Sun Mar 25 2018 - 21:20:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:15 UTC