hmaarrfk / Validity91

Reverse engineering the Validity 138a:0091 fingerprint sensor (Dell XPS 15/13 2016-2017 9X50 and 9X60)
BSD 3-Clause "New" or "Revised" License
236 stars 16 forks source link

Output jumps to "Take your finger off." immediately #4

Open dblitt opened 6 years ago

dblitt commented 6 years ago

Fedora 27, XPS 13 9360, 138a:0091 USB ID, Kernel 4.15.8 After running pipenv run python3 prototype.py it immediately outputs:

Put your finger on.
Take your finger off.

and hangs. pipenv run spyder3 and opening the file produces the same results.

git diff of dump.txt: https://paste.fedoraproject.org/paste/o8qX3oRAcBvPuCCsxdEEIw

mirenradia commented 6 years ago

Also getting the same issue after running pipenv run python3.6 prototype.py on Ubuntu 16.04.4, XPS 15 9560, 138a:0091 USB ID, Kernel 4.13.0-38.

Here's my git diff of dump.txt: https://pastebin.com/vuzCX2fC

szbergeron commented 6 years ago

Encountering the same issue here. I'm on an XPS 9560 running Arch, fp USB ID 138a:0091. I installed pipsi from the AUR, pipenv with pipsi, and manually installed tk.

I'm running on kernel 4.15.14-1-ARCH and I don't think I've manually installed any packages that could be contributing here. If any more info would be helpful, just let me know.

Dump.txt diff: https://pastebin.com/hJx9MzvW

Looking through things a bit, in wait_finger_on, self._read_interrupt() is immediately returning 0x02 with no finger on the sensor.

If we can't necessarily rely on responses being consistent, would it be possible to check if a certain capacitance threshhold is reached anywhere on the sensor and only read if it is?

hmaarrfk commented 6 years ago

I think we kinda managed to fix this issue by setting a different hard threshold that worked for all of those that tested the sensor.

I don't think this is the correct solution as different sensors seem to have different average values and variance values. Anyway, nobody seems to have complained in recent weeks.

stephen304 commented 6 years ago

For me (9560) it returns immediately unless I put a threshold above 500. 600 is pretty consistent but 550 sometimes works.

hmaarrfk commented 6 years ago

i see

mike1808 commented 6 years ago

For my Dell XPS 15 9560 only 1250 worked.

hmaarrfk commented 6 years ago

whoa, this is definitely something that needs more work then. Glad to keep this issue open so that hopefully somebody can find a good solution for it.