Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-28 Thread Sergio Cerlesi
Hi all,

attached latest version of the patch that fix the issue reported to me.

The changes are important and needs to be re-tested for avoid
regressions.

I ask to anybody test the patch if can send me the feedback (positive or
negative).

Bye
Sergio

Il giorno ven, 25/02/2011 alle 09.49 +0100, Sergio Cerlesi ha scritto:
 Hi all,
 
 i finish to write the driver fo Validity VFS101. I use it for a couple
 of day with good result.
 
 For verify the implementation i need tester. If i receive positive
 feedback i will work to merge it into library.
 
 Attached the patch for libfprint 0.3.0. To compile it run:
 
 autoreconf  ./configure  make
 
 Important: the match score is much variable (on my experience from 10 to
 100) so, to have a good chance to match the fingerprint, it's much
 important who scan is done. I use fprint_demo to find the best way to
 scan my finger.
 
 Waiting feedback.
 
 Bye
 Sergio

--- ./libfprint/drivers/vfs101.c.orig	2011-01-20 14:00:52.535502073 +0100
+++ ./libfprint/drivers/vfs101.c	2011-03-27 17:53:29.000985395 +0200
@@ -0,0 +1,1570 @@
+/*
+ * Validity VFS101 driver for libfprint
+ * Copyright (C) 2011 Sergio Cerlesi sergio.cerl...@gmail.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include errno.h
+#include stdlib.h
+#include string.h
+
+#define FP_COMPONENT vfs101
+
+#include fp_internal.h
+
+/* Input-Output usb endpoint */
+#define EP_IN(n)	(n | LIBUSB_ENDPOINT_IN)
+#define EP_OUT(n)	(n | LIBUSB_ENDPOINT_OUT)
+
+/* Usb bulk timeout */
+#define BULK_TIMEOUT		100
+
+/* The device send back the image into block of 16 frames of 292 bytes */
+#define VFS_FRAME_SIZE		292
+#define VFS_BLOCK_SIZE		16 * VFS_FRAME_SIZE
+
+/* Buffer height */
+#define VFS_BUFFER_HEIGHT	5000
+
+/* Buffer size */
+#define VFS_BUFFER_SIZE		(VFS_BUFFER_HEIGHT * VFS_FRAME_SIZE)
+
+/* Image width */
+#define VFS_IMG_WIDTH		200
+
+/* Maximum image height */
+#define VFS_IMG_MAX_HEIGHT	1023
+
+/* Minimum image height */
+#define VFS_IMG_MIN_HEIGHT	200
+
+/* Scan level thresold */
+#define VFS_IMG_SLT_BEGIN		768
+#define VFS_IMG_SLT_END			64
+#define VFS_IMG_SLT_LINES		4
+
+/* Minimum image level */
+#define VFS_IMG_MIN_IMAGE_LEVEL	144
+
+/* Best image contrast */
+#define VFS_IMG_BEST_CONRAST	128
+
+/* Number of enroll stages */
+#define VFS_NR_ENROLL		3
+
+/* Device parameters address */
+#define VFS_PAR_000E			0x000e
+#define VFS_PAR_0011			0x0011
+#define VFS_PAR_THRESHOLD		0x0057
+#define VFS_PAR_STATE_3			0x005e
+#define VFS_PAR_STATE_5			0x005f
+#define VFS_PAR_INFO_RATE		0x0062
+#define VFS_PAR_0076			0x0076
+#define VFS_PAR_INFO_CONTRAST	0x0077
+#define VFS_PAR_0078			0x0078
+
+/* Device regiones address */
+#define VFS_REG_IMG_EXPOSURE	0xff500e
+#define VFS_REG_IMG_CONTRAST	0xff5038
+
+/* Device settings */
+#define VFS_VAL_000E			0x0001
+#define VFS_VAL_0011			0x0008
+#define VFS_VAL_THRESHOLD		0x0096
+#define VFS_VAL_STATE_3			0x0064
+#define VFS_VAL_STATE_5			0x00c8
+#define VFS_VAL_INFO_RATE		0x0001
+#define VFS_VAL_0076			0x0012
+#define VFS_VAL_0078			0x2230
+#define VFS_VAL_IMG_EXPOSURE	0x21c0
+
+/* Structure for Validity device */
+struct vfs101_dev
+{
+	/* Action state */
+	int active;
+
+	/* Sequential number */ 
+	unsigned int seqnum;
+
+	/* Usb transfer */
+	struct libusb_transfer *transfer;
+
+	/* Buffer for input/output */ 
+	unsigned char buffer[VFS_BUFFER_SIZE];
+
+	/* Length of data to send or received */ 
+	unsigned int length;
+
+	/* Ignore usb error */ 
+	int ignore_error;
+
+	/* Timeout */
+	struct fpi_timeout *timeout;
+
+	/* Loop counter */
+	int counter;
+
+	/* Number of enroll stage */
+	int enroll_stage;
+
+	/* Image contrast */
+	int contrast;
+
+	/* Best contrast */
+	int best_contrast;
+
+	/* Best contrast level */
+	int best_clevel;
+
+	/* Bottom line of image */
+	int bottom;
+
+	/* Image height */
+	int height;
+};
+
+/* Return byte at specified position */
+static inline unsigned char byte(int position, int value)
+{
+	return (value  (position * 8))  0xff;
+}
+
+/* Return sequential number */
+static inline unsigned short get_seqnum(int h, int l)
+{
+	return (h8) | l;
+}
+
+/* Check sequential number */
+static inline int check_seqnum(struct vfs101_dev *vdev)
+{
+	if ((byte(0, vdev-seqnum) == vdev-buffer[0]) 
+		(byte(1, vdev-seqnum) == vdev-buffer[1]))
+		

Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-07 Thread Ankur Sinha
On Thu, 2011-03-03 at 10:46 +0100, Sebastian Pöhn wrote: 
 Hi Sergio! 
 
 Thanks for your work on the Validity device. I own a VFS300. I used
 your patch and added some code to accept my device (138a:0008).
 
 The protocol is at least not exactly the same as VFS101. Could you
 please send me a usb sniff of your VFS101, so I can compare them to mine
 and maybe get the device working.
 
 Greetings,
 Sebastian

Hi Sebastian,

I have the same finger print reader. I'd be glad to test it out for you
once you've written it up.

 Bus 001 Device 004: ID 138a:0008 DigitalPersona, Inc 

Thanks,
Ankur


___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-03 Thread Sergio Cerlesi
Hi Ymhuang,

isn't so good. The patch i send to you are only for debug and break the
image quality of many other reader.

Now, not all sensor have same behavior and, like as windows drivers, is
necessary to implement an auto calibration of the device.

Could you done one test for me ?

If yes, try to increase the value of constant VFS_VAL_INFO_CONTRAST on
the head of the driver to verify if image contrast of your reader
change. When you find a better value send me it, logs and screenshot.

Thank.
Sergio

Il giorno mer, 02/03/2011 alle 21.39 +0800, Yao-Min Huang ha scritto:
 Hi Sergio,
 
 Yes, it work well.  I ran a quick test and steps as below.  The log
 and screenshot as attached files.  The identify failure due to swipe
 skill.  I think the patch work well.  I'll find more people to test it
 in my office and feedback you the result.
 
 1. Execute fprint_demo
 2. Enroll one finger
 3. After enroll success, close fprint_demo, save the log as
 enrollment.log
 4. Execute fprint_demo
 5. Verify
 6. After verification, close fprint_demo, save the log as verify.log
 7. Execute fprint_demo
 8. Identify
 9. After idenify, close fprint_demo, save the log as identify.log
 
 
 On Wed, 2011-03-02 at 09:51 +0100, Sergio Cerlesi wrote: 
  Hi Ymhuang,
  
  could you apply the attached patch on top of first and send me
  screenshot and log (remember to configure the library with
  --enable-debug-log).
  
  I will try to debug your issue.
  
  Bye
  Sergio
  
  Il giorno mer, 02/03/2011 alle 15.52 +0800, Yao-Min Huang ha scritto:
   Hi Sergio,
   
   The quality of prints is not so good on my environment as attached
   files.  What I can do to support this?
   
   What I did as below -
   
   1. Sync libfprint to head from github.
   2. Merge the patch manually, and rebuild.
   3. Sync fprint_demo to head from github and build.
   4. Execute fprint_demo.
   
   ymhuang.
   
   
   On Tue, 2011-03-01 at 10:55 +0100, Sergio Cerlesi wrote: 
Hi Ymhuang,

for test you can use the tarball at this link:

http://people.freedesktop.org/~hadess/

Attention, my patch isn't for any Validity sensors but only for VFS101.

Good test.
Sergio

Il giorno mar, 01/03/2011 alle 17.43 +0800, Yao-Min Huang ha scritto:
 Hi Sergio,
 
 Sorry for late.  May I've your help to understand where can I get
 source tree of libfprint 0.3.0?
 
 I just notice you'd progress can make validity sensor work.  I would
 like to help for testing but cannot figure out where is source tree of
 libfprint 0.3.0.  The tree on github doesn't match. 
 
 Thanks.
 ymhuang
 
 
 On Fri, 25 Feb 2011 09:49:23 +0100 
 Sergio Cerlesi sergio.cerlesi at gmail.com wrote:
 
  Hi all,
  
  i finish to write the driver fo Validity VFS101. I use it for a 
  couple
  of day with good result.
  
  For verify the implementation i need tester. If i receive positive
  feedback i will work to merge it into library.
  
  Attached the patch for libfprint 0.3.0. To compile it run:
  
  autoreconf  ./configure  make
  
  Important: the match score is much variable (on my experience from 
  10 to
  100) so, to have a good chance to match the fingerprint, it's much
  important who scan is done. I use fprint_demo to find the best way 
  to
  scan my finger.
  
  Waiting feedback.
  
  Bye
  Sergio


  


___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-03 Thread Sergio Cerlesi
Hi Sebastian,

sorry but i haven't it. My patch is based on Rayl work.

See the follow link if you can found anything:

https://github.com/rayl/vfs101driver

Bye
Sergio

Il giorno gio, 03/03/2011 alle 10.46 +0100, Sebastian Pöhn ha scritto:
 Hi Sergio! 
 
 Thanks for your work on the Validity device. I own a VFS300. I used
 your patch and added some code to accept my device (138a:0008).
 
 The protocol is at least not exactly the same as VFS101. Could you
 please send me a usb sniff of your VFS101, so I can compare them to mine
 and maybe get the device working.
 
 Greetings,
 Sebastian
 
  Hi all,
  
  i finish to write the driver fo Validity VFS101. I use it for a couple
  of day with good result.
  
  For verify the implementation i need tester. If i receive positive
  feedback i will work to merge it into library.
  
  Attached the patch for libfprint 0.3.0. To compile it run:
  
  autoreconf  ./configure  make
  
  Important: the match score is much variable (on my experience from 10
  to 100) so, to have a good chance to match the fingerprint, it's much
  important who scan is done. I use fprint_demo to find the best way to
  scan my finger.
  
  Waiting feedback.
  
  Bye
  Sergio
 ___
 fprint mailing list
 fprint@reactivated.net
 http://lists.reactivated.net/mailman/listinfo/fprint


___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-02 Thread Sergio Cerlesi
Hi Kunal,

thank for logs. I found and successful reproduced the second issue.

Seem to be a bug of driver that appear when it are called from a program
that not handle remove finger result like fprint_demo or pam_fprint.
With fprintd and pam_fprintd the bug are not present.

I will fix the driver.

Bye
Sergio

Il giorno mer, 02/03/2011 alle 13.10 +0530, Kunal Gangakhedkar ha
scritto:
 Hi Sergio,
 
 The v2 patch definitely improves image screening.
 In fact, it's now giving better matches in verification phase too :)
 
 I'm attaching the logs generated with following structure:
 o. logs/sergio - logs with your patches applied
   v1/ - version one of your patch (only enroll.log since 
 enrollment 
   itself doesn't complete - so, no point in 
 verification)
   v2/ - version two of your patch - with much improved output.
 o. logs/kunal - with my patch that I had sent (only v1 in my case).
 
 I triggered the second issue (infinite loop) in the v2/verify.log.
 You can search for 'Unexpected finger find' in the log to trace the behavior.
 
 The way to trigger this problem - at least in my case - is to just hold the 
 finger
 on the sensor for about 2 secs without swipe.
 I don't know if this is a sensor quirk that we may need to handle or 
 a bug in the driver code. Hopefully, we'll soon be able to figure that out :)
 
 Please note that there are multiple verification attempts logged in 
 v2/verify.log - just to make sure that verification process does work 
 correctly,
 I tried swiping the finger in different ways + swiping different finger
 altogether ;)
 
 Please let me know if you need any more information from my side.
 Let me see when can I find some free time to hack on the code again.
 
 Thanks,
 Kunal
 
 On Tuesday 01 Mar 2011 2:47:29 pm you wrote:
  Hi Kunal,
  
  i have done some test and reproduce the first issues (image height = 1).
  Removing the break isn't correct because without it empty lines at end
  of finger image are not removed. I rewrite a logic of first block of
  img_screen and now is more robust.
  
  I can't reproduce the second issue, on my system the driver work
  correctly. However flushing the buffer isn't the solution because, when
  send a command to the sensor, the buffer are already reset (see m_swap
  function). If you send me the dumped logs i will try to investigate.
  
  Attached version two of the patch that i hope fix your issue.
  
  Bye
  Sergio
  


___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-02 Thread Kunal Gangakhedkar
On Wednesday 02 Mar 2011 2:38:40 pm Sergio Cerlesi wrote:
 Hi Kunal,
 
 thank for logs. I found and successful reproduced the second issue.
 
 Seem to be a bug of driver that appear when it are called from a program
 that not handle remove finger result like fprint_demo or pam_fprint.
 With fprintd and pam_fprintd the bug are not present.
 

I wasn't using either of these programs.
I was using the ones under libfprint/examples - enroll and verify.

These seem to handle the 'remove finger' result because they show the message 
like 'Please remove finger from sensor'.
For example, this is the code from libfprint/examples/enroll.c (line 83):

case FP_ENROLL_RETRY_REMOVE_FINGER:
printf(Scan failed, please remove your finger and then try 
again.\n);
break;

So, it seems to handle it.. :)

Kunal

 I will fix the driver.
 
 Bye
 Sergio
 
___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-02 Thread Sergio Cerlesi
Hi Kunal,

the program on example directory (like fprint_demo and pam_fprint)
receive the result and re-call the action if not completed.

The daemon fprintd (and fprintd-verify) when receive remove finger
result wait for another image without re-call the action.

Try the new patch. It seem to work with all these program.

Bye
Sergio

Il giorno mer, 02/03/2011 alle 17.13 +0530, Kunal Gangakhedkar ha
scritto:
 On Wednesday 02 Mar 2011 2:38:40 pm Sergio Cerlesi wrote:
  Hi Kunal,
  
  thank for logs. I found and successful reproduced the second issue.
  
  Seem to be a bug of driver that appear when it are called from a program
  that not handle remove finger result like fprint_demo or pam_fprint.
  With fprintd and pam_fprintd the bug are not present.
  
 
 I wasn't using either of these programs.
 I was using the ones under libfprint/examples - enroll and verify.
 
 These seem to handle the 'remove finger' result because they show the message 
 like 'Please remove finger from sensor'.
 For example, this is the code from libfprint/examples/enroll.c (line 83):
 
 case FP_ENROLL_RETRY_REMOVE_FINGER:
 printf(Scan failed, please remove your finger and then try 
 again.\n);
 break;
 
 So, it seems to handle it.. :)
 
 Kunal
 
  I will fix the driver.
  
  Bye
  Sergio
  

--- ./libfprint/drivers/vfs101.c.orig	2011-01-20 14:00:52.535502073 +0100
+++ ./libfprint/drivers/vfs101.c	2011-03-02 11:50:11.340482661 +0100
@@ -0,0 +1,1327 @@
+/*
+ * Validity VFS101 driver for libfprint
+ * Copyright (C) 2011 Sergio Cerlesi sergio.cerl...@gmail.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include errno.h
+#include string.h
+
+#define FP_COMPONENT vfs101
+
+#include fp_internal.h
+
+/* Input-Output usb endpoint */
+#define EP_IN(n)	(n | LIBUSB_ENDPOINT_IN)
+#define EP_OUT(n)	(n | LIBUSB_ENDPOINT_OUT)
+
+/* Usb bulk timeout */
+#define BULK_TIMEOUT		100
+
+/* The device send back the image into block of 16 frames of 292 bytes */
+#define VFS_FRAME_SIZE		292
+#define VFS_BLOCK_SIZE		16 * VFS_FRAME_SIZE
+
+/* Image width */
+#define VFS_IMG_WIDTH		200
+
+/* Maximum image height */
+#define VFS_IMG_MAX_HEIGHT	5000
+
+/* Minimum image height */
+#define VFS_IMG_MIN_HEIGHT	200
+
+/* Maximum image size */
+#define VFS_IMG_MAX_SIZE	(VFS_IMG_MAX_HEIGHT * VFS_FRAME_SIZE)
+
+/* Scan level thresold */
+#define VFS_IMG_SLT_BEGIN		768
+#define VFS_IMG_SLT_END			256
+#define VFS_IMG_SLT_LINES		10
+
+/* Minimum image level */
+#define VFS_IMG_MIN_IMAGE_LEVEL		144
+
+/* Number of enroll stages */
+#define VFS_NR_ENROLL		3
+
+/* Device parameters address */
+#define VFS_PAR_000E			0x000e
+#define VFS_PAR_0011			0x0011
+#define VFS_PAR_THRESHOLD		0x0057
+#define VFS_PAR_STATE_3			0x005e
+#define VFS_PAR_STATE_5			0x005f
+#define VFS_PAR_INFO_RATE		0x0062
+#define VFS_PAR_0076			0x0076
+#define VFS_PAR_INFO_CONTRAST	0x0077
+#define VFS_PAR_0078			0x0078
+
+/* Device regiones address */
+#define VFS_REG_IMG_EXPOSURE	0xff500e
+#define VFS_REG_IMG_CONTRAST	0xff5038
+
+/* Device settings */
+#define VFS_VAL_000E			0x0001
+#define VFS_VAL_0011			0x0008
+#define VFS_VAL_THRESHOLD		0x0096
+#define VFS_VAL_STATE_3			0x0064
+#define VFS_VAL_STATE_5			0x00c8
+#define VFS_VAL_INFO_RATE		0x0001
+#define VFS_VAL_0076			0x0012
+#define VFS_VAL_INFO_CONTRAST	0x000f
+#define VFS_VAL_0078			0x2230
+#define VFS_VAL_IMG_EXPOSURE	0x21c0
+#define VFS_VAL_IMG_CONTRAST	0x0014
+
+/* Structure for Validity device */
+struct vfs101_dev
+{
+	/* Action state */
+	int active;
+
+	/* Sequential number */ 
+	unsigned int seqnum;
+
+	/* Usb transfer */
+	struct libusb_transfer *transfer;
+
+	/* Buffer for input/output */ 
+	unsigned char buffer[VFS_IMG_MAX_SIZE];
+
+	/* Length of data to send or received */ 
+	unsigned int length;
+
+	/* Ignore usb error */ 
+	int ignore_error;
+
+	/* Timeout */
+	struct fpi_timeout *timeout;
+
+	/* Number of enroll stage */
+	int enroll_stage;
+
+	/* Bottom line of image */
+	int bottom;
+
+	/* Top line of image */
+	int top;
+};
+
+/* Return byte at specified position */
+static inline unsigned char byte(int position, int value)
+{
+	return (value  (position * 8))  0xff;
+}
+
+/* Return sequential number */
+static inline unsigned short get_seqnum(int h, int l)
+{
+	return (h8) | l;

Re: [fprint] New driver for Validity VFS101: tester wanted

2011-03-01 Thread Sergio Cerlesi
Hi Kunal,

i have done some test and reproduce the first issues (image height = 1).
Removing the break isn't correct because without it empty lines at end
of finger image are not removed. I rewrite a logic of first block of
img_screen and now is more robust.

I can't reproduce the second issue, on my system the driver work
correctly. However flushing the buffer isn't the solution because, when
send a command to the sensor, the buffer are already reset (see m_swap
function). If you send me the dumped logs i will try to investigate.

Attached version two of the patch that i hope fix your issue.

Bye
Sergio

Il giorno lun, 28/02/2011 alle 11.07 +0100, Sergio Cerlesi ha scritto:
 Hi Kunal,
 
 thank for feedback and patch.
 
 I will investigate on the two issues, could you send me the log ?
 
 The issues you report are occasional or systematic ?
 
 Bye
 Sergio
 
 Il giorno dom, 27/02/2011 alle 16.20 +0530, Kunal Gangakhedkar ha
 scritto:
  Hi Sergio,
  
  Awesome work !!
  Got the patch working on my HP dv6 notebook having the VFS101 sensor.
  
  Two issues:
  o.  on my sensor, the img_screen() function was always returning
  image height = 1. I added a fp_dbg() call to dump the values 
  in the loop variables to figure out what was going on.
  The 'break' statement in the 'find bottom of image' part
  is not correct since it aborts the screening prematurely.
  Due to this break, the screened image height always ended up = 1
  in my case.
  
  This happens even during the enrollment phase.
  I have the logs dumped - let me know if you want to take a look at them.
  
  o.  during verification, if I end up just touching the sensor and lifting 
  the 
  finger, I get a message 'Unexpected finger find, remove finger from 
  sensor'.
  But, it goes into an infinite loop with the same msg since the device's 
  bufffer still contains the old image data. The device buffer needs to be
  flushed upon any such error conditions.
  
  I'm attaching a patch on top of your code that tries to fix both the 
  problems.
  Please let me know if it looks OK.
  
  Thanks,
  Kunal
  
  On Friday 25 Feb 2011 2:19:23 pm Sergio Cerlesi wrote:
   Hi all,
   
   i finish to write the driver fo Validity VFS101. I use it for a couple
   of day with good result.
   
   For verify the implementation i need tester. If i receive positive
   feedback i will work to merge it into library.
   
   Attached the patch for libfprint 0.3.0. To compile it run:
   
   autoreconf  ./configure  make
   
   Important: the match score is much variable (on my experience from 10 to
   100) so, to have a good chance to match the fingerprint, it's much
   important who scan is done. I use fprint_demo to find the best way to
   scan my finger.
   
   Waiting feedback.
   
   Bye
   Sergio
   
  
 
 

--- ./libfprint/drivers/vfs101.c.orig	2011-01-20 14:00:52.535502073 +0100
+++ ./libfprint/drivers/vfs101.c	2011-03-01 09:49:12.716531408 +0100
@@ -0,0 +1,1284 @@
+/*
+ * Validity VFS101 driver for libfprint
+ * Copyright (C) 2011 Sergio Cerlesi sergio.cerl...@gmail.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include errno.h
+#include string.h
+
+#define FP_COMPONENT vfs101
+
+#include fp_internal.h
+
+/* Input-Output usb endpoint */
+#define EP_IN(n)	(n | LIBUSB_ENDPOINT_IN)
+#define EP_OUT(n)	(n | LIBUSB_ENDPOINT_OUT)
+
+/* Usb bulk timeout */
+#define BULK_TIMEOUT		100
+
+/* The device send back the image into block of 16 frames of 292 bytes */
+#define VFS_FRAME_SIZE		292
+#define VFS_BLOCK_SIZE		16 * VFS_FRAME_SIZE
+
+/* Image width */
+#define VFS_IMG_WIDTH		200
+
+/* Maximum image height */
+#define VFS_IMG_MAX_HEIGHT	5000
+
+/* Minimum image height */
+#define VFS_IMG_MIN_HEIGHT	200
+
+/* Maximum image size */
+#define VFS_IMG_MAX_SIZE	(VFS_IMG_MAX_HEIGHT * VFS_FRAME_SIZE)
+
+/* Scan level thresold */
+#define VFS_IMG_SLT_BEGIN		768
+#define VFS_IMG_SLT_END			256
+#define VFS_IMG_SLT_LINES		10
+
+/* Minimum image level */
+#define VFS_IMG_MIN_IMAGE_LEVEL		144
+
+/* Number of enroll stages */
+#define VFS_NR_ENROLL		3
+
+/* Device parameters address */
+#define VFS_PAR_000E			0x000e
+#define VFS_PAR_0011			0x0011
+#define VFS_PAR_THRESHOLD		0x0057
+#define VFS_PAR_STATE_3			0x005e

Re: [fprint] New driver for Validity VFS101: tester wanted

2011-02-28 Thread Sergio Cerlesi
Hi Kunal,

thank for feedback and patch.

I will investigate on the two issues, could you send me the log ?

The issues you report are occasional or systematic ?

Bye
Sergio

Il giorno dom, 27/02/2011 alle 16.20 +0530, Kunal Gangakhedkar ha
scritto:
 Hi Sergio,
 
 Awesome work !!
 Got the patch working on my HP dv6 notebook having the VFS101 sensor.
 
 Two issues:
 o.on my sensor, the img_screen() function was always returning
   image height = 1. I added a fp_dbg() call to dump the values 
   in the loop variables to figure out what was going on.
   The 'break' statement in the 'find bottom of image' part
 is not correct since it aborts the screening prematurely.
 Due to this break, the screened image height always ended up = 1
 in my case.
 
   This happens even during the enrollment phase.
   I have the logs dumped - let me know if you want to take a look at them.
 
 o.during verification, if I end up just touching the sensor and lifting 
 the 
   finger, I get a message 'Unexpected finger find, remove finger from 
 sensor'.
   But, it goes into an infinite loop with the same msg since the device's 
   bufffer still contains the old image data. The device buffer needs to be
   flushed upon any such error conditions.
 
 I'm attaching a patch on top of your code that tries to fix both the problems.
 Please let me know if it looks OK.
 
 Thanks,
 Kunal
 
 On Friday 25 Feb 2011 2:19:23 pm Sergio Cerlesi wrote:
  Hi all,
  
  i finish to write the driver fo Validity VFS101. I use it for a couple
  of day with good result.
  
  For verify the implementation i need tester. If i receive positive
  feedback i will work to merge it into library.
  
  Attached the patch for libfprint 0.3.0. To compile it run:
  
  autoreconf  ./configure  make
  
  Important: the match score is much variable (on my experience from 10 to
  100) so, to have a good chance to match the fingerprint, it's much
  important who scan is done. I use fprint_demo to find the best way to
  scan my finger.
  
  Waiting feedback.
  
  Bye
  Sergio
  
 


___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-02-27 Thread Kunal Gangakhedkar
On Sunday 27 Feb 2011 3:35:18 pm Sebastian Pöhn wrote:
 I got the VFS101 patch, but have a VFS300 (138a:0008). I added its
 usb-id in vfs101.c , but the device is not detected at all! Is there an
 other place where I need to add it?


What's the error?

If you get a 'Permission Denied' message, that means you need to run 
the enroll/verify examples as root/sudo.

You may want to compile the library with '--enable-debug-log' option to
configure. This enables dumping of debug messages onto stderr.

Kunal
 
 Of course I know that the protocol may be very different and the device
 may not work.
 ___
 fprint mailing list
 fprint@reactivated.net
 http://lists.reactivated.net/mailman/listinfo/fprint
 
___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint


Re: [fprint] New driver for Validity VFS101: tester wanted

2011-02-25 Thread Suren Karapetyan
On Fri, 25 Feb 2011 09:49:23 +0100
Sergio Cerlesi sergio.cerl...@gmail.com wrote:

 Hi all,
 
 i finish to write the driver fo Validity VFS101. I use it for a couple
 of day with good result.
 
 For verify the implementation i need tester. If i receive positive
 feedback i will work to merge it into library.
 
 Attached the patch for libfprint 0.3.0. To compile it run:
 
 autoreconf  ./configure  make
 
 Important: the match score is much variable (on my experience from 10 to
 100) so, to have a good chance to match the fingerprint, it's much
 important who scan is done. I use fprint_demo to find the best way to
 scan my finger.
 
 Waiting feedback.
 
 Bye
 Sergio

Hi Sergio,

I've got a HP dv5 with a VFS101 sensor.

Got Your patch tested and it works. I'll use it for a couple of days to
test it for stability and let You know later.

I'd like to thank You very much for Your work and everyone else who made
it possible (Ray).

Regards,
Suren
___
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint