-
Notifications
You must be signed in to change notification settings - Fork 173
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
Huion HS610 support? #275
Comments
I am also curious about this. I managed to get my new Huion HS610 to work well after compiling this driver and adding a .conf file as per older instructions for H610. Pen, pen buttons and pressure detection works great. The buttons on the pad, however, do nothing. The problem seems to be that the pad is not detected. Running
I don't know what the eraser is for since the device doesn't seem to feature one. For the H610, people previously reported getting something like |
Oh, I should probably add that I had to create my own 50-huion.conf file. (Again, as per instructions from a 2016 thread). Without that the tablet did nothing despite latest drivers being installed (tried both v9 and latest source). |
Hey all. I just picked up one of these Huion HS610 tablets and the basic pen functionality seems to work well with current version of digimend. I haven't been able to get anything from the frame buttons or dials yet, but I may have not configured things correctly. Like @Imerion said, you may have to create a configuration file for it. Mine is in
I also went through and attempted to collect some diagnostics, because why not. Hopefully they'll be useful for improving support. Feel free to ping me if you need anything else tested or redone. descriptors.txt pen_coords.txt The frame dial and button diagnostics didn't output anything, so let me know if there is anything further I can do or test. I'd love to help get all of this stuff working. Thanks! |
Thank you for the diagnostics, @emmetoneillpdx. This seems to be something new from Huion: they're using a new product ID this time. As such, the DIGImend kernel driver wouldn't actually handle it, and there's no use installing it as is. I see that the tablet responds to uclogic-probe, which is good. Could you run uclogic-probe, and then, without reconnecting your tablet or rebooting, collect the pen diagnostics again? Frame controls would also be useful. |
You're welcome, Nick. Thanks for all the great work you do.
Huh. The basic functionality (pen coords, pen tilt, and pen buttons) seemed to be working fine for a while after making the configuration file mentioned above,
Sure thing, here you go: probe.txt By the way, this tablet's frame buttons are all on one side, with six (2col x 3row) on top, one in the middle of the dial, and another six (2col x 3row) on the bottom. I pressed them in left-to-right, top to bottom order, starting with the top six, then the dial button, then the bottom six. Also, there are 16 "soft buttons" just above the drawing area, which I think are activated by tapping them with the pen. Should I also capture the diagnostics for those? |
If there is need for any other diagnostics or tests for this particular tablet, I'm happy to help as well! |
Thanks, @Imerion, this seems to be enough for the start. One question, though: does it have a touch dial, or a physical wheel? |
Touch dial. Huion has a good image of the button layout here: https://www.huiontablet.com/media/catalog/product/cache/1/image/450x450/9df78eab33525d08d6e5fb8d27136e95/2/_/2_11_8.jpg |
Thank you. Then that explains the touch dial having absolute coordinates and a separate report for taking the finger off. Once we get that working, I can make the dial button work and research how to make the touch dial work with the Wacom drivers. |
Fantastic, thanks! Your work is really really appreciated! Will try it in the coming days and report back. |
I tried the driver now, and it works well without the need for the extra config file! That is, pressure sensitivity and the buttons on the pen. "xsetwacom --list" still only gives:
So I have no way to set the buttons yet. But perhaps that is the next step? Just tell me if any more diagnostics can be helpful and I will run them. :) |
Glad to hear that something works :) However, the buttons should've worked as well. For the start please post the |
Argh, of course I meant |
Oh, sorry! I might have messed up somewhere. I downloaded the archive and did "make" and then "make install". Perhaps I should have removed the old one somehow? I thought that wasn't necessary since this was a new module. I did remove my modified "50-huion-hs610.conf" though. Here is "sudo modinfo hid-uclogic":
|
I would recommend using Anyway, I noticed a problem with the code which prevented the driver from binding to the tablet. Could you please redownload it from the same location, reinstall, and try again? Thank you. |
Awesome, now it works! :D "xsetwacom --list" gives:
I can set the first 8 buttons. (Six above the wheel, two below). The final four do nothing when testing with "xinput test "HUION Huion Tablet Pad pad". |
This sounds better. Could you post the |
Here you go: |
Thank you, this looks correct. Could you now post the contents of /var/log/Xorg.0.log after (re)connecting the tablet, or booting with it connected? |
Sorry for the delay, here you go: This is for booting with the tablet connected. |
Everything looks correct. Strange. If you're sure you get nothing from those extra buttons, please post which exact version of Ubuntu you're using and I'll try it with another 12-button tablet. |
I am so sorry, it does work! I had used the wrong numbers in my config file and that is why "evtest" didn't show anything while "xinput test" did. I'm really sorry for taking your time, but I can at least happily confirm that all 12 buttons and both buttons on the pen works perfectly! If I can help with anything more for this or similar, just tell me. I really want to help since you work so hard on this. And I will be more careful in the future! :) |
Hi @Imerion, sorry didn't have the time nor energy to continue with your tablet last weekend, but am looking at it right now. It would need a bit of work to get the touch dial supported, but I have a rough plan now. Meanwhile, could you please run |
Hi @spbnick , I also own this tablet and appreciate your work! I added the dump for the clockwise rotation. |
Thanks a lot, @soulsplit! It looks that the coordinates increase counter-clockwise, which is opposite the Wacom's direction. So I'll have to flip it. |
@spbnick No hurry at all, the main functionality works great after all. Would you need a dump from me as well for the dial? |
This is only what I get, nothing relevant:
|
@leiserfg, actually forcing a protocol seems like a good idea to me. Libwacom wouldn't have anything to do with it, but it would be good if we could just force the protocol in xorg.conf. Not sure if @jigpu would approve, but I'll see if I can craft a patch supporting that for xf86-input-wacom today. |
@freebreix, strange that you don't get anything in dmesg, but check this out: https://unix.stackexchange.com/a/543580/40142 |
Thanks for the help, I managed to fix all issues by disabling Secure Boot in my BIOS. |
No luck digging around the wacom driver and finding a spot to force the protocol. Trying to switch the touch controls to the libinput driver. |
Spent some time playing with HID report descriptors, trying to make libinput accept the device without much luck. @whot, what would xf86-input-libinput need from an event device to accept a touch scroll wheel input from it, with proximity? |
ftr, xf86-input-libinput is just the shim between libinput and the X server, so the best debugging tool is For the touch ring we currently only have the Wacom implemention. That one is a bit quirky but since it was the only one to date, that's what we have :) edit: if you have something that looks like it should work but doesn't, point me to an |
Thank you very much, Peter! I think I figured the protocol out alright, and the Wacom driver worked with it until recently, when it started requiring a particular VID:PID pair to enable it. That's why I'm trying to make libinput work :) However, the main problem is I can't make the driver recognize my device as one with such a wheel (even though it works with Wacom). So my question is rather what kind of parameters/axes/buttons/etc should the device have before its ABS_WHEEL/ABS_MISC inputs are considered by libinput? I'm converting the orientation to west-zero in the kernel, for touch rings, but obviously not touch strips, which are reported in the same way. I would not ask for quirking the Huions myself, I have enough quirks in the kernel and wouldn't wish it on anyone :) I'll try to use the debug tools you recommend, thank you, and will try to tease out what kind of device is needed, unless you can tell me, of course :) |
A few ideas:
those should be the only two that matter, a quick peek shows there's no actual check for |
Thank you, @whot! I managed to make libinput to take my device seriously by adding an udev rule:
I was then able to drop all the fake inputs from my report descriptor (and thus event codes from my evdev device) I previously used to coax both libinput and wacom into handling the device appropriately. I now have
However, no applications react to these events. Scrolling doesn't work. I suspect it's because there are no corresponding press/release events for buttons 4 and 5. At least this is what the wacom driver does. I tried to make the libinput driver handle the touch ring on my Wacom Intuous, and it does the same - doesn't send scroll buttons, only the valuator. How do I make scroll work with libinput (1.12.6) and xf86-input-libinput (0.28.2) for those touch rings? |
hmm, that is, simply said, outside the kernel driver's ability. If you're on GNOME you should be able to bind the touch ring to scrolling (which will then use XTest or mutter virtual input devices in Wayland). But there's no built-in feature for that in the xorg libinput driver. and definitely not in libinput. I'm not really keen on adding this to libinput itself because it opens a can of worms I'd rather have in the compositor. Because of the age of the driver and it's quirks I'm still recommending to use the wacom driver under X anyway. The libinput driver is good enough for most cases, but some applications may actually require the specific wacom behaviour. |
I see, thank you, @whot. Unfortunately the Wacom driver has put support for touch rings under condition of specific VID:PID in linuxwacom/xf86-input-wacom@3657396, AFAIK. @jigpu, do you think that could ever be relaxed? To both of you, have you ever considered documenting this "protocol" so that we have a common reference of how things should work between the kernel and the userspace, for all these cases? I.e. describing the required event codes, device name patterns, and so on? |
I think a good way to work around the vid/pid restriction is to add libwacom to the driver. Where libwacom tells you the device has a ring, there's no reason not to believe it (that's what libinput does too).
no yet, mostly because so far (afaict) Wacom devices were the only ones that had rings, quirky as their support is. it's not necessarily the way you'd implement it afresh either, but things were different 15 years ago. our option is either to make all devices behave like wacom devices or figure out what the "proper" way is for rings to work. but given the vendor support for non-wacom tablets I'm not hedging my bets that anything will be followed by anyone but ... well, you :) |
Alright, thank you, Peter. This has dragged on for too long, so I'm bumping this issue to the next release and then will think about what to do with it. |
Hey @spbnick, thank you so much for your work! I'm currently considering buying the HS610 for its wheel. However, since it's not supported yet, I'm considering buying the H950P instead. So here is a tiny but probably annoying question for you: Do you have a rough estimate about the v11 release date? A very course answer like "several weeks", "a few months", "several years", or "really no idea" would already help me a lot with my decision. Thank you! |
Hey again. Has anyone had any luck with the tilt functionality of this tablet? I thought (and wrote) that it was working before, but I can't seem to get it to work at all now... |
Do you mean rotation with "tilt"? I have tried with a hs611 and I get the following:
and after running
Perhaps I'm doing something wrong? Newbie here. |
"tilt" usually refers to the stylus detecting the physical tilt angle (i.e. is the pen vertical or tilted towards a specific direction). "rotation" refers to the physical tablet being rotated - think landscape to portrait. |
Just installed latest master, tag: v10, on Gentoo (testing), the HS610 doesn't register fully. Unplugging and plugging back in shows the following:
Latest packages installed.
After messing about, installing the wacom kernel module and dynamic debugging, it seems there are issues with unplugging and plugging the tablet back in. |
Here's a log of unplugging the tablet and removing/inserting the module. The gaps in the log are where the module or the tablet was removed.
|
For the record, I ended up doing my own small user-level driver by using https://gitlab.com/interception/linux/tools to grab the ring device and emulate a mouse that only scrolls. |
Hi, can you show an example of how you use it? thank you |
I added a small README, hope it's helpful. |
great job, I have noticed only 2 missing features (touch ring and touch pad), maybe some missing configuration.
repo on commit b6b7b29 . |
Does it exist? If not, what's the next step?
The text was updated successfully, but these errors were encountered: