Date: Thu, 6 Jun 2024 19:07:59 +0200 From: Milan Obuch <freebsd-x11@dino.sk> To: freebsd-x11@freebsd.org Subject: USB HID touch screen problem Message-ID: <20240606190759.1d438f28@zeta.dino.sk>
next in thread | raw e-mail | index | archive | help
Hi, for some project I have system with touch screen, but I did not figure way to use it, yet. I did try webcamd for the task, but did not succeed. The device in question is ugen0.3: <DIALOGUE INC PenMount USB> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 <Probed by interface class> bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0040 idVendor = 0x14e1 idProduct = 0x6000 bcdDevice = 0xa4b4 iManufacturer = 0x0001 <DIALOGUE INC> iProduct = 0x0002 <PenMount USB> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001 I am able to see some data exchange using this command: usbhid-dump -i 0.3 -ea showing packets when I touch the screen like this... 000:003:000:DESCRIPTOR 1717690937.503899 05 01 09 02 A1 01 09 01 A1 00 09 00 15 00 25 01 95 06 75 01 81 01 05 09 19 01 29 03 15 00 25 01 95 02 75 01 81 02 05 01 09 30 09 31 15 00 26 FF 03 36 80 00 46 FF 7F 75 10 95 02 81 02 09 00 15 00 26 FF 00 75 08 95 05 B1 02 C0 C0 000:002:000:DESCRIPTOR 1717690937.506215 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01 95 08 75 01 81 02 95 01 75 08 81 01 05 08 19 01 29 03 95 03 75 01 91 02 95 05 75 01 91 01 95 06 75 08 15 00 26 E7 00 05 07 19 00 29 E7 81 00 C0 Starting dumping interrupt transfer stream with 1 minute timeout. LIBUSB_FUNCTION: libusb_submit_transfer enter LIBUSB_FUNCTION: libusb_submit_transfer leave 0 LIBUSB_FUNCTION: libusb_submit_transfer enter LIBUSB_FUNCTION: libusb_submit_transfer leave 0 LIBUSB_FUNCTION: libusb_handle_events_timeout_completed enter LIBUSB_FUNCTION: libusb10_handle_events_sub enter LIBUSB_FUNCTION: libusb_handle_events_timeout_completed exit LIBUSB_FUNCTION: libusb_handle_events_timeout_completed enter LIBUSB_FUNCTION: libusb10_handle_events_sub enter 000:003:000:STREAM 1717690944.234125 70 56 01 B0 01 LIBUSB_FUNCTION: libusb_submit_transfer enter LIBUSB_FUNCTION: libusb_submit_transfer leave 0 LIBUSB_FUNCTION: libusb_handle_events_timeout_completed exit LIBUSB_FUNCTION: libusb_handle_events_timeout_completed enter LIBUSB_FUNCTION: libusb10_handle_events_sub enter 000:003:000:STREAM 1717690944.246114 70 56 01 B0 01 ending with, when releasing touch, with LIBUSB_FUNCTION: libusb_submit_transfer enter LIBUSB_FUNCTION: libusb_submit_transfer leave 0 LIBUSB_FUNCTION: libusb_handle_events_timeout_completed exit LIBUSB_FUNCTION: libusb_handle_events_timeout_completed enter LIBUSB_FUNCTION: libusb10_handle_events_sub enter 000:003:000:STREAM 1717690944.352116 30 56 01 B0 01 So hardware-wise, it works, I see data being send in reaction to touches and moves on screen, but I'd like to transform those data packets into events to be fed into X. I tried uhidd, with command uhidd -dDvvv -km /dev/ugen0.3 (with some -d, -D, -v flags in combination) and I see some data in decoded (understandable) form, so there is still something missing. So, anybody knows the missing last (hopefully) step to get working touch screen in X? Regards, Milan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20240606190759.1d438f28>