Skip to content
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

General improvements / suggestions thread! #4

Open
jlam55555 opened this issue Jun 14, 2019 · 20 comments
Open

General improvements / suggestions thread! #4

jlam55555 opened this issue Jun 14, 2019 · 20 comments
Labels
discussion Open, undirected discussion and feedback

Comments

@jlam55555
Copy link
Owner

Feel free to leave comments, advice, or questions below. Any feedback is welcome!

@jlam55555 jlam55555 added the discussion Open, undirected discussion and feedback label Jun 14, 2019
@jlam55555
Copy link
Owner Author

jlam55555 commented Jun 15, 2019

Currently working on the first configuration utility! The end result would be a command-line ability that would be able to change the pressure mapping function (i.e., applied physical pressure vs. apparent pressure to programs), rotate/flip the tablet, and perhaps change button functions.

Looked around for a little while to understand how to communicate between user-space and kernel-space, and it seems that sysfs is the best way to go (as opposed to ioctl, /dev, /proc, or netlink) for this purpose, so I'll try that.

(Would be a lot easier if I actually had a tablet at hand...)

@jlam55555 jlam55555 pinned this issue Jun 15, 2019
@artixnous
Copy link

artixnous commented Jun 15, 2019

By the way, do you know of what form the customization curve is? It looks like a power curve (y=kx^n) with fixed endpoints, but is that the case? I'm not too familiar with drawing programs, so advice would be good.

The windows configuration utility offers 3 points to control the pressure interpretation line (didn't poke much around to see if more can be added): start, end and middle, which can be dragged around to change the start-end thresholds and make either straight or curved (exponential or logarithmic). I found that a straight line starting at 0 and yielding max pressure reading at around 3/4 of actual pressure feels most natural, but this is obviously subjective. So, y=4/3*x might be a good candidate.
Another very useful setting is the mapping of the tablet to the screen. By default, the entire tablet surface is mapped to the entire screen. With custom mapping, an on-screen rectangular box can be defined within which the pointer is allowed to move when controlled by the pen/tablet. Otherwise, my hand tends to lift the pen from the surface when it reaches the end of the drawing area in Krita as if I were using a mouse and reached the end of my desk. I also think one can make only a part of the tablet active in the same way, which can offer a similar tablet-screen matching feel.

@jlam55555
Copy link
Owner Author

v1.1! Check out the command-line utility. Orientation, screen mapping, and pressure mapping are available now. They're available in very basic forms right now, but they'll get refined later.

(i.e., screen mapping is in integer percent values, and pressure mapping is choosing out of one of the available functions; see the README)

@artixnous
Copy link

Made a package for it and updated depends and optdepends:
https://aur.archlinux.org/packages/?O=0&K=veikk

@fakedeltatime
Copy link

The mouse2 and mouse3 buttons are reversed, at least based on how I'm used to with other pens as well as how the same pen functioned in Windows. Since some people using this have probably gotten used to it, and option to switch it in the config would be nice.

@jlam55555
Copy link
Owner Author

@fakedeltatime Noted.

And in general, for the last few weeks, I've been carried away with other projects -- sorry. Will continue working on the GUI (currently very buggy) soon.

@rustweaver
Copy link

I just wanted to confirm that this driver works just fine with Veikk A30, I wasn't testing in-depth, just quick doodling, but the pressure sensitivity is working which is what was missing with default linux driver. I will try to do something about the little touchpad that A30 comes with, if I find the time.

@ShapeShifter499
Copy link

I just wanted to confirm that this driver works just fine with Veikk A30, I wasn't testing in-depth, just quick doodling, but the pressure sensitivity is working which is what was missing with default linux driver. I will try to do something about the little touchpad that A30 comes with, if I find the time.

I just got a hold of a A30 through a deal with the company. Was hesitant to accept since I am a Linux user but since I found this driver I said yes. It doesn't come for a few days but in the mean time I might as well set up my computer to get ready.

@rustweaver have you made any progress with getting the trackpad working?

@ShapeShifter499
Copy link

ShapeShifter499 commented Dec 10, 2019

@rustweaver I am running Arch Linux and I just got the A30 tablet. Using default drivers, libwacom, and default settings the tablet appears to work ok including the shortcut buttons and the small side pad. That side pad seems to act like a gesture pad per what it says in the manual. Is it supposed to act like a touchpad to control the mouse? Because right now it works to zoom in and out, but it might be able to be programed so you can preform gestures to trigger shortcuts and such.

EDIT: No sensitivity on default driver, installed this driver using the AUR package and it works now https://aur.archlinux.org/packages/input-veikk-dkms/

@FMHemerli
Copy link

@ShapeShifter499 I own an A50 with similar pad. The touch pad on these tablets work like additional buttons with preset functions/gestures (up, down, left, right and 2-fingers click), not an actual touchpad to control the cursor. @jlam55555's driver works like magic for pressure sensitivity but there's gromgull's fork of this driver for A50 buttons that may work for A30.

For reference, I believe Arch and Manjaro (which I use) default drivers are the same, you can manage to get pressure sensitivity if you use kernel 4.14 or lower (for some reason I'm not eager to understand). I do recommend tho that you stick with jlam55555's veikk-s640-driver

@ShapeShifter499
Copy link

@FMHemerli Currently everything BUT that gesture pad works on @jlam55555 driver. I can set shortcuts fine.

However with stock drivers, everything works BUT the pressure sensitivity. I might try to fiddle around later but I'd rather have the sensitivity work then the little gesture pad if I had to have a trade off. But would be nice to get everything working as intended.

@jlam55555
Copy link
Owner Author

Hi everyone! Sorry for being inactive for so long (this was a helluva semester), but I plan to rework the driver from scratch (with new understanding and inspiration from taking an OS class) and make it more customizable and robust. (And hopefully get a GUI to work too!)

Not sure about the gesture pad, since I have no idea how it works. I may work with @rustweaver or whoever is interested (@ShapeShifter499 or @FMHemerli) in helping out with reading the report descriptors/data packets for those devices. (I just tried to digest some of the HID/USBHID spec, hope to put it to some use.)

Hopefully I'll have an update within the next two or three days with something new! Anyways, happy holidays everyone!!!

@jlam55555
Copy link
Owner Author

jlam55555 commented Dec 30, 2019

Can someone with the gesture pad let me know the output of:

usbhid-dump -d 2feb

and

lsusb -vd 2feb:

(make sure to run as root)

@jlam55555
Copy link
Owner Author

I've pushed the changes onto the v2 branch, and will be primarily working there now -- will merge when stable. I've updated the sysfs interface and made the code a little more modular and extensible for future tablets (similar to what Wacom did, but with some differences, and still subject to change). Still have a lot to do (see the TODOs), but will be working on better documentation in the immediate future.

Again, for anyone with the gesture pad, let me know the output of the above commands.

@nbogie
Copy link
Contributor

nbogie commented Feb 1, 2020

@jlam55555 said:

Can someone with the gesture pad let me know the output of...

Here's the output for both of those for the Veikk A50 which has the gesture pad.

veikk-A50-usbhid-dump-and-lsusb.txt

Very grateful for your work and write-up, thanks!

@jlam55555 jlam55555 unpinned this issue Feb 18, 2020
@profejuanca
Copy link

Hi, the config tool can select a particular display in a multiscreen configuration?

@harish-srini
Copy link

harish-srini commented Jun 14, 2020

Hi @jlam55555:
First of all, thank you for providing the basic driver, works like a charm.
I have bought an A15 pro (on a Ubuntu 18.04 LTS OS), when can we expect to get button and wheel functionalities included in the driver.
I will be glad to help to give any inputs regarding the buttons and wheel!

@ghost
Copy link

ghost commented Oct 18, 2020

@jlam55555
Adding tablet area would be nice

@asl97
Copy link

asl97 commented Nov 5, 2020

@jlam55555 did you know there is a S640v2? I assume the S640v2 just have an updated firmware.

I contacted veikk Tech support and they helped update my S640, and now it support android.

I tested with this driver and it seem to still work the same.

👍 for creating the driver

@jlam55555
Copy link
Owner Author

Will be moving active development of the v3 driver (including button mapping) to a new repo.

See details here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Open, undirected discussion and feedback
Projects
None yet
Development

No branches or pull requests

10 participants