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 option 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 we have tried to make 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.
||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 Configure function must be executed manually.
||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.
First we will focus on manually running Configure as automatic configuration is an extension of this.
Configure 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 Configure option is available in the UPDD Daemon menu, as below, or running the command 'UPDD\ Calibrate identify' as described 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 Configure is run varies according to the machine state. Note a touch device is said to be unconfigured when it is connected and detected for the first time. It is said to be configured after configure is run. It will become unconfigured if the number or position of monitors on the system changes. Configure in turn will 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 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
| Single - Native
||In a single monitor setup the first thing that happens is that all connected touch devices that are currently unconfigured 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 unconfigured the standard calibration procedure is executed for each.
If on the other hand all touch devices are considered to be in a configured 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 unconfigured 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 controllers 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.
||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 one of two system interfaces, Mouse or HID.
Touch data posted into the system as mouse data utilises the 'UPDD mouse device' defined in the Device Manager 'Mice and other pointing devices' branch.
Touch data posted in to the system as HID data utilises the 'UPDD Virtual HID device(s)' defined in the Device Manager 'Human Interface Devices' branch.
Not only does UPDD need to know the relationship between the touch device and the monitor layout but the UPDD Virtual HID device also needs 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.
When running in auto configuration mode then all the above configuration happens automatically following a touch whilst any device is determined unconfigured. In practice this means that Configure 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.
The config mode of operation is determined by the setting 'autoconfigure'. Set to 0 indicates manual, set to 1 indicates auto.
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).
Configure notification request
If the driver determines that the configure function should be invoked it will issue a notification that configuration should be run by issuing the message 'UPDD - Please run configure'
It will output this message if all of the following conditions are met:
- Autoconfigure is not enabled
- Its 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 center cross on the identify screen).
- Set when a monitor is auto-bound (using the monitor name defined in the setting monitor_bind.display_name)