<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi,</p>
<p><br>
</p>
<p><i>examples/img_capture</i> had the following output (I had to
put my finger on it at some point of time):</p>
<blockquote>
<p>fp:debug [fp_init] <br>
fp:debug [register_driver] registered driver upekts<br>
fp:debug [register_driver] registered driver aes3500<br>
fp:debug [register_driver] registered driver aes4000<br>
fp:debug [register_driver] registered driver aes2501<br>
fp:debug [register_driver] registered driver aes2550<br>
fp:debug [register_driver] registered driver uru4000<br>
fp:debug [register_driver] registered driver vcom5s<br>
fp:debug [register_driver] registered driver upeksonly<br>
fp:debug [register_driver] registered driver aes1610<br>
fp:debug [register_driver] registered driver aes1660<br>
fp:debug [register_driver] registered driver aes2660<br>
fp:debug [register_driver] registered driver vfs101<br>
fp:debug [register_driver] registered driver vfs301<br>
fp:debug [register_driver] registered driver vfs5011<br>
fp:debug [register_driver] registered driver upektc<br>
fp:debug [register_driver] registered driver upektc_img<br>
fp:debug [register_driver] registered driver etes603<br>
fp:debug [register_driver] registered driver vfs0050<br>
fp:debug [register_driver] registered driver elan<br>
fp:debug [find_supporting_driver] driver elan supports USB
device 04f3:0c1a<br>
fp:debug [find_supporting_driver] selected driver elan supports
USB device 04f3:0c1a<br>
Found device claimed by ElanTech Fingerprint Sensor driver<br>
sync:debug [fp_dev_open] <br>
async:debug [fp_async_dev_open] <br>
elan:debug [dev_init] <br>
async:debug [fpi_drvcb_open_complete] status 0<br>
sync:debug [sync_open_cb] status 0<br>
Opened device. It's now time to scan your finger.<br>
<br>
sync:debug [fp_dev_img_capture] to be handled by elan<br>
async:debug [fp_async_capture_start] <br>
fp:debug [generic_acquire_start] action 4<br>
elan:debug [elan_reset_sensor] <br>
elan:debug [elan_dev_reset] <br>
drv:debug [__ssm_call_handler] 0x5618b98974b0 entering state 0<br>
elan:debug [elan_run_cmd] 4011<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_read] skipping read, not expecting anything<br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b98974b0 entering state 1<br>
poll:debug [fpi_timeout_add] in 5ms<br>
poll:debug [get_next_timeout_expiry] next timeout in 0.004979s<br>
poll:debug [get_next_timeout_expiry] next timeout in 0.004964s<br>
poll:debug [get_next_timeout_expiry] first timeout already
expired<br>
poll:debug [handle_timeout] <br>
drv:debug [__ssm_call_handler] 0x5618b98974b0 entering state 2<br>
elan:debug [elan_run_cmd] 4014<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_read] skipping read, not expecting anything<br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b98974b0 entering state 3<br>
elan:debug [elan_run_cmd] 4013<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [fpi_ssm_mark_completed] 0x5618b98974b0 completed with
status 0<br>
elan:debug [reset_sensor_complete] <br>
elan:debug [elan_activate] <br>
elan:debug [elan_dev_reset] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 0<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_run_cmd] 4019<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 1<br>
elan:debug [activate_run_state] <br>
elan:debug [activate_run_state] FW ver 1.66<br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 2<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_run_cmd] 000c<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 3<br>
elan:debug [activate_run_state] <br>
elan:debug [activate_run_state] sensor dimensions, WxH: 144x64<br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 4<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_run_cmd] 402a<br>
elan:debug [elan_run_cmd] skipping for this device<br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 5<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_run_cmd] 0009<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 6<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_save_frame] <br>
drv:debug [__ssm_call_handler] 0x5618b988e110 entering state 7<br>
elan:debug [activate_run_state] <br>
elan:debug [elan_run_cmd] 4024<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [fpi_ssm_mark_completed] 0x5618b988e110 completed with
status 0<br>
elan:debug [activate_complete] <br>
elan:debug [elan_need_calibration] <br>
elan:debug [elan_need_calibration] calibration mean: 7533, bg
mean: 7483, delta: 50<br>
fp:debug [fpi_imgdev_activate_complete] status 0<br>
async:debug [fpi_drvcb_capture_started] <br>
elan:debug [elan_capture] <br>
elan:debug [elan_dev_reset] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 0<br>
elan:debug [elan_run_cmd] 4031<br>
elan:debug [elan_run_cmd] skipping for this device<br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 1<br>
elan:debug [elan_run_cmd] 403f<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 2<br>
fp:debug [fpi_imgdev_report_finger_status] finger on sensor<br>
elan:debug [elan_run_cmd] 0009<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 3<br>
elan:debug [elan_save_frame] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 1<br>
elan:debug [elan_run_cmd] 403f<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 2<br>
fp:debug [fpi_imgdev_report_finger_status] finger on sensor<br>
fp:debug [fpi_imgdev_report_finger_status] ignoring status
report<br>
elan:debug [elan_run_cmd] 0009<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_done] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 3<br>
elan:debug [elan_save_frame] <br>
drv:debug [__ssm_call_handler] 0x5618b988dc70 entering state 1<br>
elan:debug [elan_run_cmd] 403f<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_cb] transfer timed out<br>
drv:debug [fpi_ssm_mark_aborted] error -110 from state 1<br>
drv:debug [fpi_ssm_mark_completed] 0x5618b988dc70 completed with
status -110<br>
elan:debug [capture_complete] <br>
fp:debug [fpi_imgdev_session_error] error 101<br>
async:debug [fpi_drvcb_report_capture_result] result 101<br>
sync:error [fp_dev_img_capture] unrecognised return code 101<br>
sync:debug [fp_dev_img_capture] ending capture<br>
async:debug [fp_async_capture_stop] <br>
elan:debug [elan_deactivate] <br>
elan:debug [elan_dev_reset] <br>
drv:debug [__ssm_call_handler] 0x5618b9897610 entering state 0<br>
elan:debug [deactivate_run_state] <br>
elan:debug [elan_run_cmd] 000b<br>
elan:debug [elan_cmd_cb] <br>
elan:debug [elan_cmd_read] <br>
elan:debug [elan_cmd_read] skipping read, not expecting anything<br>
elan:debug [elan_cmd_done] <br>
drv:debug [fpi_ssm_mark_completed] 0x5618b9897610 completed with
status 0<br>
elan:debug [deactivate_complete] <br>
fp:debug [fpi_imgdev_deactivate_complete] <br>
async:debug [fpi_drvcb_capture_stopped] <br>
sync:debug [capture_stop_cb] <br>
image capture failed, code -22<br>
sync:debug [fp_dev_close] <br>
elan:debug [dev_deinit] <br>
elan:debug [elan_dev_reset] <br>
async:debug [fpi_drvcb_close_complete] <br>
sync:debug [sync_close_cb] <br>
fp:debug [fp_exit]</p>
</blockquote>
<p>I guess this means that it works?</p>
<p><i>elanfp.c</i> however had the output (after I properly
installed / executed it):</p>
<p> Device with vid 4f3 pid c1a found.<br>
Error 5</p>
<p>Which seems to mean, that the reader couldn't be opened?</p>
<p><br>
</p>
<p>Regards <br>
</p>
<p>Timo<br>
</p>
<br>
<div class="moz-cite-prefix">On 27.01.2018 08:47, Igor Filatov
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAFo91c_+hdLpnXWSJ2=00S-6XLuU3rr2j9acNqrDbA_5mTes4w@mail.gmail.com">
<meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
<p dir="ltr">Hi Timo,</p>
<p dir="ltr">Please post the output of the command(s) that
fail(s). For the driver please run ./autogen.sh, then make, then
examples/img_capture.</p>
<br>
<div class="gmail_quote">
<div dir="ltr">On Sat, 27 Jan 2018, 02:32 TeEmZe, <<a
href="mailto:timo@teemze.de" moz-do-not-send="true">timo@teemze.de</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">
<div lang="en-DE">
<div class="m_-3557579776953783527WordSection1">
<p class="MsoNormal"><span lang="EN-GB">Hi,</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">I tried running
elanfp.c to get the device specifications Igor wanted,
however I got back a <i>Segmentation fault </i>signal.
Is it me who’s doing something wrong there?</span></p>
<p class="MsoNormal"><span lang="EN-GB">I also tried
compiling / installing the driver from GitHub.
However, when I run <i>./configure</i> I get back the
message <i>No such file or directory</i>. How should
I compile this project?</span></p>
<p class="MsoNormal"><span lang="EN-GB">I’d love to test
the current state of the driver, but I’ll need some
advice here.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">Regards,</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span lang="EN-GB">Timo</span></p>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span
lang="EN-US"> Igor Filatov [mailto:<a
href="mailto:ia.filatov@gmail.com" target="_blank"
moz-do-not-send="true">ia.filatov@gmail.com</a>] <br>
<b>Sent:</b> Tuesday, 23 January 2018 22:59<br>
<b>To:</b> Hans de Goede <<a
href="mailto:hdegoede@redhat.com" target="_blank"
moz-do-not-send="true">hdegoede@redhat.com</a>>;
<a href="mailto:konachan.700@gmail.com"
target="_blank" moz-do-not-send="true">konachan.700@gmail.com</a>;
Sebastien Bechet <<a
href="mailto:sebastien.bechet@osinix.com"
target="_blank" moz-do-not-send="true">sebastien.bechet@osinix.com</a>>;
TeEmZe <<a href="mailto:timo@teemze.de"
target="_blank" moz-do-not-send="true">timo@teemze.de</a>><br>
<b>Cc:</b> <a
href="mailto:fprint@lists.freedesktop.org"
target="_blank" moz-do-not-send="true">fprint@lists.freedesktop.org</a></span></p>
</div>
</div>
<div lang="en-DE">
<div class="m_-3557579776953783527WordSection1">
<p class="MsoNormal"><span lang="EN-US"><br>
<b>Subject:</b> Re: [fprint] elan patch + poc 0x903
and 0x0C03</span></p>
</div>
</div>
<div lang="en-DE">
<div class="m_-3557579776953783527WordSection1">
<p class="MsoNormal"><span lang="en-DE"> </span></p>
<div>
<p class="MsoNormal"><span lang="en-DE">I've updated the
driver to support the devices known so far. Please
see if it works for you. Please send me your logs if
not. I've enabled all commands for all devices
(except 0x4031 which I've enabled only on my 0x0907
-- no idea what it does, but the response is 0x01). </span></p>
<div>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE">There's a bit
mask in each command which you can use to
enable/disable commands for a particular device.</span></p>
<div>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE">As for
calibration, the driver doesn't expect 0x03
because not all devices seem to return 0x03 or
0x01. Instead it will retry *only* if the
response is 0x03 and until it's different.</span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE">I've enabled
reset & fuse load for my device. Although I
haven't seen it done by the original driver, it
doesn't seem to hurt. So please see if it cause
problems for you. Let's disable it only for
devices where it does.</span></p>
<div>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE"><a
href="https://github.com/iafilatov/libfprint"
target="_blank" moz-do-not-send="true">https://github.com/iafilatov/libfprint</a></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="en-DE"> </span></p>
<div>
<div>
<p class="MsoNormal"><span lang="en-DE">On
Fri, Jan 19, 2018 at 3:33 PM TeEmZe <<a
href="mailto:timo@teemze.de"
target="_blank" moz-do-not-send="true">timo@teemze.de</a>>
wrote:</span></p>
</div>
<blockquote>
<p class="MsoNormal"><span lang="en-DE">Hi,<br>
<br>
Sadly I won't be able to get the data
until next week, as I currently don't have
access to the Laptop. I'll notify you as
soon as I manage to get the data.<br>
<br>
Regards,<br>
<br>
Timo<br>
<br>
-----Original Message-----<br>
From: Hans de Goede [mailto:<a
href="mailto:hdegoede@redhat.com"
target="_blank" moz-do-not-send="true">hdegoede@redhat.com</a>]<br>
Sent: Thursday, 18 January 2018 16:14<br>
To: Sebastien Bechet <<a
href="mailto:sebastien.bechet@osinix.com"
target="_blank" moz-do-not-send="true">sebastien.bechet@osinix.com</a>>;
Igor Filatov <<a
href="mailto:ia.filatov@gmail.com"
target="_blank" moz-do-not-send="true">ia.filatov@gmail.com</a>><br>
Cc: TeEmZe <<a
href="mailto:timo@teemze.de"
target="_blank" moz-do-not-send="true">timo@teemze.de</a>>;
<a href="mailto:konachan.700@gmail.com"
target="_blank" moz-do-not-send="true">konachan.700@gmail.com</a>;
<a
href="mailto:fprint@lists.freedesktop.org"
target="_blank" moz-do-not-send="true">fprint@lists.freedesktop.org</a><br>
Subject: Re: [fprint] elan patch + poc
0x903 and 0x0C03<br>
<br>
Hi,<br>
<br>
On 18-01-18 16:03, Sebastien Bechet wrote:<br>
> Thank you Igor. Hans, you can try
again with last version.<br>
<br>
Not tested, but looking at the code, it
will loop in the calibration, my 2 devices
both need a:<br>
<br>
if (result == 0x03) break;<br>
<br>
Directly after the:<br>
<br>
printf("Calibration Status: 0x%x\n",
result);<br>
<br>
Line, currently the code only checks for
result == 0x03 for the result of the
get_cmd_status command, while it should
check (for my devices) the result of the
get_cmd_calibration command.<br>
<br>
Regards,<br>
<br>
Hans<br>
<br>
<br>
<br>
><br>
> I also tried to remove reset+fuseload
then calibration not working<br>
> anymore for 0x0903. It seems it is a
part for calibration (same pdf<br>
> file for reset _and_ calibration or
.... reset _then_ calibration?).<br>
><br>
> <a
href="https://github.com/sbechet/elanfp"
target="_blank" moz-do-not-send="true">https://github.com/sbechet/elanfp</a><br>
><br>
> Konata and timo, can you give us
width, height, firmware version and<br>
> calibration status using elanfp.c
please?<br>
<br>
<br>
><br>
><br>
><br>
> Le jeudi 18 janvier 2018 à 14:02
+0000, Igor Filatov a écrit :<br>
>>> square and seems to contain
the image 3 times<br>
>> Could be because convert is
hardcoded at 96x96.<br>
>><br>
>> On Thu, 18 Jan 2018, 12:04 Hans
de Goede, <<a
href="mailto:hdegoede@redhat.com"
target="_blank" moz-do-not-send="true">hdegoede@redhat.com</a>><br>
>> wrote:<br>
>>> Hi,<br>
>>><br>
>>> On 18-01-18 10:48, Sébastien
Béchet wrote:<br>
>>>> On 17-01-18 19:21, Igor
Filatov wrote:<br>
>>>>> We didn't have the
spec before so I had no idea how different<br>
>>> devices worked. Especially
given that some commands which worked<br>
>>> fine for me produced errors
one other devices. Now that we have the<br>
>>> docs I'll work on adapting
the driver. Naturally, any info you have<br>
>>> is welcome and so is any help
with testing.<br>
>>>><br>
>>>> I have done the
[synthesis](<a
href="https://github.com/sbechet/elanfp/blo"
target="_blank" moz-do-not-send="true">https://github.com/sbechet/elanfp/blo</a><br>
>>> b/master/README.md) about all
informations we have a prepare<br>
>>> questions for KT.<br>
>>><br>
>>> My 0x0c16 id reader has
firmware version 1.56, resolution 96x96<br>
>>><br>
>>> I also have bought a
stand-alone USB reader for when I would
find<br>
>>> time to work on this, this
has an usb-id of: 0x0c26.<br>
>>><br>
>>> After aking these changes:<br>
>>><br>
>>> --- elanfp.c~ 2018-01-18
10:58:59.919912347 +0100<br>
>>> +++ elanfp.c 2018-01-18
11:01:50.346280668 +0100<br>
>>> @@ -71,7 +71,8 @@<br>
>>>
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0903) ||<br>
>>>
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0907) ||<br>
>>>
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0c03) ||<br>
>>> -
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0c16) ) {<br>
>>> +
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0c16) ||<br>
>>> +
(desc.idVendor == 0x04f3) &&
(desc.idProduct ==<br>
>>> 0x0c26) ) {<br>
>>> r0 = 0;<br>
>>>
printf("Device with vid %x pid %x
found.\n",<br>
>>> desc.idVendor,
desc.idProduct);<br>
>>> break;<br>
>>> @@ -156,7 +157,7 @@<br>
>>> printf("CMD Get
Image Size sent\n");<br>
>>> }<br>
>>> r0 =
libusb_bulk_transfer(handle, BULK_EP3_IN,
img_buf, 4,<br>
>>> &transferred, 0);<br>
>>> - printf("Width x height =
%dx%d\n", img_buf[0], img_buf[2]);<br>
>>> + printf("Width x height =
%dx%d\n", (unsigned char)img_buf[0],<br>
>>> (unsigned char)img_buf[2]);<br>
>>><br>
>>> /* calibration */<br>
>>><br>
>>> @@ -180,6 +181,7 @@<br>
>>> }<br>
>>> r0 =
libusb_bulk_transfer(handle, BULK_EP3_IN,
&result,<br>
>>> 1, &transferred, 0);<br>
>>>
printf("Calibration Status: 0x%x\n",
result);<br>
>>> + if (result == 0x03)
break;<br>
>>><br>
>>> r0 =
libusb_bulk_transfer(handle, BULK_EP1_OUT,<br>
>>> get_cmd_status, 2,
&transferred, 0);<br>
>>> if((r0 == 0)
&& (transferred == 2)) {<br>
>>><br>
>>> This one works with the POC
too, although for some reason the<br>
>>> generated out.png is square
and seems to contain the image 3 times?<br>
>>><br>
>>> This one has firmware version
1.64, resolution 64x144 and as shown<br>
>>> in the necessary changes this
one does report a calibration status<br>
>>> of 0x03 when it is done with
the calibration, I think we should add<br>
>>> an extra column for this to
the hardware report table.<br>
>>><br>
>>> Regards,<br>
>>><br>
>>> Hans</span></p>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>