dannytaylor / pinspiroy

linux driver workaround for Huion Inspiroy G10T
MIT License
11 stars 4 forks source link

GUI for configuring settings and bindings #1

Closed Aster-the-Med-Stu closed 6 years ago

Aster-the-Med-Stu commented 7 years ago

Sorry to bother you, but I am not satisfied with the current version yet. I wanna share my opinion on improving this driver.

1.Maybe there is no need to use a Windows VM to get it work. It is possible to detect which driver is the G10T tablet using lsusb. You can ask the user to choose which one is the tablet.

2.As an artist, I have to say it is really unconvenient to use the driver without GUI config. I hope there is a GUI possible in the future.

At last thank you for developing this driver:-)

Sys Info:

System: Host: marchhappy Kernel: 4.10.0-37-lowlatency x86_64 (64 bit gcc: 5.4.0) Desktop: Cinnamon 3.4.6 (Gtk 3.18.9-1ubuntu3.3) dm: lightdm Distro: Ubuntu 16.04 xenial Machine: Mobo: Colorful And Development model: C.A970X X5 v: V14 Bios: American Megatrends v: 4.6.5 date: 07/10/2015 CPU: Quad core AMD Athlon II X4 640 (-MCP-) cache: 2048 KB flags: (lm nx sse sse2 sse3 sse4a svm) bmips: 24003 clock speeds: min/max: 800/3000 MHz 1: 1800 MHz 2: 2300 MHz 3: 1800 MHz 4: 1800 MHz Graphics: Card: Advanced Micro Devices [AMD/ATI] Oland XT [Radeon HD 8670 / R7 250/350] bus-ID: 01:00.0 chip-ID: 1002:6610 Display Server: X.Org 1.19.3 drivers: ati,radeon (unloaded: fbdev,vesa) Resolution: 1920x1080@60.00hz GLX Renderer: Gallium 0.4 on AMD OLAND (DRM 2.49.0 / 4.10.0-37-lowlatency, LLVM 4.0.0) GLX Version: 3.0 Mesa 17.0.7 Direct Rendering: Yes Audio: Card-1 Advanced Micro Devices [AMD/ATI] SBx00 Azalia (Intel HDA) driver: snd_hda_intel bus-ID: 00:14.2 chip-ID: 1002:4383 Card-2 Advanced Micro Devices [AMD/ATI] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series] driver: snd_hda_intel bus-ID: 01:00.1 chip-ID: 1002:aab0 Sound: Advanced Linux Sound Architecture v: k4.10.0-37-lowlatency Network: Card: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169 v: 2.3LK-NAPI port: d000 bus-ID: 03:00.0 chip-ID: 10ec:8168 IF: enp3s0 state: down mac: Drives: HDD Total Size: 1031.3GB (2.0% used) ID-1: /dev/sda model: ST1000DM010 size: 1000.2GB serial: W9A7H89D ID-2: USB /dev/sdb model: v220w size: 31.1GB serial: 5F5508ACB0820C0C-0:0 Partition: ID-1: / size: 150G used: 8.7G (7%) fs: ext4 dev: /dev/sda7 ID-2: swap-1 size: 8.57GB used: 0.00GB (0%) fs: swap dev: /dev/sda8 RAID: System: supported: N/A No RAID devices: /proc/mdstat, md_mod kernel module present Unused Devices: none Sensors: System Temperatures: cpu: 28.5C mobo: N/A gpu: 36.0 Fan Speeds (in rpm): cpu: N/A Repos: Active apt sources in file: /etc/apt/sources.list deb http: //cn.archive.ubuntu.com/ubuntu/ xenial main restricted deb http: //cn.archive.ubuntu.com/ubuntu/ xenial-updates main restricted deb http: //cn.archive.ubuntu.com/ubuntu/ xenial universe deb http: //cn.archive.ubuntu.com/ubuntu/ xenial-updates universe deb http: //cn.archive.ubuntu.com/ubuntu/ xenial multiverse deb http: //cn.archive.ubuntu.com/ubuntu/ xenial-updates multiverse deb http: //cn.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse deb http: //security.ubuntu.com/ubuntu xenial-security main restricted deb http: //security.ubuntu.com/ubuntu xenial-security universe deb http: //security.ubuntu.com/ubuntu xenial-security multiverse Active apt sources in file: /etc/apt/sources.list.d/embrosyn-ubuntu-cinnamon-xenial.list deb http: //ppa.launchpad.net/embrosyn/cinnamon/ubuntu xenial main Active apt sources in file: /etc/apt/sources.list.d/hzwhuang-ubuntu-ss-qt5-xenial.list deb http: //ppa.launchpad.net/hzwhuang/ss-qt5/ubuntu xenial main Info: Processes: 227 Uptime: 13 min Memory: 1620.3/7965.4MB Init: systemd v: 229 runlevel: 5 default: 2 Gcc sys: 5.4.0 Client: Unknown python2.7 client inxi: 2.2.35

dannytaylor commented 7 years ago

Thanks, I appreciate your comments!

  1. This one's a bit tricky. I agree that needing a Windows VM or partition is a big usability issue and I'd like to avoid this, but there are some technical issues that I haven't solved.
    • Huion reuses USB identifiers for several different tablets that they make, so using according to lsusb my Huion H610 is identified the same as my Huion G10T. However the USB traffic that they send to my computer to indicate drawing is different so the same driver that will work with the H610 won't work with the G10T.
    • To add to this problem, by default the device doesn't send all necessary information (I think pressure data was missing) until some code in the official driver "activates" some switch in the wireless adapter. So the official Windows driver is needed to switch the wireless adapter into "full function" mode. It also sends USB traffic differently before and after this activation which means I can't as easily create a one size fits all implementation.
    • Ultimately to solve this I need to find the correct data that the official driver is sending and then emulate it; then the Windows VM won't be needed. Last time I tried solving this I got stumped, but I do think it's the most important improvement I could make to this project.

--

  1. The GUI request is much simpler. I initially made this to see if I could without much planning which is why it's just a couple of messy scripts. I wasn't sure if anyone else would use this, so I basically only made it as configurable as I needed.
    • I don't have any experience with making GUI's with python so I would just need to find time to read up on it and get around to doing it. Not sure if I will, but I see the value in making some sort of interface.

I also might just rewrite this in Lua if I can get some modules working, in which case I'd probably plan around implementing a GUI config and tray icon.

If you're interested fixing tablet issues I'd also take a look at the issue I submitted in the Digimend project here, and also the other project issues and the debug process people have used.

dannytaylor commented 6 years ago

Added the fix for the Windows VM requirement. #3

I added a very simple graphical tool to create different configuration files which can be run with the driver script. It's very basic and a bit sloppy, but it should do the trick. Additional configuration can be done via text editor as before.