fwupd/plugins/wacom-usb
2020-10-26 12:05:20 -05:00
..
data trivial: Add some debugging data to wacom-usb 2019-01-02 09:50:39 +00:00
fu-plugin-wacom-usb.c wacom-usb: Use a per-device cleanup function 2020-04-08 16:30:15 +01:00
fu-self-test.c Install the installed tests 2020-08-28 10:10:43 -05:00
fu-wac-common.c wacom-usb: Make updating less verbose 2019-02-12 10:16:42 -06:00
fu-wac-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-device.c trivial: Set FWUPD_STATUS_DECOMPRESSING when preparing firmware 2020-09-08 14:18:46 +01:00
fu-wac-device.h wacom-usb: Use a per-device cleanup function 2020-04-08 16:30:15 +01:00
fu-wac-firmware.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-firmware.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module-bluetooth.c Never use memcpy() in a possibly unsafe way 2019-08-12 09:22:09 -05:00
fu-wac-module-bluetooth.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module-touch.c Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
fu-wac-module-touch.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module.c wacom-usb: Fix a theoretical buffer over-read to make GCC happy 2020-04-20 15:50:10 +01:00
fu-wac-module.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
meson.build Install the installed tests 2020-08-28 10:10:43 -05:00
README.md Add external interface messages 2020-10-26 12:05:20 -05:00
wacom-usb.quirk remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface 2019-07-15 09:09:29 +01:00

Wacom USB Support

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+ licence.

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

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.