Hi,
I am trying to interface 5 Pin resistive touch with imx93 with WinIoT. Is there any available source for the driver. Attached datasheet for the reference.
Hi,
Currently we are trying to interface the 5 wire resistive touch to imx93 running Win10 IoT. For this We are using the code base W21H2-1-4-1-imx-windows-bsp offered by nxp.
This firmware code base supports only the usb based touch driver for WinIoT.
We wanted to understand on how much we can leverage from the existing USB based touch driver to implement the GPIO based touch driver for our requirement.
I am new to Windows driver development, and by the documentation it is not so clear where we can find this implementation in the codebase. Does anyone know what are the files which we need to look into for understanding the existing TS implementation and what kind of changes are needed to interface the same via gpios.
Additionally, any references to Windows IOT driver development for i.MX93 will be of great help.
Hi Aditya,
I can't help you much with this, maybe others can. Neither can I tell whether we at NXP have source code of a working touch driver. But you can try looking into this driver sample repository:
https://github.com/microsoft/Windows-driver-samples
(There also used to be another driver sample repository)
Hi @aditya_h ,
I believe all touch screens around in the office are currently connected via USB cable. Maybe we could ask around.
@Frantisek_Prochaska When you say USB connected touch does it mean a converter in-between to convert Analog data from touch screen to USB data?
In that case what would be the drivers needed to interface that?
To encourage you a little. Panels used with i.MX 93 have an an I2C and an USB port for the touch screen. When USB port of the touch panel gets plugged into Windows machine it uses mouse.inf as driver.
Meanwhile Linux enumerated that as:
```
[16630.590541] usb 1-2: new full-speed USB device number 13 using xhci_hcd
[16630.739938] usb 1-2: New USB device found, idVendor=0eef, idProduct=c002, bcdDevice=17.00
[16630.739954] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[16630.739962] usb 1-2: Product: eGalaxTouch P80H46 4717 v00_T3 k4.10.143
[16630.739968] usb 1-2: Manufacturer: eGalax Inc.
[16630.746485] input: eGalax Inc. eGalaxTouch P80H46 4717 v00_T3 k4.10.143 as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C002.000A/input/input35
[16630.746897] input: eGalax Inc. eGalaxTouch P80H46 4717 v00_T3 k4.10.143 UNKNOWN as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0EEF:C002.000A/input/input37
[16630.747542] hid-multitouch 0003:0EEF:C002.000A: input,hiddev4,hidraw7: USB HID v1.11 Pointer [eGalax Inc. eGalaxTouch P80H46 4717 v00_T3 k4.10.143] on usb-0000:00:14.0-2/input0
```
The pdf you have attached to original post seems you have very similar device that can connect via USB interface. You will need USB cable with that tiny plastic connector.
Hi @Frantisek_Prochaska ,
I have few questions on the USB connector that you mentioned, Could you give more info about these,
Hi @aditya_h ,
Here's the page from your pdf stating that there's only RS232 and USB interface on your restive touch screen:
Hi,
There isn't a specific driver available for this exact setup, you can utilize the generic GPIO driver provided by NXP. This driver can be used to interface with a variety of hardware, including a 5 Pin resistive touch screen.
Once downloaded, you can find the GPIO driver under the path: \\BSP\\drivers\\gpio. You can then modify this driver to suit your specific needs. Please refer to the documentation included in the BSP for more information on how to modify and use the driver.
Here is a simple code snippet to initialize the GPIO driver:
#include 'gpio.h'
void main() { // Initialize the GPIO driver Gpio_Init();
// Configure the GPIO pin Gpio_ConfigurePin(GPIO_PIN, GPIO_DIR_OUTPUT, GPIO_INT_DISABLE);
// Set the GPIO pin high Gpio_SetPin(GPIO_PIN, GPIO_PIN_SET); }
Please note that you will need to replace 'GPIO_PIN' with the actual pin number you are using for your 5 Pin resistive touch screen.
Remember to include the necessary header files and link against the correct libraries when compiling your code. The exact details will depend on your development environment and the specific version of WinIoT you are using.
If you encounter any issues or have further questions, please don't hesitate to ask.
Regards