<p dir="ltr">Wow, thanks, Hans! This should be really useful. I'll take a closer look later today.</p>
<br><div class="gmail_quote"><div dir="ltr">On Wed, 17 Jan 2018, 09:57 Hans de Goede, <<a href="mailto:hdegoede@redhat.com">hdegoede@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Sébastien and Igor,<br>
<br>
I too have an Elan fingerprint reader tucked away in a corner<br>
of my touchpad, my model is: 04f3:0c16 .<br>
<br>
Since I've a contact inside Elantech from my work on touchpads,<br>
I've been communicating with them to get some specifications<br>
and they have provided me with some command reference info,<br>
which I'm allowed to share!  :<br>
<br>
<a href="https://fedorapeople.org/~jwrdegoede/elan-fingerprint/" rel="noreferrer" target="_blank">https://fedorapeople.org/~jwrdegoede/elan-fingerprint/</a><br>
<br>
Unfortunately I have not yet had time to look at supporting<br>
my own reader and it does not look like I will have time for<br>
this soon. Still this should be helpful for you and Igor.<br>
<br>
Note that in calibration mode you are supposed to wait for the<br>
reader to give a certain reply rather then try X times.<br>
<br>
While I still hoping to have time for this soon I did ask<br>
some questions to clarify some things from the docs I got,<br>
the answers to which might be helpful:<br>
<br>
1) Should the commands be executed in the order listed?<br>
[ELAN] : No, they are not sequence command.<br>
        I think "Get image data(0x0009)" is the most important command for your developing.<br>
<br>
2) The last 2 steps / commands get reg data / set reg are not exactly clear, do I need those at all?<br>
[ELAN] : No, they are used for control-register read/write. You don't need them, it's internal usage.<br>
<br>
3) How should I get the actual image data when I'm done with the pre-scan polling?<br>
[ELAN]: You can use "get Image command ( 00 09)" to get Image data. (BTW, it's the ADC value, not offset value)<br>
        Please refer to Pre_Scan_flow.pdf for more information.<br>
<br>
Sébastien, question, are you using yours in swipe mode, like Igor is?<br>
<br>
Regards,<br>
<br>
Hans<br>
<br>
<br>
<br>
On 16-01-18 17:09, Igor Filatov wrote:<br>
> Hi Sebastien,<br>
><br>
> Thanks for your work. Please try<br>
> <a href="https://github.com/iafilatov/libfprint/commit/fec2a1f3cffca1b1da2f9e379745db344bab2ab5" rel="noreferrer" target="_blank">https://github.com/iafilatov/libfprint/commit/fec2a1f3cffca1b1da2f9e379745db344bab2ab5</a><br>
> and see if it works for you. Also please tell me if you don't want<br>
> your email mentioned in the header.<br>
><br>
> 2018-01-16 13:37 GMT+02:00 Sébastien Béchet <<a href="mailto:sebastien.bechet@osinix.com" target="_blank">sebastien.bechet@osinix.com</a>>:<br>
>> Hello Igor,<br>
>><br>
>> On 2018-01-15 17:38, Igor Filatov wrote:<br>
>>><br>
>>> I don't quite understand what happens though. You've replaced a number<br>
>>> of stages by plain image read commands (CALIBRATE, CAPTURE_START,<br>
>>> DEACTIVATE) which don't seem to do anything but read and discard the<br>
>>> image. Maybe it's fine to not do anything at all at those phases? My<br>
>>> scanner needed to "scan the air" a few times for calibration and such<br>
>>> reads always follow other specific commands (0x4023, 0x4024). Did you<br>
>>> try to just skip the reads instead?<br>
>><br>
>><br>
>> It is working when we skip the "scan the air" read command. Nevertheless the<br>
>> binary driver abuses the read: there must be a good reason? Do you think we<br>
>> can avoid calibrate_states?<br>
>><br>
>>> Do 0903 and 0c03 have leds? If they do, how do you turn them on and off?<br>
>><br>
>><br>
>> - No LED for 04f3:0903. Device is integrated with the trackpad.<br>
>>    See here :<br>
>> <a href="https://dlcdnimgs.asus.com/websites/global/products/jlHvIhXRAPm1WpRr/V1/images/main/response.png" rel="noreferrer" target="_blank">https://dlcdnimgs.asus.com/websites/global/products/jlHvIhXRAPm1WpRr/V1/images/main/response.png</a><br>
>> - I don't know for 04f3:0c03. Konata?<br>
>> - BUT i have a good news: it seems 0x0b working. The bugframesup30.diff bug<br>
>> misled me (this is a _must_ patch)<br>
>><br>
>>> Also the orientation. IIRC 0903 is square. Do you swipe the finger on<br>
>>> it? Square sensors could cause problems because it's impossible to<br>
>>> know how they are oriented relatively to the user. Stitching of frames<br>
>>> could fail if the assumptions in the driver are wrong.<br>
>><br>
>><br>
>> I tried examples / img_capture this morning. The orientation is good for<br>
>> 04f3:0903.<br>
>> Konata, can you try for 04f3:0c03?<br>
>><br>
>> Igor, do you think i can try to adapt POC to orginal driver? What is the<br>
>> best solution?<br>
>><br>
>> What do you think about this patch? Last problem for me is ELAN_FRAME_MARGIN<br>
>><br>
>> Bye<br>
><br>
><br>
><br>
</blockquote></div>