/veikk-linux-driver

Linux driver for Veikk-brand digitizers

Primary LanguageC

VEIKK Linux Driver

A driver for VEIKK-brand digitizers/drawing tablets using the usbhid API. Configuration options are exposed in sysfs and configurable with an associated GUI. Connects low-level hardware events to the input subsystem (e.g., libinput), with some processing/mapping logic in between. This draws heavily from the Wacom driver for Linux.

image highlighting the v2 release


Features:

Currently, a set of basic basic digitizer features are supported, such as:

  • Full range and resolution for tablet pressure and spatial sensitivity
  • Configurable screen mapping, orientation, and (cubic) pressure mapping
  • Driver (using /etc/modules-load.d/) and options (using /etc/modprobe.d) persist after reboots

More features are planned for the near future, such as:

  • Button remapping
  • Support for gesture pads and additional buttons (model-dependent)
  • Device/model-specific configuration options

Installation

Make sure you have make and the appropriate linux headers installed (linux-headers-$(uname -r) on Ubuntu, linux-headers on Arch). See this for more details.

make
sudo make all install clean

If you are getting a Required key not available error, please see this issue.

Check out the issues tab for known setup issues and solutions.

AUR (dkms) package

Thanks to @artixnous, this driver is available as an AUR package with dkms! See input-veikk-dkmsAUR. Make sure to run modprobe veikk after installation to load the driver.

Uninstallation
sudo make uninstall

Configuration

Currently, the configurable parameters are screen_size, screen_map, orientation, and pressure_map, and are all available in sysfs under /sys/module/veikk/parameters with permissions 0644. Documentation on the parameters is available in veikk_modparms.c. You can update a parameter by simply writing the new value to it as root.

The (new!) visual configuration utility is available at @jlam55555/veikk-linux-driver-gui.


Changelog:

  • v2.0: Renamed from veikk-s640-driver, redesigned from the ground up to be more extensible.
  • v1.1: Basic command-line configuration utility is created! Includes ability to change tablet orientation, mapping onto section of screen, and mapping raw pressure input to pressure output.
  • v1.0: Basic digitizer capabilities (e.g., pressure sensitivity) for S640 and similar tablets.

Development status

Currently, development is focused on the S640, but PR's are welcome. The developer only has an S640 at the moment and is unable to directly develop new features for other models, but open to feedback and questions at jonlamdev at gmail dot com.


Media