Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2018 01:28:06 +0200
From:      Bernd Walter <ticso@cicely7.cicely.de>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        Bernd Walter <ticso@cicely7.cicely.de>, freebsd-arm@freebsd.org, freebsd-current@freebsd.org, ticso@cicely.de
Subject:   Re: webcamd based touchscreen problem on Pi3
Message-ID:  <20180325232806.GB16646@cicely7.cicely.de>
In-Reply-To: <20180325231128.GA16646@cicely7.cicely.de>
References:  <20180308210805.GE86413@cicely7.cicely.de> <ef53e666-237f-bb96-efaa-d8b9e020488e@selasky.org> <20180309004433.GI86413@cicely7.cicely.de> <4765ef04-6fb1-f9dc-315d-c4419d6ba016@selasky.org> <20180309114025.GJ86413@cicely7.cicely.de> <e7edfe70-d289-da01-c253-01c27febca3b@selasky.org> <20180309132539.GL86413@cicely7.cicely.de> <20180310000336.GM86413@cicely7.cicely.de> <20180312111246.GA14138@cicely7.cicely.de> <20180325231128.GA16646@cicely7.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 26, 2018 at 01:11:28AM +0200, Bernd Walter wrote:
> 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.

I somehow suspect that the device is dropping data, when the driver isn't
retrieving it fast enough.
I can't say for sure however, because usbdump has more interupt packets than
there is events on the /dev/input , although X and Y coordinates come in the
same packet.
But I couldn't isolate the button packets yet.

-- 
B.Walter <bernd@bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180325232806.GB16646>