libdpfp 0.2.1 – basic image enhancement

I have just released version 0.2.1 of libdpfp, a userspace library with example programs to interact with Microsoft and DigitalPersona fingerprint scanners on Linux.

This release contains code from eFinger and FVS to enhance the fingerprint images. The capture_finger_enhanced example program now produces images like the ones in this post, which is rather cool. Again, the enhancement takes a few seconds to complete, hopefully we can improve on this. Also, I think I saw an infinite loop in the thinning code, but have been unable to reproduce this.

Andrei Tchijov has done some work porting libdpfp to Mac OS X (Darwin). I say porting, only a few small changes were needed. It doesn’t work out-of-the-box on Darwin just yet due to a libusb bug, which Andrei is working on. Andrei also mumbled something about porting libdpfp to Windows, which would be rather interesting.

Download link. As usual, questions and bug reports belong on the mailing list, not in comments on my weblog.

17 Responses to “libdpfp 0.2.1 – basic image enhancement”

  1. Balint Domokos Says:

    Hello,

    I have got it working on Windows Xp, and it really needs some small changes. I used libdpfp 0.2.0, and MinGW to build it, also libusb-win32. Apart from the obvious changes needed to compile on Windows, the main thing to get it work was the following, just before calling usb_claim_interface(), in dpfp.c:

    int ciret = usb_set_configuration(handle, udev->config->bConfigurationValue);
    if(ciret != 0) {
    dbg(DBG_ERR, “setconf failed”);
    goto err;
    }

    Otherwise on windows you can not claim the interface. After this change, the capture_finger.c example works just fine for me on XP.

    If you need more details just let me know,

    Kind Regards
    Balint

  2. joseph Says:

    Hello Balint Domokos could you tell me how you build it, coz i followed your post, but im having linker errors…
    did you maked gcc -c capture_finger-c and gcc -o test capture_finger.o ????
    thanks in advance

  3. joseph Says:

    guido.pusiol@gmail.com

  4. joseph Says:

    uupps i forgot that i had to compile all the units separatedly, im having more problems now !!!! could you please help me thnx

  5. joseph Says:

    ok finally did it but when i run capture_finger i get

    > found 3 buses
    > dev : Not such Device

    Whi is this happening ???

    thnx

  6. Tuhin Says:

    hello Balint,
    I know it is a long shot but would you be able to share your code?
    Thanks

  7. Tuhin Says:

    Hello,
    I was able to succesfully build it in windows. But it seems to fail in dpfp_open() call. Do I need to install any driver. When I hookup the Microsoft Fingerprint reader in my PC, it brings the new Hardware Found dialog. Should I cancel it. Why dpfp_open() is failing? I installed libusb32.lib. I would appreciate any pointer.
    Thanks

  8. Tuhin Says:

    I overcame all the initial hurdles. Now I am having problem with the dpfp_get_irq() function. The looping hack does not work in windows. Second time it calls
    r = usb_interrupt_read(dev->handle, EP_INTR, (char*)buf, DPFP_IRQ_LENGTH,1000);

    after the first timedout, I get the “Windows has triggered a breakpoint in “mytest.exe”

    Any idea. Realy appreciate any help.

  9. joseph Says:

    Tuhin, i had no problems with the driver and i happily pass you the code as it is, i maked a dll. I didnt uploaded the code yet coz i’m trying to figuer out why capturing doesent work untill, you pass the “found new hardware” dialog installing the Digital persona software.
    once you installed you can uninstall the digital persona soft and still the driver works ok. I mean that at least for me winlibusb is not enough if you try to use the driver.And still dont know why.
    guido.pusiol@gmail.com

  10. ndambuki Says:

    hi joseph

    please send me your code for libdpfp in Windows. I would like to access my U are U reader in Windows. Apart from the C files do I to install any usb drivers for the system to work? I had previously installed the Digital Persona software but I uninstalled it later.

    Please help…

    Thanx!

  11. ndambuki Says:

    johnmndambuki@gmail.com

  12. seb559 Says:

    I have the same problem with the irq (windows with usblib). Did someone find a workaround ?
    Thanks a lot.

    seb

    Tuhin Says:
    November 22nd, 2006 at 11:48 pm

    I overcame all the initial hurdles. Now I am having problem with the dpfp_get_irq() function. The looping hack does not work in windows. Second time it calls
    r = usb_interrupt_read(dev->handle, EP_INTR, (char*)buf, DPFP_IRQ_LENGTH,1000);

    after the first timedout, I get the “Windows has triggered a breakpoint in “mytest.exe�

    Any idea. Realy appreciate any help.

  13. seb559 Says:

    May be I found something (which works for me) to overcome the IRQ problem:

    In the function dpfp_simple_get_irq_with_type,

    comment these lines:

    if (result

  14. Jas Says:

    I have begun creating a daemon for this utility which can run in the background and wait for interactions from the user. I am going to use the DBUS messaging system to allow other applications to dynamically call the device and set the state and scanning modes.

    The reason I am pursuing this is because I have already modified the pam_bioapi source to include MySQL and OpenLDAP support but lack the funding for a Digital Persona U.are.U 4000 USB Biometric Sensor URU4S and have opted for something more cost efficient with the MS Fingerprint reader.

    Since the current pam_bioapi does not currently interface with the libdpfp I feel this is the way to go, however I have also thought that the additional support should be added to the bioapi framework vs. creating an independent daemon to access the libdpfp interface.

    Any ideas on this?

  15. Alexander Says:

    I have read all posts in this theme, but need help to run libdpfp on windows. I used mingw+minsys, when i trying to “./configure” it make an error – “checking for pkg-config… no
    checking for LIBUSB… configure: error: The pkg-config script could not be found or is too old. Make sure it
    is in your PATH or set the PKG_CONFIG environment variable to the full
    path to pkg-config.

    Alternatively, you may set the environment variables LIBUSB_CFLAGS
    and LIBUSB_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    To get pkg-config, see .
    See `config.log’ for more details.”
    On the following adress – http://www.freedesktop.org/software/pkgconfig there is nothing, can anybody help me?

  16. moti Says:

    hi

    I was able to succesfully build it in windows. and it work for me .

    but when I try to get :

    trf1 = usb_bulk_read(dev->handle, EP_DATA, fp->header, DATABLK1_RQSIZE, 1000)

    is rutrn -116

    can you help me with it?

    thank

  17. dipen Says:

    i have done to match 1 to with many finger print in database ….
    if u want to any suggetion contact on my email address:
    dipen.ec2010@gmail.com

Leave a Reply

You must be logged in to post a comment.