We have investigated a number of these reports as follows:
Issues with multiple touch monitors of the same type
Customer reported that he had 2 identical touch monitors whereby after resume from sleep only one would work, sometimes the left one, other times the right one.
We could see from our diagnostic log that at system startup each device was being reported on separate ports but after sleep/resume they were both being reported on the same port:
2020/04/28-14:28:19: TRC: Found VID:0x1fd2 PID:0x8105 BCD:0x100
2020/04/28-14:28:19: TRC: VID:0x1fd2 PID:0x8105 BCD:0x100 is supported by this UPDD package
2020/04/28-14:28:19: TRC: USB location bus:0000-port:0002-0001
2020/04/28-14:28:19: DBG: Read starts for VID 0x1fd2 PID 0x8105 EP 0x81
2020/04/28-14:28:19: @bus:0000-port:0002-0001
.
.
2020/04/28-14:28:19: TRC: Found VID:0x1fd2 PID:0x8105 BCD:0x100
2020/04/28-14:28:19: TRC: VID:0x1fd2 PID:0x8105 BCD:0x100 is supported by this UPDD package
2020/04/28-14:28:19: TRC: USB location bus:0000-port:0002-0001
2020/04/28-14:28:19: TRC: Location already connected
We believe this is a USB stack error reporting both on the same device or supplying the wrong port info.
The UPDD Driver can try and identify USB devices in various way. They always include the USB vendor (1fd2) and Product id (8105) as taken from the example above + a 3rd component as defined in the 'bindmode' setting. The default value is decimal 5 (Hex 5 = 4+1 = VIDPID + USB Location binding)
#define BIND_VIDPID 0x01
#define BIND_USB_SERIAL 0x02
#define BIND_USB_LOCATION 0x04
-- following values are > 0x5 so omitted by the default setting
#define BIND_USB_INTERFACE 0x10 -- experimental
#define BIND_USB_ENDPOINT 0x20 -- experimental
#define BIND_USB_INDEX 0x4000
#define BIND_USB_BCD 0x8000
For this particular customer, we changed the bindmode setting to decimal 16385 (hex 4000 + 1 = VIDPID + USB index binding) and it worked!
It can be set via the CLI using the command 'upddutils setall bindmode 16385' or in the UPDD Console, Advanced section. You will need to stop / start the driver or reboot for this to take effect.
May 2022 update - We believe that the new UPDD v7 driver, that processes port information using a different technique, will likely resolve this issue.
No touch or single touch after resume from sleep
We've had reports of touch not work, or is operating in a different mode, such as single touch rather than multitouch prior to sleep.
Typically, this can be resolved if the driver is stopped and restarted or unplugging / replugging the device.
This forces the driver to perform a full initialisation of the device, and normally this recovers touch.
To cater for this issue, we have added a Replug option to the daemon menu and also two device settings to automate the process:
power.reenumerate_after_wake |
The function behind the 'Replug' option, this re-enumerates the USB list and reinitialises the device after a power management "wake" event. |
power.stop_after_wake |
Our initial 'brutal' attempt at device recovery. If set, the driver process is terminated after a power management "wake" event. The driver will then be restarted by the OS specific launcher, allowing for a full software reset. |
|
|
One of these settings will be set against devices that are known to suffer from this issue.
They can also be set in the UPDD Console, [Device], Advanced, Settings tab, as per the example below:

This can also be set via the command 'upddutils [device] set power.stop_after_wake 1'