Unified Touch driver and WEC7 1.2b4 issue

Hi,

I’m trying to upgrade to WEC7 1.2b4. Unfortunately it seems the Unified Multi-Touch Driver does not start. The multi-touch hardware adaption aborts with “no Unified Touch Driver…aborted”

I found a similar problem with IMX6 and WEC2013 (Unified Touch driver and WEC2013 1.4b2 issue? - Technical Support - Toradex Community) but I am not sure I can use the same fix.

Thanks,
Frederic Rouviere

Dear @Frederic,

Yes, you are correct. Could you try the iMX6, WEC2013 fix that would solve the problem. Please let me know if it doesn’t solve it.

Thank you.

Hi Raja,

thanks for your response.
I am not sure the fix is working properly…
Actually for my board, I am using the following multi touch driver Capacitive Multi-Touch Solution | Toradex Developer Center.
I have imported the registry changes, reboot but it did not work.
I looked then at the touch driver you mentionned in the previous post as it is a different one. I have started its installation but aborted it because I had to enter a carrier board. I saved the registry unintentionally, reboot und now it looks like it is working.
Does it make sense for you? Are both driver different?

Thanks,
Frederic

Dear @Frederic,

This one https://developer.toradex.com/knowledge-base/first-steps-with-capacitive-touch-display-7-inch-parallel, it has a multi-touch driver and Hwadapt application for the display.

This one: https://developer.toradex.com/knowledge-base/capacitive-multi-touch-solution, it installs only multi-touch driver and customer need a develop Hwadapt application for their display e.g: https://developer.toradex.com/knowledge-base/capacitive-multi-touch-solution-source-code

Both the cases, multi touch driver is same, only Hwadapt application and registry configuration for the application are the differences.

I guess some registry settings not fixed propely in your not working case. Could you please share following thins with us.

  • Log the debug messages
  • display information
  • Hwadapt application/source code and registry settings.

Let us try to find the issue by looking into those details.

Hi Raja,

I have setup a new board to have a clean environment.
I have installed winCE7 1.2b4, erased the filesystem, installed the touch driver, my HWAdapt application and finally calibrated the touch. I did not change any other registry.
It worked the first 3 reboot and stop working after.

When debugging my HWAdapt application I get the following messages:

Load module: HwAdapt_CT_UNI_Vyb.exe
Load module: locale.dll
Load module: normalize.dll
Load module: fpcrt.dll
Load module: coredll.dll
MultiTchHwAdapt loading...
MultiTchAppDriv:I2C Library Version=2.0 Build=3843
Load module: i2csdk_imx7.dll
Multi-Touch HW-Adaption_Init:Starting GPIO Setup
Multi-Touch HW-Adaption_Init:GPIO Setup finished
Reset to 1
no Unified Touch Driver...
aborted2
The program '[0x58A0102] HwAdapt_CT_UNI_Vyb.exe' has exited with code 0 (0x0).

My HWAdapt application is based on the Atmel mXT1066t2 example. I have attached the file HwAdapt.clink text

Do you need more information? I could create an image of the registry using the Update Tool.

Thanks,
Frederic

Dear @Frederic,

Your application code is fine.

Could you check these debug prints “UnfdMutiTchDrv 2.0 loading…” and “done”? are there in debug log. If it is there, it should be before the " Load module: HwAdapt_CT_UNI_Vyb.exe".

Could you please log complete messages with working and not working case, that will give us clue where would be the problem.

I guess, UnfdMutiTchDrv not loaded before the HwAdapt_CT_UNI_Vyb the application, please try this fix 1 or fix 2, that would solve the problem and let us know.

Hi Raja,

I am sending you the debug prints.

Working case:

Load module: HwAdapt_CT_UNI_Vyb.exe
Load module: locale.dll
Load module: normalize.dll
Load module: fpcrt.dll
Load module: coredll.dll
MultiTchHwAdapt loading...
MultiTchAppDriv:I2C Library Version=2.0 Build=3843
Load module: i2csdk_imx7.dll
Multi-Touch HW-Adaption_Init:Starting GPIO Setup
Multi-Touch HW-Adaption_Init:GPIO Setup finished
Reset to 1
Reset to 0
Touch 1 x=0 y=0 Flags=0 Id=0
Touch 1 x=14 y=96 Flags=10 Id=2
Touch 1 x=14 y=96 Flags=9 Id=2
Touch 1 x=14 y=96 Flags=9 Id=2
Touch 1 x=14 y=95 Flags=9 Id=2
Touch 1 x=14 y=94 Flags=9 Id=2
Touch 1 x=14 y=93 Flags=9 Id=2
Touch 1 x=14 y=93 Flags=9 Id=2
Touch 1 x=14 y=93 Flags=9 Id=2
Touch 1 x=14 y=93 Flags=4 Id=2

Not working case:

Load module: HwAdapt_CT_UNI_Vyb.exe
Load module: locale.dll
Load module: normalize.dll
Load module: fpcrt.dll
Load module: coredll.dll
MultiTchHwAdapt loading...
MultiTchAppDriv:I2C Library Version=2.0 Build=3843
Load module: i2csdk_imx7.dll
Multi-Touch HW-Adaption_Init:Starting GPIO Setup
Multi-Touch HW-Adaption_Init:GPIO Setup finished
Reset to 1
no Unified Touch Driver...
aborted2
The program '[0x50C00FA] HwAdapt_CT_UNI_Vyb.exe' has exited with code 0 (0x0).

I already tried fix2 without success. I looked at the registry to try fix1, but the registry is a bit different in my case.
I have attached a print screen. alt text

Please let me know what I can try.

Thanks,
Frederic

Dear @Frederic,

Thank you for the details.

This log is not enough for us. We need a complete boot log, please follow this procedure : https://developer.toradex.com/knowledge-base/enable-the-debug-messages to get that and share with us.

“Dll”=“BusEnum.dll” is a valid registry and “Dll_” is disabled one.

Hello Raja,

so if I understand correctly, the registry in my case already looks like fix1. Is that correct?

Since I have enabled debug messages on my board, I can’t reproduce the problem anymore… The touch driver is always found (I tried around 20 times) even after reinstalling Windows CE. I have copied the log files below.

I am a little bit confused and don’t really know how to proceed. Can you reproduce this issue?

Thanks,
Frederic

Debug Message Logger V1.3

Toradex Bootloader 1.2b4 for iMX7 Built Dec 21 2018
Reset cause: Power-up sequence
Colibri iMX7D 512MB 1.1D Serial: 03091107
RAM     	:512 MB
NAND    	:512 MB

Press [SPACE] to enter Bootloader Menu

Initiating image launch in 5 seconds. 4 seconds. 3 seconds. 2 seconds. 1 seconds. 0 seconds. 
System ready!
Preparing for download...
Loading OS Image
.............................
Done.
OEMLaunch: 0x80180000
Windows CE Kernel for ARM (Thumb Enabled)

Toradex Windows CE 7.0 1.2b4 for iMX7 Built Dec 21 2018
SMP support enabled
CPU0 started
CPU1 started
Loading FlashDisk...
Loading NAND...
Done Loading NAND (14 ms)
Done Loading FlashDisk (17 ms)
Loading PXP...
Done Loading PXP (3 ms)
Loading NTLMSSP_SVC...
Done Loading NTLMSSP_SVC (0 ms)
Loading SIP...
Done Loading SIP (6 ms)
Loading ccfgsvc...
Done Loading ccfgsvc (0 ms)
Loading SmartCard...
Done Loading SmartCard (0 ms)
Loading WAPIMAN...
Done Loading WAPIMAN (1 ms)
Loading TAPI...
Done Loading TAPI (0 ms)
Loading SDBusDriver...
Done Loading SDBusDriver (0 ms)
Loading ALPCD...
Done Loading ALPCD (0 ms)
Loading I2C4...
Done Loading I2C4 (18 ms)
Loading I2C1...
Done Loading I2C1 (5 ms)
Loading COM1...
Done Loading COM1 (2 ms)
Loading Audio...
Done Loading Audio (93 ms)
Loading COM3...
Done Loading COM3 (2 ms)
Loading COM2...
Done Loading COM2 (2 ms)
Loading CredSvc...
Done Loading CredSvc (43 ms)
Loading Netbios...
Done Loading Netbios (0 ms)
Loading USB_OTG2...
Done Loading USB_OTG2 (220 ms)
Loading NDIS...
Loading ENET1...
Done ENET1
Ethernet: Disconnected 
Done Loading NDIS (71 ms)
Loading USBOTG...
Done Loading USBOTG (2 ms)
Loading SD Card...
Done Loading SD Card (305 ms)
Loading AFD...
Done Loading AFD (46 ms)
Loading Ws2Serv...
Done Loading Ws2Serv (0 ms)
Loading NDISUIO...
Done Loading NDISUIO (0 ms)
Loading PPP...
Done Loading PPP (1 ms)
Loading Autoras...
Done Loading Autoras (1 ms)
Loading Ethman...
Done Loading Ethman (0 ms)
Loading NdisPower...
Done Loading NdisPower (0 ms)
Loading EAP3SVC...
Done Loading EAP3SVC (1 ms)
Loading NSIPROXY...
Done Loading NSIPROXY (0 ms)
Loading NSISVC...
Done Loading NSISVC (0 ms)
Loading EAP3SVC...
Done Loading EAP3SVC (0 ms)
Loading CmService...
Done Loading CmService (120 ms)
Loading Display driver...
Pixel Width invalid, will use 24 bits as default
Done Display driver
Invalid time on External RTC, please set a valid time
UnfdMutiTchDrv 2.0 loading...done
Loading NETUI...
Done NETUI
Warning: you are requesting IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMTYPE, which has been deprecated.  Use IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMNAME instead.
MultiTchHwAdapt loading...
MultiTchAppDriv:I2C Library Version=2.0 Build=3843
Loading I2C2...
Done Loading I2C2 (5 ms)
Multi-Touch HW-Adaption_Init:Starting GPIO Setup
Multi-Touch HW-Adaption_Init:GPIO Setup finished
Reset to 1
Reset to 0
Touch 1 x=0 y=0 Flags=0 Id=0
Touch 1 x=21 y=118 Flags=10 Id=2
Touch 1 x=20 y=118 Flags=9 Id=2
Touch 1 x=20 y=116 Flags=9 Id=2
Touch 1 x=20 y=116 Flags=9 Id=2
Touch 1 x=19 y=116 Flags=9 Id=2
Touch 1 x=18 y=115 Flags=9 Id=2
Touch 1 x=18 y=113 Flags=9 Id=2
Touch 1 x=18 y=113 Flags=9 Id=2
Touch 1 x=18 y=113 Flags=9 Id=2
Touch 1 x=18 y=113 Flags=9 Id=2
Touch 1 x=16 y=115 Flags=9 Id=2
Touch 1 x=15 y=118 Flags=9 Id=2
Touch 1 x=15 y=119 Flags=9 Id=2
Touch 1 x=15 y=119 Flags=9 Id=2
Touch 1 x=15 y=119 Flags=4 Id=2

Hi Raja,

I have setup a new board which is working correctly…
On the 2 first boards I had problem with, I first installed an older version of the touch driver. Is the registry cleaned after reinstalling WinCE oder do I have to clean it intentionally ?

Thanks,
Frederic

Dear @Frederic,

Could you please import this registry and test again. This problem seems to be enabling debug prints is giving room for mounting the FlashDisk and that is helping the Unified Multitouch driver to load always. The below registry fix will do waiting for FlashDisk to mount before other drivers to load.

Wait4FlashDisk for installer drivers(fix1):

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Wait4FlashDisk]
   "Prefix"="WFD"
   "Dll"="w4fd.dll"   
   "Timeout"=dword:12C
   "Folder"="\\FlashDisk"
   "Order"=dword:2
   "Flags"=dword:0

AsyncTouchLoadFix(fix2):

When ASYNC driver loading is enabled, even though Wait4FlashDisk is set, the UnfdMultiTchDrv will be loaded by another core simultaneously. In order to make UnfdMultiTchDrv depends on Wait4FlashDisk, this fix will be used.

Disable Async driver loading(fix3):

In order to remove asynchronous driver loading feature below registry fix will be used

 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn]
     "Dll"="BusEnum.dll"

I guess, I provided enough information to understand these features better and make decision, let me know if you need any help on this.
You need to use either fix1 and fix2 or fix1 and fix3 combination.

Please read below documentation for more information

https://developer.toradex.com/knowledge-base/busenum2

https://developer.toradex.com/knowledge-base/load-drivers-from-internal-flash

https://developer.toradex.com/knowledge-base/autocopy

Dear @Frederic,

There are some cases registry will be cleared while updating the image but not all the times. Hencew we would like to recommend you, clear the registry after update the image and before a reboot always.