fwupd/plugins/wacom-usb
Richard Hughes fb4e8446c1 wacom-usb: Use the device proxy functionality
The wacom-usb plugin was created in a simpler time, before we had the concept
of `FuDevice.proxy`. Switch to the shared code to modernize the code, and also
because setting the proxy conveys other semantics that we need to emulate the
device successfully in the future.
2023-02-09 16:43:52 +00:00
..
data trivial: Add some debugging data to wacom-usb 2019-01-02 09:50:39 +00:00
tests Move the fuzzing files into the plugin directories 2021-10-22 15:24:05 +01:00
fu-self-test.c Check firmware magic in a more standard way 2022-07-14 14:48:15 +01:00
fu-wac-android-device.c trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
fu-wac-android-device.h trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
fu-wac-common.c Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
fu-wac-common.h Add fu_common_sum8() common functionality 2021-11-26 18:33:11 +03:00
fu-wac-device.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-device.h trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
fu-wac-firmware.c Check firmware magic in a more standard way 2022-07-14 14:48:15 +01:00
fu-wac-firmware.h trivial: reformat the whole tree to match new format 2021-08-24 11:18:40 -05:00
fu-wac-module-bluetooth-id6.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-bluetooth-id6.h wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-bluetooth.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-bluetooth.h wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-scaler.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-scaler.h wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-touch.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module-touch.h wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module.c wacom-usb: Use the device proxy functionality 2023-02-09 16:43:52 +00:00
fu-wac-module.h wacom-usb: add scaler support to wacom-usb 2022-12-23 10:50:54 +00:00
fu-wac-plugin.c Build many more plugins as builtin 2022-09-28 17:01:23 +01:00
fu-wac-plugin.h Build many more plugins as builtin 2022-09-28 17:01:23 +01:00
meson.build wacom-usb: add scaler support to wacom-usb 2022-12-23 10:50:54 +00:00
README.md Include the plugin README text in the generated docs 2023-01-10 14:58:30 +00:00
wacom-usb.quirk wacom-usb: add scaler support to wacom-usb 2022-12-23 10:50:54 +00:00

title: Plugin: Wacom USB

Introduction

Wacom provides interactive pen displays, pen tablets, and styluses to equip and inspire everyone make the world a more creative place.

From 2016 Wacom has been using a HID-based proprietary flashing algorithm which has been documented by support team at Wacom and provided under NDA under the understanding it would be used to build a plugin under a LGPLv2+ license.

Wacom devices are actually composite devices, with the main ARM CPU being programmed using a more complicated erase, write, verify algorithm based on a historical update protocol. The "sub-module" devices use a newer protocol, again based on HID, but are handled differently depending on their type.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob in the following formats:

  • Touch module: Intel HEX file format
  • Bluetooth module: Unknown airoflash file format
  • EMR module: Plain SREC file format
  • Main module: SREC file format, with a custom WACOM vendor header

This plugin supports the following protocol ID:

  • com.wacom.usb

GUID Generation

These devices use the standard USB DeviceInstanceId values, e.g.

  • USB\VID_056A&PID_0378&REV_0001
  • USB\VID_056A&PID_0378
  • USB\VID_056A

Update Behavior

The firmware is deployed when the device is in normal runtime mode, and the device will reset when the new firmware has been written.

Vendor ID Security

The vendor ID is set from the USB vendor, for example set to USB:0x056A

External Interface Access

This plugin requires read/write access to /dev/bus/usb.