All Projects → jlam55555 → veikk-linux-driver-gui

jlam55555 / veikk-linux-driver-gui

Licence: other
Configuration tool for the VEIKK Linux driver

Programming Languages

C++
36643 projects - #6 most used programming language
QMake
1090 projects

An official driver has been released by VEIKK.

This project should provide basic functionality for tablets but is no longer actively maintained. The original author is too busy with school/work.


VEIKK Linux Driver Configuration Tool

A graphical configuration tool to easily customize the module parameters for the VEIKK Linux Driver (v2.0) for VEIKK-brand drawing tablets.

image highlighting the v2 release


Note: You must run the configuration tool as root to be able to apply any changes.

Implemented options

This GUI allows you to customize the sysfs module parameters for the VEIKK Linux driver. The exact format and requirements of all parameters in sysfs is fully documented in the driver code. Currently, the following options are supported:

Screen mapping

Select a rectangular region of the screen to map. The mapped area of the screen may be set manually by typing in the values, or you may drag the mapped region out on the screen preview for convenience.

  • Screen width, height: automatically set (needed by driver to set screen map)
  • Screen map x, y: pixel coordinates of the top left of the mapped area of the screen
  • Screen map width, height: pixel dimensions of the mapped area of the screen (must be positive)
Orientation

Choose one of four tablet orientations. Select these in the dropdown.

  • Default
  • Rotated 90deg CCW
  • Flipped (rotated 180deg)
  • Rotated 90deg CW
Pressure mapping

Set the parameters for a cubic function mapping physical to transmitted pressure. The coefficients are for a 1x1 square, and upscaled to the tablet's resolution; i.e., if the input pressure (x-axis) ranges from [0, 1], this mapping maps takes the input pressure to an output pressure also in [0, 1]. These may be inputted manually or calculated automatically by dragging the control points on the pressure mapping graph. A list of default mappings is also provided in a dropdown for convenience.

  • a0, a1, a2, a3: Coefficients to the cubic mapping p_out=a0+a1*p_in+a2*p_in**2+a3*p_in**3

Compiling and executing the tool

To compile, make sure you have qmake installed on your system, with a Qt version (>=5.12). (For development, the Qt Creator IDE w/ Qt Designer is recommended; this should come bundled with Qt.) Run:

qmake && make all clean

This should generate the binary. Make sure to run it as root, or else you will not be able to edit the module parameters in sysfs.

sudo ./veikk-linux-driver-gui

Enjoy configuring your driver!


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.

Future features
  • More detailed warnings/feedback to user (e.g., when not launched with root privileges)
  • Ability to save/load configurations from files
  • Ability to apply module parameters on startup (currently they don't persist through a reboot cycle)
  • Button mapping and other configuration options
  • Device-unique configuration
  • Packaging for easier distribution
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].