-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for XP-Pen Deco Pro M Tablet #366
Comments
I have the Small. They now also have a Bluetooth version of S and M, SW and MW. The XP-Pen Tablet app is...what it is. Using a uclogic probe turned the ring LED red. I was hoping to add this to the libwacom project. |
Hi! I just added support for the XP-PEN Deco Pro Small tablet to the mainline kernel: I don't own the tablet. Instead, I built a modified version of DIGImend and the user who reported the issue tested it for me: Your tablet (XP-Pen Deco Pro M) should be very similar. If you could test the code, I'll add support for it in the kernel as well. Could you test these drivers? First, download the source code: digimend-kernel-drivers.tar.gz In order to install it, you'll need to install the kernel headers:
After extracting the code, cd into the source code and:
You can uninstall it running:
More detailed instructions are available in the DIGImend README file. |
Ooops, I forgot to ping the people who reacted to the first message and won't get notified: @rastislav-janci @OdinVex @yohanboniface @nek0 @fabienengels @BloodyMess @skandalfo @okitoxo @kanashimia Please check my previous message |
@JoseExposito, I've tested it, and it shows my device under xsetwacom list, works in Krita, pressure, et cetera, all buttons too, but the ring and pad do not. I was hoping for a mouse-mode, but that too doesn't work (or is that off out-of-box?). I did need to add my lsusb to my 70-wacom.conf (Linux Mint) so that it would be handled. The name it reports is whacked, wish I could override it: " 9 inch PenTablet" with an extra space at the beginning. I hate closed-source firmware. Edit: Ring and pad works with xppentablet app. |
Hi @OdinVex , thanks a lot for the quick test.
Both the dial (ring) and touchpad should work. If not, something unexpected happened. Could you run While running the command, if you press the tablet buttons or use the dial you should see the events on the terminal. The XP-PEN firmware expose a string indicating the tablet capabilities, including the kind of frame. It could possible that the firmware is not setting a byte as expected.
Is the device working then? Or did you need to tweak some settings or similar? |
I have a ton of devices that interact with libinput all the time, too difficult to sort (hardware developer). As for the ring and pad, it only worked with the xppentablet app *.deb from XP-Pen. If I remove the digimend driver compile from above, I can use the ring and pad. This could be something on my end, I do a ton of libinput and event overrides for so many things. |
Hi!
It is difficult to tell without knowing which kind of frame the driver is setting for your device. Since I imagine you feel confortable coding, you can try to add the following line to static int uclogic_params_ugee_v2_init(struct uclogic_params *params,
struct hid_device *hdev)
[...]
/* Initialize the frame interface */
+ frame_type = UCLOGIC_PARAMS_FRAME_MOUSE;
switch (frame_type) {
case UCLOGIC_PARAMS_FRAME_DIAL:
case UCLOGIC_PARAMS_FRAME_MOUSE:
rc = uclogic_params_ugee_v2_init_frame_dial(&p, desc_params,
ARRAY_SIZE(desc_params));
break;
case UCLOGIC_PARAMS_FRAME_BUTTONS:
default:
rc = uclogic_params_ugee_v2_init_frame_buttons(&p, desc_params,
ARRAY_SIZE(desc_params));
break;
}
if (rc) {
uclogic_params_init_invalid(&p);
goto output;
} I have seen another tablet reporting an invalid Otherwise lets see if somebody else with less devices connected to their computer can test the driver and run Thanks! |
@JoseExposito, Tested, no change as far as mousing goes. XP-Pen Tablet App: I'm hoping the driver can be extended to operate in Mouse-Mode with pressure+/angle. |
Is this worth testing with the Deco Pro MW version? At least when connected via USB? |
@OdinVex :
Ah ok, I misunderstood your first comment. I thought you said that the touchpad (that acts like a mouse) didn't work. However this is a different issue. I seems like from the XP-PEN app it is possible to change the way the pen works (absolute coordinates vs relative coordinates), and the mouse/relative mode doesn't work. I'd need to investigate how that works. I image it sends a packet to the tablet firmware to change the working mode.
That's interesting. I assumed you were using the Medium version of the device, not the Small version. Your device is the same one used by this user: And he got his device fully working. @andigandi it'd be nice. I'm own a Deco Pro SW and hopefully the small and the medium versions should work in a similar way. In order to avoid commenting here, could you create a different bug report, please? Make sure to ping me (@JoseExposito) so I get notified. I'd only need your device model and ID when connected over USB and/or using the USB dongle. The easiest way to find out the device model/ID is to run
|
@JoseExposito, I did, the Ring and Pad do not work as well. :/ I may or may not have once reverse-engineered the XP-Pen Windows software and found abs/rel wasn't controlled by the device, but rather the driver. As for why mine may not work, it could be the various libinput configs, maybe a stray udev, or the xppentablet app. Mind, the Deco Pro S that I have worked out of box with stock Linux Mint kernel, no xppentablet app, et cetera. I just didn't have full control over everything, such as limiting the area on screen to a specific monitor. |
@JoseExposito |
Hi @Danthe-GH , Support for the XP-Pen Deco Pro M has been queued to be released for Linux kernel 6.3: You can try to take those patches and compile your own kernel with them applied. Hopefully, your device should be fully supported. There are multiple guides online explaining how to do it, it changes a bit depending on the distro you are using. |
Thanks for the reply, but I only see support for Deco Pro S (0x0909), Deco Pro Sw (0x0933) and Deco Pro MW (0x0934). |
The XP-PEN Deco Pro M is a UGEE v2 device with a frame with 8 buttons, a bitmap dial and a mouse. Its pen has 2 buttons, supports tilt and pressure. All the pieces to support it are already in place. Add its ID in order to support the device. Link: DIGImend/digimend-kernel-drivers#366 Signed-off-by: José Expósito <[email protected]>
Ah sorry, the names are too similar and I mixed them in my head. Could you test this driver, please? digimend-kernel-drivers.zip. It includes the latest changes from the mainline kernel and support for your tablet. You can follow the instructions available in this comment. I added your tablet ID to the xorg.conf file present in DIGImend, so hopefully you won't need to change your local config.
Does this happen when you touch the tablet with the pen? Or when you touch the circular touchpad present on the left hand side of the tablet? This issue reminds me to https://gitlab.freedesktop.org/libinput/libinput/-/issues/839. The difference is that this user was experimenting issues after using the stylus button. Could you attach the output of |
The kernel side seems to be working as expected. The only problem that I noticed is that the pad udev properties: udev:
properties:
- ID_INPUT=1
- ID_INPUT_KEY=1
- LIBINPUT_DEVICE_GROUP=3/28bd/904:usb-0000:0a:00.3-2 Should include: - ID_INPUT_TABLET=1
- ID_INPUT_TABLET_PAD=1 You can solve it adding your device to libwacom: About the issue with the tablet not responding after using the touchpad, it'd be interesting to test it again after adding your device to libwacom. Also, if you could run For reference, this is a simplified overview about how libinput's tools work:
You output of Anyway, I'd try to add your device to libwacom, as it might fix the issue. |
I wold like to properly use XP-Pen Deco Pro tablet. Is there work being done on the XP-Pen Deco Pro Medium? The tablet, touchpad and stylus are recognized, and I can draw with pressure in gimp and krita, but I cannot assign any buttons, the wheel or the touchpad. Here are the debug outputs:
XP-PEN_DecoPro-descriptors.txt
XP-PEN_DecoPro-hid_report_descriptors.txt
XP-PEN_DecoPro-keys_top_left_to_bottom_right_bottop_rows.txt
XP-PEN_DecoPro-keys_top_left_to_bottom_right_top_rows.txt
XP-PEN_DecoPro-pen_coords.txt
XP-PEN_DecoPro-pen_input_keys.txt
XP-PEN_DecoPro-pen_input_no_touch.txt
XP-PEN_DecoPro-pen_input_touch.txt
XP-PEN_DecoPro-pen_presure.txt
XP-PEN_DecoPro-pen_tilt.txt
XP-PEN_DecoPro-phy_wheel_scrolling.txt
XP-PEN_DecoPro-probe.txt
XP-PEN_DecoPro-touch_pad_circular_scrolling.txt
XP-PEN_DecoPro-touch_pad_left_right.txt
XP-PEN_DecoPro-touch_pad_up_down.txt
The text was updated successfully, but these errors were encountered: