In a single monitor setup there is a good possibility that after a UPDD driver install an HID USB compatible touch screen will be calibrated and no configuration is required. Further, if a device has been preconfigured with default calibration data then there is a good chance touch will be accurate after install.
The configuration process is only required if calibration is inaccurate and therefore touch screen calibration is required or in a multi-monitor setup the touch is moving the system pointer on the wrong monitor and therefore touchscreen and monitor association is required.
With UPDD v6/v7 we have tried to make monitor configuration as simple as possible.
There are two configure modes of operation, manual or automatic, either of which can be set as default in a supplied driver package, so from the user's perspective only the predefined option is relevant.
By default, the software is set to manual configuration. When we first implemented the configuration feature, we set it to automatic so that for multi-monitor setup configure would automatically be invoked to set the touch device and monitor relationship. However, in practice we found a few cases whereby the configuration screen was invoked unnecessarily, especially after reboot when the monitor geometry would change to reflect layout, hence we switched the default to manual.
Mode |
Description |
Manual |
In this mode, if after installation or a configuration change (such as adding or removing a monitor or touch device) the touches are inaccurate or appear on the wrong screen, then the Identify function must be executed manually.
|
Automatic |
The user will be prompted for input when deemed necessary due to a system configuration changes that affects touch operation. In this mode the user needs to do nothing other than to follow the on-screen prompts. |
Configure
First we will focus on manually running Identify, as automatic configuration is an extension of this.
Identify should be run whenever touches are not reported accurately; or even appear on the wrong screen. This might occur after installation or when monitors have been added or removed.
The Identify option is available in the UPDD Daemon menu, as below, or running the command 'UPDD\ Calibrate identify' as described here:
macOS |
Windows |
Linux |
|
|
See documentation here |
In the descriptions below, it is important to be aware that:
- A touch device and the monitor (if any) it is attached to are two different things.
- As a touch device does not have to be attached to a screen there can be more touch devices than monitors (although this is uncommon, if you have this scenario you are likely to be aware of this).
- A single monitor system refers to the number of monitors, not the number of touch devices.
What happens when Identify is run varies according to the machine state. Note, a touch device is said to be unidentified when it is connected and detected for the first time. It is said to be identified after identify is run. It will become unidentified if the number or position of monitors on the system changes. Identify will in turn invoke the calibration procedure to identify touch devices or calibrate a device as appropriate.
With UPDD version 6.0.381 we have introduced a setting, configure.invokes_calibrate, that controls how the configure process invokes the full calibration:
auto - is the default setting - if the configure process determines calibration is needed, as described below, it will be invoked.
never - the calibration procedure is never invoked, so configure is only really used to set touch screen and monitor associations.
always - the calibration procedure is always invoked.
Monitor setup |
Description |
Single - Native |
In a single monitor setup the first thing that happens is that all connected touch devices that are currently unidentified are assigned to "Monitor 1" in the driver's number system. This is to deal with the case where the number of monitors has been reduced to 1.
Thereafter, if any touch devices are unidentified the standard calibration procedure is executed for each.
If on the other hand all touch devices are considered to be in a identified state, the software takes this as an instruction that despite the system having been configured something is amiss, so a standard 4 point calibration is executed for each connected touch device. |
Multi - Native |
In a multi-monitor system, if any connected touch device is unidentified the identify window is shown on each screen in turn. The user is asked to touch the single cross or to click next in the event that the screen is not a touch screen.
During this identify process, the software checks the touched point to see if it is accurate or not. Touch might be accurate either due to default data, e.g. as defined in the controller's report descriptor or a previous calibration. In such a case, of course, the full calibration is unnecessary and not invoked.
If during the identify stage and touch device was found to be inaccurately calibrated, the standard calibration procedure is executed for each such occurrence.
If on the other hand all touch devices were in a configured state, the software takes this an instruction that despite the system having been configured something is amiss, so a full configuration is executed.
First the identify window is shown on each screen in turn. The user is asked to touch the single cross or to click next in the event that the monitor is not a touch screen.
Thereafter the calibration procedure is executed for each connected touch device. |
Segmented |
In single or multi-monitor configurations whereby Windows lists fewer monitors than physically exist then it is likely that each Windows logical monitor is associated with two or more physical monitor, using 3rd party video hardware and / or specialist video drivers. In this instance UPDD is configured to support monitor segments and in this case the configure function will identify each associated segment. The identify text will indicate the segment being configured in each case with the notation 'Monitor N:S' where N is the monitor and S the segment as in this example requesting the identification of the 1st segment associated with monitor 1:
|
Multi monitor considerations
Configure is used to associate a touch device with a monitor so that the cursor reacts on the correct monitor when touched. The monitor layout is held within the UPDD monitor metrics.
Touch data is posted into the operating system using various system interfaces.
Under Windows, not only does UPDD need to know the relationship between the touch device and the monitor layout, but also the UPDD Virtual HID devices also need to be correctly associated to the same monitor layout. Since UPDD V6 release 475 this association is handled automatically.
In most cases, after installation and running configuration, the touch and monitor association should be correct.
Configure process screen examples
The identify screen, which is used to identify touch devices and associate them with a screen, is shown below:
The calibration screen use to correct screen orientation and alignment issues is shown below.
Auto configuration
When running in auto configuration mode then all the above configuration happens automatically following a touch whilst any device is determined unidentified. In practice this means that Identify will execute following the first touch after installation or any change to the video geometry, except rotate (which is automatically catered for by the driver or by the OS as is the case of Windows 10), or number of monitors.
The UPDD Daemon process must be running for the auto function to work.
Setting
The config mode of operation is determined by the setting 'autoconfigure'. Set to 0 indicates manual, set to 1 indicates auto.
This can be seen and set in the UPDD Console, General, Advanced, Settings or via the Command Line interface.
To see the value use the command 'upddutils nodevice get autoconfigure'.
To set the value use the command 'upddutils nodevice set autoconfigure n' (n=0 or 1 as required).
Identify notification request
If the driver determines that the identify function should be invoked, it will issue a notification that identification should be run by issuing the message 'UPDD - Please run identify'
It will output this message if all the following conditions are met:
- Autoconfigure is not enabled
- It's a multi monitor system
- The device had not been 'identified' (the device setting 'identified' = 0 or is not set)
The setting “identified” is ...
- Cleared when setting up the calibration data for the first time (e.g. setting from the HID RD values)
- Cleared when a change in the HID Report Descriptor is detected and this operation is not disabled
- Set when a monitor is identified (by touching the centre cross on the identify screen).
- Set when a monitor is auto-bound (using the monitor name defined in the setting monitor_bind.display_name)