danielotero / linux-on-hi10

My attempt to provide full Linux support to Chuwi Hi10 Pro
53 stars 10 forks source link

Hi10 Pro stylus, HiPen H2 #16

Open sheldonmaschmeyer opened 5 years ago

sheldonmaschmeyer commented 5 years ago

I have the Hi10 Pro Stylus, HiPen H2, it works in Windows but not Ubuntu 19.04. This is a long shot but, is there a digitizer driver for Linux? The capacitive touch works, the stylus was never as good as Wacom, NTrig or, Windows Surface pen but, it was better than trying to use a capacitive stylus. Since I am no-longer taking courses, this is a minor nuisance.

danielotero commented 5 years ago

For me it just work once I've installed the device firmware (instructions here).

The pen input is very noisy and irregular, but precise enough to do some coarse scrolling.

sheldonmaschmeyer commented 5 years ago

That firmware is only for the capacitive touchscreen, not the electo-magnetic HiPen H2. To get the digitizer to work, I need a firmware for that sensor. I agree the capacitive touch, while multi-touch, is crude and uneven. The pen does not have palm detect (I wore a weight-lifting glove while using it), like other similar styluses, nor degrees of pressure sensitivity but, it is more precise and accurate than the capacitive touch. This is my third PC with an electo-magnetic stylus, this was the worst stylus but, the cheapest. https://www.chuwi.com/product/items/Chuwi-HiPen-H2.html

danielotero commented 5 years ago

I was talking about the pen, as I also have a HiPen H2. And I didn't do anything special to make it work.

samueldr commented 5 years ago

My Hi10 Pro is a HQ64G42170XXXXXX model, so that firmware should, too, be the closed one listed on that page.

For me, the pen doesn't work at all. I am curious whether it is the pen that is different, or something else between our setups. Though, identifying differences in the pen is going to be impossible, as nothing is written on it :/.

Just for verification purposes, what's the sha256sum of the firmware you currently have installed?

danielotero commented 5 years ago

Are you using the silead kernel module? Is calibrated? Does the calibration is similar to mine?

I'm getting the following messages for the module in the kernel ring buffer:

[   11.554398] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[   11.554449] silead_ts i2c-MSSL1680:00: Linked as a consumer to regulator.0
[   11.554454] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[   11.557766] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360808
...
[   13.577841] input: silead_ts as /devices/pci0000:00/808622C1:05/i2c-5/i2c-MSSL1680:00/input/input13

The USB port of the pen doesn't seem like using standard USB protocol, as the kernel detects the connection but fails to communicate with the device. I don't see any other way of checking the device...

Just for verification purposes, what's the sha256sum of the firmware you currently have installed?

307a62d33e96916711c0babc8eb14bbfca3da92b623ed7cc0ce14723750692d6

samueldr commented 5 years ago

The USB port of the pen doesn't seem like using standard USB protocol

I assumed it was charge-only.


Yes, I'm using the silead kernel module. Here's the dmesg output:

[41128.866670] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[41128.866815] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[41128.868638] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360000
[41132.594645] input: silead_ts as /devices/pci0000:00/808622C1:05/i2c-5/i2c-MSSL1680:00/input/input17

Already, the Silead chip ID seems different. Looking at the module source, the chip ID really seems to be something intrinsic to the chip. Though, the chip ID seems unused in the driver.

Most likely, I would hazard a guess that 0x80360808 has something just different enough that 0x80360000 doesn't. That's annoying.

Relatedly, I have found reports online of people saying the HiPen H2 is "just a capacitive stylus", that it "worked on any capacitive screen". Those are not true for my HiPen H2; but does it hold for yours? It may be even more complex to debug in that case.

I have tried using both z8350 firmware.fw files from the firmware repo, the only difference between both seems minor calibration deviations.


@sheldonmaschmeyer what's your dmesg | grep -i silead output after boot? Tried different firmwares?

sheldonmaschmeyer commented 5 years ago

Below is the dmesg log however, in Windows 10, the silead touchscreen driver is separate from the input driver for the stylus (which is similar to a mouse). The USB on the Active electo-magnetic pen (seperate sensor from capacitive) is for charging only. I do not have Window 10 currently installed so, I cannot get the name of the driver nor Windows driver files. The start to get the pen working, get the driver files from Windows.

[   14.399701] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[   14.399745] silead_ts i2c-MSSL1680:00: Linked as a consumer to regulator.0
[   14.399749] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[   14.402875] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360808
[   16.359706] input: silead_ts as /devices/pci0000:00/808622C1:05/i2c-5/i2c-MSSL1680:00/input/input15
danielotero commented 5 years ago

Relatedly, I have found reports online of people saying the HiPen H2 is "just a capacitive stylus", that it "worked on any capacitive screen". Those are not true for my HiPen H2; but does it hold for yours? It may be even more complex to debug in that case.

No, the pen doesn't work on any capacitive touchscreen.

You're also missing the "Linked as a consumer to regulator.0" message. Probably the chip is somehow different from ours. But no clue how to proceed...

sheldonmaschmeyer commented 5 years ago

I agree with @danielotero, the HiPen H2 is not a capacitive stylus but, it is low-quality. It is better than any capacitive styluses I have used but, it is worse than the stylus I used for a Toshiba R20 (best, made by Wacom) and HP Touchsmart TX2 (alright made by N-trig, acquired by Microsoft). So, could not recommend an Hi10 Pro as a tablet for note taking (I do recommend Windows with OneNote; a fantastic application for handwriting notes in classes). However, the HiPen H2 is more precise and accurate than a finger to capacitive stylus so, would be nice if the pen worked in Linux....in computer science, use Linux more. My model is: HQ64G42161205088

samueldr commented 5 years ago

Yes, I said "I have found reports online of people saying" because I found, too, that while not equivalent to a full blown EMR stylus, and lacking pressure, or more fancy features, it worked better than what one would assume from "just a capacitive stylus". Though, I did see people saying that, which I couldn't vouch for.

It would be interesting to see reports from other users, whether it works or not for them, and dmesg output + serial (full or partial).

samueldr commented 3 years ago

:eyes: https://github.com/jwrdegoede/linux-sunxi/commit/c1e765db435cf43c4e593974ac0d8733735d4488

jwrdegoede commented 3 years ago

Upstream/mainline maintainer of the Silead touchscreen_dmi.c info / Silead driver here.

Right I have the H2 pen working on both the Chuwi Hi10 Plus (CWI527) and the Chuwi Hi10 Pro (CWI529)

I need to run some final tests on the Chuwi Hi10 Plus (CWI527) and then I will submit this support upstream.

jwrdegoede commented 3 years ago

As for the questions about how well it works, not really well. The accuracy is good when the pen is near one of the sensing lines embedded in the display (very thin metal wires which you can see if you look carefully) but when it is between 2 lines the accuracy is pretty bad.

Note AFAICT it works the same way in Windows, if you draw a diagonal line in a smooth move you actually get a wavy line because of this.