DIGImend / digimend-kernel-drivers

DIGImend graphics tablet drivers for the Linux kernel
GNU General Public License v2.0
1.17k stars 173 forks source link

Latest Ugee M708 has different hardware, diagnostics attached. #227

Open Kirtai opened 5 years ago

Kirtai commented 5 years ago

I just bought a new Ugee M708 which didn't work with the digimend drivers due to a hardware refresh.

New USB id is 28bd:0907

This particular version comes with a batteryless pen that claims 8192 pressure values. See attached files for the detailed information on this hardware. I have access to both an old and new model M708 if that's useful.

The default linux/X drivers in Debian Buster (testing) partially work: Tip pressure, absolute pen movement, frame buttons send keys, tip button is left click, lower barrel button is middle click, upper barrel button is ERASER, not right click for some weird reason.

"xsetwacom list" shows the stylus but not the buttons.

descriptors.txt frame_buttons.txt hid_report_descriptors.txt pen_buttons.txt pen_coords.txt pen_pressure.txt pen_tilt.txt

spbnick commented 5 years ago

Thank you for the report, @Kirtai. Could you please give a link to the product that you purchased, and also please post the output of the latest development version of uclogic-probe for your tablet?

Kirtai commented 5 years ago

I got the tablet from Amazon UK here and the uclogic-probe output is attached. uclogic-probe.txt

Kirtai commented 5 years ago

BTW, I've been trying but unable to get the upper barrel button to act as a right click. Instead it only appears as an eraser. Is this something I can fix for now or will I need to wait for the driver to sort it properly?

icefairy64 commented 5 years ago

Hello,

I have encountered similar behavior with my new XP-Pen Deco 01.

Its USB ID is 28bd:0902, which, as far as I understand, differs from the one listed on the website (28bd:0042).

Should I raise a separate issue for this one? I have already collected required diagnostics.

Thanks in advance!

spbnick commented 5 years ago

@Kirtai, please try this version of the driver: https://github.com/spbnick/digimend-kernel-drivers/archive/support_ugee_m708_v2.zip

@icefairy64, please open a new issue and attach diagnostics, as your tablet's USB product ID is different.

icefairy64 commented 5 years ago

@spbnick, done: #233

Kirtai commented 5 years ago

With that driver, the tablet is unresponsive. Attached are logs from X and dmesg Xorg.0.log messages.txt

spbnick commented 5 years ago

Thank you, Kirtai, I'll try to figure out what's going on. Do you have another Ugee tablet, one with product ID 1227, which I see in the log?

Kirtai commented 5 years ago

No, it's the same tablet.

This is strange. With the driver you provided installed, when I plug in the the first time, it attaches as ID 1227 . If I remove it then plug it in again, it attaches as ID 0907 and sometimes doesn't detach when I unplug it.

With your driver removed, it appears as ID 0907 every time and detaches properly.

Attached is lsusb output from first and second connection. lsusb.txt

spbnick commented 5 years ago

Ha-ha, wonderful. I'll have to think on what to do about this.

Kirtai commented 5 years ago

OK, I've been experimenting with this tablet and have got some things working you may find useful.

If I install the X11 config you provided in your driver in this entry, the tablet is partially recognized by the wacom driver.

xsetwacom recognises the Stylus and what appears to be a spurious "Mouse touch" device.

I do not have any digimend drivers installed according to lsmod. (I think)

Attached files contain the results of

and the X11 config I'm using.

Thanks for helping with this :)

m708v2-list.txt m708v2-stylus-s.txt m708v2-Mouse-s.txt lsmod.txt 50-digimend.conf.txt

Kirtai commented 5 years ago

Also added the X and dmesg logs with the partial wacom driver

dmesg.txt Xorg.0.log

blackorange1905 commented 5 years ago

Is the Ugee m708 v2 finally working with digimend kernel drivers??? I am fed up depending on windows because of the driver support..

spbnick commented 5 years ago

@Kirtai, @blackorange1905, please my another attempt at making Ugee M708 V2 work: https://github.com/spbnick/digimend-kernel-drivers/archive/support_ugee_m708_v2_v2.zip

Kirtai commented 5 years ago

With the new driver the tablet is unresponsive. It has a light on it that flickers whenever an event is sent, this remained dark the whole time. It only flickers once when I plug it in.

Weirdly, the KDE config tool and xsetwacom both do show information on the tablet.

Attached are the log files. dmesg.txt x.log m708v2-list.txt m708v2-stylus.txt xinput.txt m708v2-pad.txt lsmod.txt

spbnick commented 5 years ago

Oh well, at least it doesn't change its VID:PID anymore. Please write if you notice that again. I wonder why it's initializing two of the three interfaces twice. Could you please execute echo "module hid_uclogic +pfl" | sudo tee /sys/kernel/debug/dynamic_debug/control, reconnect your tablet and then post the last 30 or so lines of sudo dmesg output?

Thank you.

Kirtai commented 5 years ago

Here it is

dmesg-debug.txt

spbnick commented 5 years ago

Thank you. This seems OK so far, except for some reason the other two interfaces are initialized twice. Not sure why. Could you give me some usbhid-dump output for your tablet, from you making a stroke with the pen with this driver installed? And also evtest output for the pen and the pad devices (for the stylus and the frame buttons respectively)?

Kirtai commented 5 years ago

Here you go.

dump-pen contains a pen stroke. dump-buttons contains the stylus button presses. dump-pad shows the frame buttons from top to bottom.

The evtests didn't show anything while using the device, just the descriptor.

dump-pad.txt dump-buttons.txt dump-pen.txt evtest-pad.txt evtest-pen.txt

spbnick commented 5 years ago

Thank you, @Kirtai. This looks like somebody butchered the usual UC-Logic firmware. It uses the old protocol's report ID for the pen, but reports with the new protocol. At the same time, it responds to frame button initialization, but doesn't actually switch the protocol, only the interface number and continues reporting like a generic keyboard, with fixed shortcuts. Not to mention the trick where it resets and begins to identify as a different tablet, which we've seen before.

I think I can make the pen work with somewhat invasive changes to the driver, but so far the frame buttons would have to stay that way. That is unless you'd like to try capturing the traffic from the Windows driver with Wireshark, so that I can see how it actually initializes and uses the tablet. Write if you'd like to do that and need help. Meanwhile I'll see if I can throw together another test version for you.

spbnick commented 5 years ago

OK, here's another attempt, trying to make the pen work, but without the frame buttons: https://github.com/spbnick/digimend-kernel-drivers/archive/support_ugee_m708_v2_v3.zip

Please try it, and if it doesn't work, please post the dmesg output with driver debugging enabled, when plugging in the tablet, the output of sudo bash -c "cat /sys/kernel/debug/hid/0003:28BD:0907.*/rdesc", and then sudo evtest for the pen interface.

Kirtai commented 5 years ago

Done. I noticed that this time evtest shows two mouse devices and no stylus & that the frame keys work until the pen touches the tablet at which point everything stops working. evtest shows nothing at all for the stylus.

I'm going to try the windows/wireshark thing with the laptop I've been testing this with. I've been meaning to do this for some other hardware I have anyway. Anything I should be particularly aware of?

debug.txt dmesg.txt

Kirtai commented 5 years ago

Here's a windows wireshark capture of plugging in the tablet, moving the stylus and pressing the frame buttons. (some of the frame buttons opened menus, I don't know if they came through.)

If you need more details, just let me know.

btw, there are two drivers on their site. One stable, one experimental. I used the stable version.

windows.pcapng.zip

Kirtai commented 5 years ago

Do you require any more information or traces?

spbnick commented 5 years ago

Thank you, @Kirtai, but this is enough for now. I approached this a couple times and have some ideas what to do, but I need more time to handle it. At the moment my main concern is contributing the current driver to the upstream kernel and that will take a while.