From: willowswaving@tutamail.com
To: Linux Input <linux-input@vger.kernel.org>
Cc: Jikos <jikos@kernel.org>, Bentiss <bentiss@kernel.org>
Subject: Re: FWD: [RFC] HID: uclogic: Add support for Xencelabs Pen Display (28bd:520d) and request for switch-to-vendor-mode sequence
Date: Sat, 7 Nov 2026 13:03:12 +0100 (CET) [thread overview]
Message-ID: <P5psz0r--F-9@tutamail.com> (raw)
In-Reply-To: <P5pmaU5--J-9@tutamail.com>
> Subject: Re: [RFC] HID: uclogic: Add support for Xencelabs Pen Display (28bd:520d) and request for switch-to-vendor-mode sequence
>
> Hello,
>
>
> I am writing to send a friendly ping regarding the support for the Xencelabs Pen Display (28bd:520d). I understand you are very busy, and I just wanted to check if there is any update or if there is any additional information I can provide to help move this forward.
>
>
> The device is still available for testing. I would be happy to try any patches or collect further USB traces if needed.
>
>
> Thank you for your time.
>
>
> Best regards,
>
> Willows
>
> 2026/10/18 17:13 来自 willowswaving@tutamail.com:
>
>>> Hello,
>>>
>>> I would like to report a missing device support in the hid-uclogic
>>> driver, and ask for guidance on how to properly add it.
>>>
>>> Device information
>>> ------------------
>>> Name: Xencelabs Pen Display
>>> Vendor ID: 0x28bd (Hanvon Ugee / XP-Pen)
>>> Product ID: 0x520d
>>> Firmware: 20250121(230322)
>>> Model: UG902_LPH2412_P10
>>>
>>> Problem
>>> -------
>>> The device is not handled by hid-uclogic. With hid-generic, the device
>>> is registered only as a mouse and no pen events (ABS_X, ABS_Y,
>>> ABS_PRESSURE, ABS_TILT) are reported to userspace.
>>>
>>> When I add the device ID to hid-uclogic-core.c, the driver binds, but
>>> the resulting interface is still a mouse. evtest shows no pen events.
>>> This suggests the device is still in "firmware mode" and never gets
>>> switched into the vendor reporting mode that exposes the pen interface.
>>>
>>> Key observations from testing
>>> -----------------------------
>>> 1. lsusb reports only one interface (bNumInterfaces = 1, interface 0,
>>> HID class, mouse). It has only two interrupt endpoints:
>>> - 0x81 (IN, 64 bytes)
>>> - 0x01 (OUT, 64 bytes)
>>> Note: There is NO endpoint 0x03, which is the endpoint used by
>>> uclogic_ugee_v2_probe_endpoint in hid-uclogic-params.c. Any attempt
>>> to send magic bytes to 0x03 fails with "Invalid endpoint address".
>>>
>>> 2. Reading the string descriptor at index 0x64 under LANGID 0x0409
>>> successfully returns a 14-byte binary blob (13 bytes of content).
>>> Raw HEX: 0e03289a78e60300ff1fd8130100
>>> (Other indexes return normal strings like the serial number and
>>> "hanvon ugee Tech"). Reading index 0x64 does NOT switch the device.
>>>
>>> 3. Sending the UGEE v2 magic bytes (02 b0 04 00 00 00 00 00 00 00)
>>> via SET_REPORT (Feature 0x02, Output 0x02, Feature 0x03) returns
>>> success, but the device never re-enumerates.
>>>
>>> 4. A vendor-specific control request (bRequest 0xb0, wValue 0x0402)
>>> times out.
>>>
>>> 5. Note: Sending unexpected control transfers to this device can cause
>>> the USB HID interface to hang. It requires a complete power cycle
>>> (unplugging USB and power) to recover.
>>>
>>> Request
>>> -------
>>> Could someone with access to the Xencelabs USB documentation, or
>>> someone who has reverse-engineered the 520d, share the correct
>>> sequence to switch this device into vendor mode?
>>>
>>> Specifically:
>>> - Is the 0x64 string descriptor read the right trigger, or is a
>>> specific control transfer required?
>>> - If a control transfer is needed, what is the correct bRequest,
>>> wValue, wIndex, and endpoint?
>>> - Are there known quirks for this device?
>>>
>>> If a capture from the Windows driver is needed, I can provide one.
>>> If you have any hints, I will be happy to prepare a proper patch
>>> with hid-uclogic-params.c changes and re-test.
>>>
>>> I am attaching the text files with:
>>> - lsusb -v output for 28bd:520d
>>> - the raw HID report descriptor (usbhid-dump)
>>> - the string descriptor enumeration (showing 0x64)
>>> - dmesg logs showing the binding behavior.
>>>
>>> Thank you very much for your time.
>>>
>>> Best regards,
>>> Willows
>>>
prev parent reply other threads:[~2026-11-07 12:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-17 3:02 [RFC] HID: uclogic: Add support for Xencelabs Pen Display (28bd:520d) and request for switch-to-vendor-mode sequence willowswaving
2026-10-18 9:13 ` FWD: " willowswaving
[not found] ` <P5pmaU5--J-9@tutamail.com>
2026-11-07 12:03 ` willowswaving [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=P5psz0r--F-9@tutamail.com \
--to=willowswaving@tutamail.com \
--cc=bentiss@kernel.org \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox