Можно ли считывать необработанные данные с тач-контроллера Ilitek v3?

Вопрос или проблема

У меня есть контроллер сенсорного экрана, основанный на Ilitek 2511QH010, который использует протокол Ilitek версии 3.
Я знаю, что в ядре Linux есть драйвер для него, на самом деле, при подключении USB-кабеля к моему Ubuntu 24.10 он распознается и работает каким-то образом:

из lsusb:

Шина 001 Устройство 007: ID 222a:0001 ILI Technology Corp. Multi-Touch Screen

и из dmesg:

[ 3866.949598] usb 1-5.2: новое полноскоростное USB-устройство номер 7, использующее xhci_hcd
[ 3867.244621] usb 1-5.2: Найдено новое USB-устройство, idVendor=222a, idProduct=0001, bcdDevice= 0.02
[ 3867.244629] usb 1-5.2: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=0
[ 3867.244632] usb 1-5.2: Продукт: ILITEK-TP
[ 3867.244634] usb 1-5.2: Производитель: ILITEK
[ 3867.297891] ввод: ILITEK ILITEK-TP Touchscreen как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:222A:0001.0009/input/input20
[ 3867.297991] ввод: ILITEK ILITEK-TP Mouse как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:222A:0001.0009/input/input22
[ 3867.298129] hid-generic 0003:222A:0001.0009: input,hiddev3,hidraw4: USB HID v1.10 Mouse [ILITEK ILITEK-TP] на usb-0000:0e:00.0-5.2/input0
[ 3867.497595] usb 1-5.5: новое низкоскоростное USB-устройство номер 8, использующее xhci_hcd
[ 3867.734700] usb 1-5.5: Найдено новое USB-устройство, idVendor=1a2c, idProduct=2124, bcdDevice= 1.10
[ 3867.734706] usb 1-5.5: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=0
[ 3867.734708] usb 1-5.5: Продукт: USB Keyboard
[ 3867.734709] usb 1-5.5: Производитель: SEM
[ 3867.774762] ввод: SEM USB Keyboard как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.5/1-5.5:1.0/0003:1A2C:2124.000A/input/input23
[ 3867.853642] hid-generic 0003:1A2C:2124.000A: input,hidraw5: USB HID v1.10 Keyboard [SEM USB Keyboard] на usb-0000:0e:00.0-5.5/input0
[ 3867.875786] ввод: SEM USB Keyboard Consumer Control как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.5/1-5.5:1.1/0003:1A2C:2124.000B/input/input24
[ 3867.927732] ввод: SEM USB Keyboard System Control как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.5/1-5.5:1.1/0003:1A2C:2124.000B/input/input25
[ 3867.927827] hid-generic 0003:1A2C:2124.000B: input,hidraw8: USB HID v1.10 Устройство [SEM USB Keyboard] на usb-0000:0e:00.0-5.5/input1
[ 3868.073672] ввод: ILITEK ILITEK-TP как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:222A:0001.0009/input/input26
[ 3868.073804] ввод: ILITEK ILITEK-TP Mouse как /devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:08.0/0000:06:00.0/0000:07:0c.0/0000:0e:00.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:222A:0001.0009/input/input28
[ 3868.073992] hid-multitouch 0003:222A:0001.0009: input,hiddev3,hidraw4: USB HID v1.10 Mouse [ILITEK ILITEK-TP] на usb-0000:0e:00.0-5.2/input0

Моя цель – не использовать это устройство в качестве стандартного сенсорного модуля, а считывать необработанные данные с каждого канала сенсорной матрицы.

Я пытался найти фактическую реализацию драйвера Linux, нашел этот репозиторий, но он не выглядит официальным.

В любом случае, я не могу понять, поддерживает ли протокол чтение необработанных данных.
Есть ли способ использовать созданные вводные устройства, чтобы считывать силу каждого элемента?

.

Ответ или решение

Чтение необработанных данных с контроллера касания Ilitek v3 возможно, но требует определенного понимания и работы с драйверами и протоколами. Контроллеры Ilitek, такие как 2511QH010, поддерживают взаимодействие через стандартные драйверы HID (Human Interface Device), что позволяет использовать их в ОС Linux, включая Ubuntu. Однако для получения низкоуровневых данных с сенсорной матрицы, необходимо более углубленное взаимодействие с устройством.

Теория:

Контроллеры касания, подобные Ilitek 2511QH010, обычно поставляются с драйверами, которые обрабатывают прикосновения и представляют их как события ввода для операционной системы. Однако эти драйверы не всегда предоставляют возможность видеть необработанные данные, такие как уровень сигнала на каждом канале сенсорной матрицы. Для доступа к таким данным потребуется либо модифицировать существующие драйверы, либо разработать пользовательское решение.

Пример:

Посмотрим на дистрибутивы Linux — они предоставляют драйверы для большинства сенсорных устройств, которые регистрируются как устройства HID. В вашем случае информация из lsusb и dmesg подтверждает, что устройство ILITEK распозналось корректно и его драйвер работает. Однако драйвер hid-multitouch, который скорее всего используется в вашей системе, вероятно не предоставляет доступ к необработанным данным.

Применение:

Чтобы получить доступ к необработанным данным, вам понадобятся:

  1. Техническая документация и спецификация протокола Ilitek: Обычно производители предоставляют такие документы по запросу. Они содержат детальное описание команд и ответов устройства, включая команды для получения низкоуровневых данных.

  2. Исследование существующих драйверов: Вы нашли репозиторий с драйверами Ilitek, но он неофициальный. Исследуйте код для понимания возможностей подключения к низкоуровневым протоколам. Если официальные драйверы доступны, они будут более надежным источником для понимания структуры и команд.

  3. Разработка пользовательского приложения или модификация драйвера: Используйте полученные знания для создания пользовательского программного обеспечения, которое будет взаимодействовать с контроллером через USB, отправляя команды, которые запрашивают необработанные данные. Это можно сделать с использованием библиотек для работы с HID-устройствами в Linux, например, libhid или libusb.

Таким образом, возможно настроить систему для чтения необработанных данных от Ilitek 2511, но это потребует технических знаний об разработке драйверов, а также доступ к технической документации контроллера.

Оцените материал
Добавить комментарий

Капча загружается...