EEPROM support

Some pointer device controllers have on-board EEPROM (Electrically Erasable Programmable Read Only Memory).

EEPROM can be used to store information pertinent to the controller and also offers a memory storage area for applications and drivers to store data.

The UPDD driver can access EEPROM for a number of reasons:

  1. Store UPDD calibration data so that calibration data is held against a specific device.
    ​By default UPDD calibration data is held in the UPDD database file. Initial calibration data is calculated from the co-ordinate range held in the HID Report Descriptor for HID USB devices or can be embedded in the installer program as taken from a good calibrated system that uses the same device. Systems that are not calibrated after install require calibrating.
    EEPROM calibration data is only really useful in cases whereby the OS or system is locked down and the file system does not allow any files to be updated or devices are to be shared or utilised on different systems and it is useful to have the calibration data store locally on the device. If neither of these is the case then even if the device is capable of storing calibration data it is only duplicating the data already held in the UPDD database and introduces an extra step of writing and reading from EEPROM and catering for read failures and / or slow transfer rates of data to / from EEPROM.
  2. Update or read controller internal settings to adjust as required.
  3. Read controller data for display, such as firmware revision.
  4. Update controller's firmware.

Not all the above are currently implemented in UPDD V6 but are listed by way of example of EEPROM usage and the type of EEPROM functions that can be handled by the driver.