Skip to content

DIGImend/uclogic-tools

Repository files navigation

Uclogic-tools

Uclogic-tools is a collection of programs for collecting and analyzing diagnostic information from UC-Logic graphics tablets (rebranded as Huion, Yiynova, Ugee, Monoprice, Turcom and others).

Installation

Download one of the release packages from the releases page.

Use your Linux distribution tools to install either .rpm or .deb packages.

To build uclogic-tools from the source code, you will need the libusb development package installed. It is usually named libusb-1.0-0-dev or libusbx-devel.

If you're using a release tarball, you can build uclogic-tools by executing this command in the unpacked source code directory:

./configure && make

If you're building a development version downloaded with Git or via GitHub's "Download ZIP" link, you will also need autoconf and automake installed on all distros, as well as pkg-config on Debian-based systems. After that you should be able to build uclogic-tools by executing the following in the source code directory:

autoreconf -i -f && ./configure && make

After building uclogic-tools from the source code, you can run the compiled programs directly, or install them with this command, from the same directory:

sudo make install

Usage

Uclogic-tools contains two utilities: uclogic-probe and uclogic-decode.

Uclogic-probe dumps diagnostics information from UC-Logic (and rebranded) graphics tablets and attempts to enable additional functionality.

Uclogic-decode attempts to extract tablet parameters from the information dumped by uclogic-probe.

Note that the additional functions might be incompatible with the tablet driver you're currently using and the tablet might stop working properly after you execute uclogic-probe. To fix that simply reconnect the tablet.

Uclogic-probe accepts two arguments: bus number and device address. You can find them in lsusb output by looking for a device with vendor ID 256c and product ID 006e.

For example, in this lsusb output:

Bus 001 Device 003: ID 256c:006e  
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The first line corresponds to a Huion tablet, and so its bus number is 1, device address is 3 and you probe it like this:

sudo uclogic-probe 1 3

The output will be something like this:

M 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
P 31 00 30 00 35 00 39 00 34 00 00 00 00 00 00 00 00 00 00 00
S 64 0E 03 40 9C A8 61 03 00 FF 07 A0 0F 08 00
S 65 04 03 20 A0
S 6E 04 03 00 30
S 79 14 03 48 00 41 00 36 00 30 00 2D 00 46 00 34 00 30 00 30 00
S 7A 08 03 01 08 00 00 00 00
S 7B 0C 03 48 00 4B 00 20 00 4F 00 6E 00

The above is what a driver developer would need when asking about a uclogic-probe output.

Uclogic-decode simply expects uclogic-probe output on its input. E.g. if you saved the output of uclogic-probe into a file named "probe.txt", then this command would decode it:

uclogic-decode < probe.txt

You can pipe uclogic-probe output directly to uclogic-decode too:

sudo uclogic-probe 1 3 | uclogic-decode

For the diagnostics dump above either of these commands will produce this:

  Manufacturer: ????????
       Product: 10594?????
         Max X: 40000
         Max Y: 25000
  Max pressure: 2047
    Resolution: 4000
Internal model: HA60-F400
Buttons status: HK On