Hi, I am looking to get driver support for Ilitek Multi-Touch drivers. These are capacitive touchscreen drivers from AliExpress (https://www.aliexpress.com/item/4001166217016.html) and similar retailers. These touch drivers usually come with two interfaces in their usb descriptor, one with multi-touch support and a "mouse" mode.
Under a linux host with evtest, the device works fine. I have been able to interface it with python succesfully. I am looking to use a feather RP2040 USB Host instead to talk to it. The test examples work, which is promising (see below for a printout of hid_device_report sketch). The issue is the device reports seems to only comes from a single interface, the one without multi-touch support.
examples/DualRole/hid/get_device_report.ino prints that both instance = 0 and instance = 1 are mounted. The HID report data though is only from the mouse mode. I believe that tinyusb is currently always mounting the "mouse mode" interface for the ILITEK Multi-Touch-V3000 device. I would like it to mount the multi-touch interface instead. See below for the device descriptor
In src/class/hid/hid_host.c i have tried to modify hidh_open() by adding this line at the start of the function, which will skip mounting if bInterfaceNumber == 1. This causes the microcontroller to mount/unmount the device continuously in a loop.
if(desc_itf->bInterfaceNumber == 1) {return true;}
I am not experienced enough to write my own driver for this device, I think a new CFG_TUH_XX definition under usbc.c needs to be made for this type of device (which is technically HID). Any help for adding support for this device to tinyusb is much appreciated. I also own 3 of these devices for testing.
Output of lsusb on a Linux host:
└─$ sudo lsusb
Bus 001 Device 027: ID 222a:0001 ILI Technology Corp. Multi-Touch Screen
Hi, I am looking to get driver support for Ilitek Multi-Touch drivers. These are capacitive touchscreen drivers from AliExpress (https://www.aliexpress.com/item/4001166217016.html) and similar retailers. These touch drivers usually come with two interfaces in their usb descriptor, one with multi-touch support and a "mouse" mode. Under a linux host with evtest, the device works fine. I have been able to interface it with python succesfully. I am looking to use a feather RP2040 USB Host instead to talk to it. The test examples work, which is promising (see below for a printout of hid_device_report sketch). The issue is the device reports seems to only comes from a single interface, the one without multi-touch support.
examples/DualRole/hid/get_device_report.ino
prints that bothinstance = 0
andinstance = 1
are mounted. The HID report data though is only from the mouse mode. I believe that tinyusb is currently always mounting the "mouse mode" interface for the ILITEK Multi-Touch-V3000 device. I would like it to mount the multi-touch interface instead. See below for the device descriptorIn
src/class/hid/hid_host.c
i have tried to modifyhidh_open()
by adding this line at the start of the function, which will skip mounting ifbInterfaceNumber == 1
. This causes the microcontroller to mount/unmount the device continuously in a loop.if(desc_itf->bInterfaceNumber == 1) {return true;}
I am not experienced enough to write my own driver for this device, I think a newCFG_TUH_XX
definition underusbc.c
needs to be made for this type of device (which is technically HID). Any help for adding support for this device to tinyusb is much appreciated. I also own 3 of these devices for testing.Output of lsusb on a Linux host:
Output of evtest (under Linux):
Output of
examples/DualRole/Simple/device_info/device_info.ino
:Output of
examples/DualRole/HID/hid_device_report/hid_device_report.ino
: