Nils Ole Tippenhauer | 10 Sep 05:05 2014

Driver for Upek Eikon Touch 510?

Hi list,

I would like to start by thanking you for libfprint and the fprint_demo.
I've been using fprint_demo for little biometrics-related exercises in
teaching for a couple of years, and it is a great tool to quickly
demonstrate how captured images look like, and what kind of minituae are

I recently switched institutions and bought new fingerprint scanners, an
U.are.U 4500 optical scanner and a Upek Eikon touch 510. The 4500 works
nicely out of the box, but the Upek touch doesn't. I would like to ask
whether there is a known solution for the 510. The 510 is area-based
capacitive as far as I can tell. The Upek Eikon touch 310 was working
nicely the last time I used it. Both look visually very similar, so I
was hoping drivers would not be an issue.

I get the following info on dmesg when connecting the scanner:

usb 1-6: New USB device found, idVendor=147e, idProduct=2016
usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-6: Product: Biometric Coprocessor
usb 1-6: Manufacturer: UPEK

With the default libfprint from Ubuntu 14.04 (20080303git-ubuntu), the
UPEKE2 driver is loaded in fprint-demo. As far as I can tell, UPEKE2 is
line-based, so the driver is probably incorrect.

I took the latest libfprint git and disabled the UPEKE2 driver. In that
case, the upektc_img is loaded (sometimes referred to as upekts_img).
With that driver, an image is scanned, but it looks garbled. My guess it
(Continue reading)

Aydoğan Ersöz | 4 Sep 14:29 2014

Microcontroller port of nbis package

Dear fprint community,

I'm working on a microcontroller project which embeds Fujitsu MBF900PFW imaging sensor on it. The microcontroller that I'm using is STM32F417IGH6. It has 1MB of flash memory and 196KB of RAM.

I'm trying to see that if I can port libfprint into microcontroller world. I started from nbis part of the library. I managed to compile and link nbis for microcontroller. (I'm using Keil uVision 4.16 MDK as IDE on Windows 7)

The problem is nbis consumes (consume may not be the right word but never mind) extremely much memory for microcontroller. There are many arrays that takes (20000 * 4) bytes for example.

Do you have any idea that if I can port libfprint to microcontroller? Is it a meaningful task or not? Do I have a chance to optimize the memory? Do you have some simplified algorithms for lightweight usage?

I'm waiting your kind reply.

Thanks in advance and wish you the best.

Aydogan Ersoz
fprint mailing list
fprint <at>
Ricardo Ribalda Delgado | 3 Sep 11:03 2014

upektc_img: False minutiae on the border of the image

The sensor provices a grey image of 144x384 pixels with the fingerprint

The problem is that the border betwen the grey image and the image is
considered as minutiae my nbis (see the image at

This leads to almost impossible verification/identification. Is there
something that I am doing wrong? Is a know issue?


Ricardo Ribalda
Jaša Bartelj | 18 Aug 06:48 2014

Advice on reversing and supporting a new fingerprint reader


I'm working on a student project where we are using SBCs (think
Raspberry Pi) with various devices. My assignment are fingerprint
readers and one of those is an Anviz U-Bio, formerly apparently also
known as OA99 (

The unit is a desktop device with a USB interface. The optical sensor
within is called AFOS307, judging by their website it is also used in
many other of their devices. The SOC inside is STM32F105 R8T6

Here's the Linux kernel messages at attachment:
[415414.469030] usb 6-1: new full-speed USB device number 6 using uhci_hcd
[415414.843056] usb 6-1: New USB device found, idVendor=0483, idProduct=5720
[415414.843062] usb 6-1: New USB device strings: Mfr=1, Product=2,
[415414.843066] usb 6-1: Product: Mass Storage in FS Mode
[415414.843069] usb 6-1: Manufacturer: STMicroelectronics
[415414.843072] usb 6-1: SerialNumber: 00000000001B
[415414.852106] usb-storage 6-1:1.0: USB Mass Storage device detected
[415414.852407] scsi16 : usb-storage 6-1:1.0
[415415.859110] scsi 16:0:0:0: CD-ROM            ANVIZ    Smart
    1.00 PQ: 0 ANSI: 0 CCS
[415415.864082] sr1: scsi3-mmc drive: 0x/0x caddy
[415415.864577] sr 16:0:0:0: Attached scsi CD-ROM sr1
[415415.864819] sr 16:0:0:0: Attached scsi generic sg5 type 5

At first I had quite a bit of problems getting the reader to work with
their software but in the end found a Windows desktop application
which displayed an image. With USB capture I identified that the
* class is 0x08 (USB Mass Storage),
* subclass is 0x06 (SCSI transparent command set) and
* the protocol is 0x50 (Bulk-Only Transport (BBB))
The SCSI INQUIRY returns a SCSI Device Type 0x05. This is common for
CD-ROM Devices, and these use SCSI MMC commands.

Here's the SCSI command reading loop that returns an image (numbers in hex):
86000000000800020000    # 1) host sends SCSI CDB 0x86 Access Control In
    f6002400000125f6    #    SCSI Payload (8 B Request Data for CDB 0x86)
                        #    device returns SCSI Status Good 0x00 for
85000000000800020000    # 2) host sends SCSI CDB 0x85
    f6002494005eeef6    #    SCSI Payload (8 B Response Data for CDB 0x85)
                        #    device returns SCSI Status Good 0x00 for
85000000940100020000    # 3) host sends SCSI CDB 0x85
    [ 37889 B ]         #    SCSI Payload (37889 B Response Data for CDB 0x85)
                        #    device returns SCSI Status Good 0x00 for
85000000940200020000    # 4) host sends SCSI CDB 0x85
    [ 37890 B ]         #    SCSI Payload (37890 B Response Data for CDB 0x85)
                        #    device returns SCSI Status Good 0x00 for

The returned payload always has the first byte set to 0xF6, the rest
is image data, a 256x296 matrix of uint8.

Here are my questions:
1) Do you have any advice on how to figure out the meaning of the
neaning of the SCSI Payload of the first command? I have tried
analyzing the library the desktop app uses for access in IDA Pro Free
but I haven't gotten far yet.
2) My prototype reader script uses sg3_utils. For adding support to
libfprint I would ideally need a SCSI library to communicate with the
device. The only suitable seems to be the abandoned libusal
( Is
it possible to add a dependency to libfprint or should I support the
device with only libsusb?

Thanks for your response, other advice is also welcome!

fprint mailing list
fprint <at>
Ezequiel Banquero | 12 Aug 15:41 2014

libfprint and digital persona 4000b getting only noise

Hi, getting only noise in the img_capture example,

What i noticed

If i install the SDK DP UareU-2.0.0-1
Start and exit one of they example
Unistall the SDK and Drivers

the libfprint start capturing ok, and  uru4000:info [init_run_state] Versions 0040 and 0014
change to uru4000:info [init_run_state] Versions 0040 and 0016

What can be the problem? or where can i look? this happends on two machines with kubuntu 12.04 and 13.10 , one with ubuntu 12.04, and a fresh intall with only libfprint_demo and 12.04 same problem on all , only noise, there is one machine tan work "out of the box" with libfprint_demo, so i think the reader isn't the problem

Excuse me, for my bad english.

fprint mailing list
fprint <at>
Jimmy Jeppesen | 30 Jul 09:47 2014

1-n matching?


I am writing an application that will need to read a fingerprint and then compare this to a series of previously scanned images and report back which file matched.

The matched file then corresponds to a given user and I can proceed from there.

I have googled high and low, and it seems like libfprint is not suited for this purpose - Am I right? :-)

If not, which programs do I need (or which parameters to frpintd-verify)?


ps, thanks for the help with installation - It was indeed the Debian version on APT that was too old and a hand.compiled version worked out of the box.
fprint mailing list
fprint <at>
Antonio G.M. | 25 Jul 23:59 2014

Makefile, permissions, saved data and Python.

Hello everybody,

I'm writing an application using libfprint.
We want to launch certain demos when a certain finger is verified.
My questions are about:
   1) Makefile
   2) Permissions
   3) Saved data

1) How to compile application with libfprint correctly?
With what (little) I know, I made a makefile, but the library
libfprint is not found in any way. Here's the code.

CC = gcc

FINGER_CFLAGS = -I/home/viki/libFinger/include
DEPS = fprint.h
OBJ = enroll.o

CRYPTO_CFLAGS = -I/usr/include/nss -I/usr/include/nspr
CRYPTO_LIBS = -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4

GLIB_CFLAGS = -I/usr/include/glib-2.0
GLIB_LIBS = -lglib-2.0

LIBUSB_CFLAGS = -I/usr/include/libusb-1.0
LIBUSB_LIBS = -lusb-1.0


%.o: %.c $(DEPS)
	$(CC) -c -o $ <at>  $< $(CFLAGS)
enroll: $(OBJ)
	$(CC) -o $ <at>  $^ $(CFLAGS) $(LIBS)

I copied a few lines from the Makefile under /examples folder of the
library. I configured the installation with
--prefix=/home/viki/libFinger/. So, one level up from where my source
code files are, you can find the installed /include and /lib folders.

All the examples run correctly when compiled with the generated Makefile.
Could you tell me what I'm doing wrong? or provide a simplistic
example on how to compile with libfprint with a Makefile.

2) When I run an example say ./enroll. I get this error message:
libusb couldn't open USB device.
I get "permission denied" errors also when I read/load any previously
saved finger prints, since they are saved in the folder /.fprints. in
the home directory.
How can I control where to save the files, and how to 'give'
permissions to libusb in order not to get these errors? Since writing
sudo ./enroll, defeats the purpose of having the fingerprint sensor to
do authentication.

3) I have an eikon swipe-type sensor. The saved finger prints are
saved with the name corresponding a finger number, i.e. file '1' holds
the finger print from the LEFT_THUMB. In my computer at least, they
are inside folder '/000d/00000000'.
I want to save various fingerprints for (around) 5 users.
Is there any way of saving the files using other file/folder names?
Say folder 'User-1' holds the prints for fingers 'Prog-1', 'Prog-2',
where these would correspond to some fingers.

4) Has anyone written a Python wrapper? I read some articles about
this, but all of them had the C/C++ header and implementation files to
write the wrapper. Any pointers to examples where the C program uses
external libraries, like with libfprint, as well?? (libusb, glib, nss,

I thought about sending ROS messages from the .c file to my .py files,
where I need the authentication. Since we're using ROS anyways.
But Python wrapper would be nicer.

Thank you in advanced.
Any comments are very much welcomed.
Jimmy Jeppesen | 25 Jul 07:36 2014

How do I debug?

I have a Digital Persona 4000 on a Debian box without GUI, text mode only.

dmesg shows the unit is located fine:

[298336.901212] usb 6-1: pl2303 converter now attached to ttyUSB0
[634300.136023] usb 5-2: new full-speed USB device number 3 using uhci_hcd
[634300.315037] usb 5-2: New USB device found, idVendor=05ba, idProduct=000a
[634300.315046] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[634300.315053] usb 5-2: Product: Biokey 200 Fingerprint Scanner
[634300.315060] usb 5-2: Manufacturer: ZKSoftware Inc.
[634300.315065] usb 5-2: SerialNumber: {7EA2172E-30A5-9141-9909-409F3058F209}

When I try to run frint I just get an anonymous error:

root <at> ac:~# fprintd-enroll
Using device /net/reactivated/Fprint/Device/0
Enrolling right index finger.
Enroll result: enroll-unknown-error

How can I debug this?

Thanks :-)
fprint mailing list
fprint <at>
vasas | 17 Jul 11:17 2014

Request for adding support to figerprint reader


    We are having Secugen finger print reader whose verdor id is 1162 and
product id is 0322. we would like to use fprintd for authentication
using pam module.

suresh vasa.
Igor Gnatenko | 12 Jul 13:35 2014

fprint authentication over ssh


I have local laptop with finger scanner and have remote server.

Can I login over ssh and authorize by fingerprint?

-Igor Gnatenko
fprint mailing list
fprint <at>
Patrick Marlier | 24 Jun 21:36 2014

Re: etes603 error

Hi Paolo,

Just to tell you that I can reproduce the problem on my machine. However I have no clue yet on why it happens with the enroll example. I am not sure when I will have time to dig more so you can try to use fprintd-enroll (it was working months, or years ago).


On 05/23/2014 11:08 PM, Paolo Valleri wrote:
Hi all, 
I've just cloned (and compiled) the git repository to try the usb finger reader on a raspberry pi, the output on enroll is:
pi <at> apd ~/libfprint/examples $ sudo ./enroll 
This program will enroll your right index finger, unconditionally overwriting any right-index print that was enrolled previously. If you want to continue, press enter, otherwise hit Ctrl+C

Found device claimed by EgisTec ES603 driver
Opened device. It's now time to enroll your finger.

You will need to successfully scan your finger 5 times to complete the process.

Scan your finger now.
Wrote scanned image to enrolled.pgm
Enroll stage passed. Yay!

Scan your finger now.
libusb: warning [handle_timeout] async cancel failed -4 errno=19
etes603:warning [async_tx_cb] transfer is not completed (status=5)
etes603:error [m_finger_complete] Error while capturing fingerprint (ssm->error=-5)
sync:error [fp_enroll_finger_img] unrecognised return code -4

The usb stick I have is this one:
lsusb recognizes it as:
ID 1c7a:0603 LighTuning Technology Inc. 

what can I do to fix the issue?


_______________________________________________ fprint mailing list fprint <at>

fprint mailing list
fprint <at>