<div dir="ltr"><div><div>Hello,<br><br></div>I am trying to make the Microsoft 1033 fingerprint scanner work with fprint on a Raspberry Pi. I'm running into a problem where fingerprint enrollment stalls after the first stage. The first scan gets saved and I'm prompted for the next one, but the fingerprint scanner stops responding to anything...the red light stays on, but nothing happens in software. I was using the Jessie repo for the Raspi which contained the 0.5.1 build of libfprint. I've since abandoned that build so that I could compile myself with the --enable-debug-log switch. Below is a dump of the console with the debug log turned on. I'm hoping someone else has run into this issue so that I don't have to work through all of the libfprint source to fix it myself :-D<br><br> ./enroll<br>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<br><br>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 upektc<br>fp:debug [register_driver] registered driver upekts_img<br>fp:debug [register_driver] registered driver etes603<br>fp:debug [find_supporting_driver] driver uru4000 supports USB device 045e:00bd<br>fp:debug [find_supporting_driver] selected driver uru4000 supports USB device 045e:00bd<br>Found device claimed by Digital Persona U.are.U 4000/4000B/4500 driver<br>sync:debug [fp_dev_open]<br>async:debug [fp_async_dev_open]<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 enroll your finger.<br><br>You will need to successfully scan your finger 5 times to complete the process.<br><br>Scan your finger now.<br>sync:debug [fp_enroll_finger_img]<br>async:debug [fp_async_enroll_start] starting enrollment<br>fp:debug [generic_acquire_start] action 1<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 0<br>uru4000:debug [sm_read_regs] read 1 regs at 7<br>sync:debug [fp_enroll_finger_img] uru4000 will handle enroll stage 0/4<br>uru4000:debug [sm_read_reg_cb] reg value 1<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 1<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 3<br>uru4000:debug [sm_set_hwstat] set 81<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 4<br>drv:debug [__ssm_call_handler] 0x1cba980 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cba980 entering state 1<br>uru4000:debug [sm_set_hwstat] set 01<br>drv:debug [__ssm_call_handler] 0x1cba980 entering state 2<br>uru4000:debug [sm_read_regs] read 1 regs at 7<br>uru4000:debug [sm_read_reg_cb] reg value 0<br>drv:debug [__ssm_call_handler] 0x1cba980 entering state 3<br>drv:debug [fpi_ssm_mark_completed] 0x1cba980 completed with status 0<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 5<br>poll:debug [fpi_timeout_add] in 300ms<br>poll:debug [get_next_timeout_expiry] next timeout in 0.299905s<br>poll:debug [get_next_timeout_expiry] next timeout in 0.299111s<br>uru4000:debug [irq_handler] recv irq type 56aa<br>uru4000:debug [init_scanpwr_irq_cb] late scanpwr interrupt<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 6<br>poll:debug [fpi_timeout_cancel]<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 7<br>uru4000:debug [sm_read_regs] read 16 regs at f0<br>uru4000:debug [sm_read_reg_cb] reg value 45<br>drv:debug [__ssm_call_handler] 0x1cba958 entering state 8<br>uru4000:info [init_run_state] Versions 0040 and 0014<br>drv:debug [fpi_ssm_mark_completed] 0x1cba958 completed with status 0<br>uru4000:debug [execute_state_change] wait finger on<br>fp:debug [fpi_imgdev_activate_complete] status 0<br>async:debug [fpi_drvcb_enroll_started] status 0<br>uru4000:debug [execute_state_change] wait finger on<br>uru4000:debug [irq_handler] recv irq type 0101<br>fp:debug [fpi_imgdev_report_finger_status] finger on sensor<br>uru4000:debug [execute_state_change] starting capture<br>drv:debug [__ssm_call_handler] 0x1cab468 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cab468 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cab468 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_img_detect_minutiae] minutiae scan completed in 0.620926 secs<br>fp:debug [fpi_img_detect_minutiae] detected 43 minutiae<br>fp:debug [print_data_new] driver=02 devtype=0000<br>fp:debug [print_data_new] driver=02 devtype=0000<br>drv:debug [fpi_ssm_mark_completed] 0x1cab468 completed with status 0<br>uru4000:debug [execute_state_change] await finger off<br>uru4000:debug [irq_handler] recv irq type 0200<br>fp:debug [fpi_imgdev_report_finger_status] finger removed<br>fp:debug [fpi_imgdev_report_finger_status] reporting enroll result<br>async:debug [fpi_drvcb_enroll_stage_completed] result 3<br>sync:debug [sync_enroll_cb] result 3<br>uru4000:debug [execute_state_change] starting capture<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>sync:debug [fp_enroll_finger_img] enroll stage passed<br><br>Finger scanned.<br>fp:debug [fp_img_save_to_file] written to 'enrolled.pgm'<br>Wrote scanned image to enrolled.pgm<br>Enroll stage passed. Yay!<br><br>Scan your finger now.<br>sync:debug [fp_enroll_finger_img]<br>sync:debug [fp_enroll_finger_img] uru4000 will handle enroll stage 1/4<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 1<br>uru4000:debug [imaging_run_state] hw header lines 289<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 4<br>fp:debug [fpi_img_new] length=111360<br>fp:debug [fpi_imgdev_image_captured]<br>fp:debug [fpi_imgdev_image_captured] ignoring due to current state 2<br>drv:debug [__ssm_call_handler] 0x1cf5480 entering state 0<br><br></div><div>---- At this point, things just loop indefinitely, with the "ignoring due to current state 2" message.<br></div><div><br></div>Thanks,<br>Andreas<br></div>