Fingerprint question
Moderators: adafruit_support_bill, adafruit

Fingerprint question

by giusti on Wed Sep 26, 2012 5:11 pm

Hi,
I know that the fingerprint sensor store the fingerprint id in its own database ( enroll sketch ), I was wondering if it's possible for the fingerprint sensor to generate an unique ID without enrolling them.
Pls I need ur help asap
Thanks all
giusti
 
Posts: 8
Joined: Sun Sep 16, 2012 9:33 am

Re: Fingerprint question

by adafruit_support_bill on Wed Sep 26, 2012 6:26 pm

No. The only ID is the one you assign it when you enroll the print.
User avatar
adafruit_support_bill
 
Posts: 29610
Joined: Sat Feb 07, 2009 9:11 am

Re: Fingerprint question

by giusti on Fri Sep 28, 2012 11:15 am

how can I catch the fingerprints' image?
(as it happens in windows' demo app)
giusti
 
Posts: 8
Joined: Sun Sep 16, 2012 9:33 am

Re: Fingerprint question

by adafruit_support_rick on Fri Sep 28, 2012 11:32 am

The adafruit library does not support retrieving the image. Offhand, I'm not sure what the image size is, but it is sure to be much too large to fit into the 2K of RAM on a Uno. If you want to figure out how to try and pass the image through to some other device, all I can offer you is the datasheet (in Chinese).
User avatar
adafruit_support_rick
 
Posts: 12018
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Fingerprint question

by ianna on Mon Oct 15, 2012 6:13 am

Hi, I apologize for my bad English.
I have a question on the device fingerprints:
I want to completely erase the data stored within the fingerprints through Arduino, how do I?
thank you very much
ianna
 
Posts: 4
Joined: Fri Sep 28, 2012 9:45 am

Re: Fingerprint question

by adafruit_support_rick on Mon Oct 15, 2012 9:31 am

The adafruit library does not support clearing the fingerprint data. You would have to refer to the Chinese-language datasheet for information on how to command the unit to do this.
User avatar
adafruit_support_rick
 
Posts: 12018
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Fingerprint question

by ianna on Wed Oct 17, 2012 5:44 am

I found the string to send to the device to erase the footprints dl device, now I understand how to send the data from arduino to the fingerprint, can you help me?
I have identified the data packet to be sent as they convert it into useful language for Arduino?
(2 bytes) (4 bytes) (1 bytes) (2 bytes) (1 bytes) (2 bytes) (2 bytes) (2 bytes)
0xef01 XXXX 0x0007 0x01 0x0c pageid N Sum

shows all on page 23 of the datasheet
ianna
 
Posts: 4
Joined: Fri Sep 28, 2012 9:45 am

Re: Fingerprint question

by adafruit_support_bill on Wed Oct 17, 2012 6:10 am

You can send bytes using Serial.write(). For example:
Code: Select all | TOGGLE FULL SIZE
// Write the first two bytes:
Serial.write(0xef);
Serial.write(0x01);


You need to find out what actual numeric values to send for the next 4 bytes "XXXX" as well as "PageID" and "N".
User avatar
adafruit_support_bill
 
Posts: 29610
Joined: Sat Feb 07, 2009 9:11 am

Re: Fingerprint question

by giusti on Fri Oct 19, 2012 2:59 pm

we need this datasheet in English... :?
giusti
 
Posts: 8
Joined: Sun Sep 16, 2012 9:33 am

Re: Fingerprint question

by ianna on Tue Oct 23, 2012 2:31 am

thanks for the help but it does not work, as you would do to delete all fingerprints stored in the fingerprints? basically reset the device memory. :?
ianna
 
Posts: 4
Joined: Fri Sep 28, 2012 9:45 am

Re: Fingerprint question

by adafruit_support_rick on Tue Oct 23, 2012 6:34 am

I'm sorry, I don't read Chinese. But I'm going to guess that the command you want is "Empty" on page 18. Again, I'm just guessing, but it looks like there are two versions of the command - one to delete a single print and one to delete all of them.
User avatar
adafruit_support_rick
 
Posts: 12018
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Fingerprint question

by ianna on Wed Oct 24, 2012 9:38 am

here is the solution if it can help someone:
Code: Select all | TOGGLE FULL SIZE
#include <SoftwareSerial.h>                            //Include the NewSoftSerial library to send serial commands to the cellular module.
#include <string.h> 
SoftwareSerial  FPM10A(2,3);                           //Create a 'fake' serial port. Pin 2 is the Rx verde  pin, pin 3 is the Tx bianco pin.
/*----------external commands----------*/
char receive_command[20]={};
char VfyPwd[10]="VfyPwd ";                             //Verify password
char GenImg[10]="GenImg ";                             //Record fingerprint image
char UpImg[10]="UpImg ";                               //Upload image
char DownImg[10]="DownImg ";                           //Download image
char Img1Tz[10]="Img1Tz ";                             //Geneated features saved to CharBuffer1
char Img2Tz[10]="Img2Tz ";                             //Generated features saved to CharBuffer2
char RegMode1[10]="RegMode1 ";                         //Template of geature combiation
char UpChar[10]="UpChar ";                             //Upload featues or template
char DownChar[10]="DownChar ";                         //Download features or template
char Store[10]="Store ";                               //store template
char LoadChar[10]="LoadChar ";                         //Read template
char DeletChar[11]="DeletChar ";                       //delete template
char Empty[10]="Empty ";                               //clean out fingerprint library


char cnt;
unsigned int Templete_Num;
unsigned int ACK_Sum;

volatile unsigned char UART1_FINGERPRINT_RECEVICE_BUFFER[24];
unsigned char receive_ACK[24];

/*----------FINGERPRINT protocol definition -----------*/

                                                   
unsigned char FP_Delet_All_Model[6]={0x01,0x0,0x03,0x0d,0x00,0x11};                                                 
                          //delete specified template

/*----------inilization-----------*/
void setup()
{
 
  Serial.begin(9600); // open serial port, and set the baud rate to 9600 bps
  FPM10A.begin(57600);
}
/*----------main loop-----------*/
void loop()
{

 Empty_Finger();
}



void FINGERPRINT_Cmd_Delete_All_Model(void)
{
     
     unsigned char b;   

    for(b=0;b<6;b++)
      FPM10A.write(FP_Pack_Head[b]);   

    for(b=0;b<6;b++)
      FPM10A.write(FP_Delet_All_Model[b]);   
}

void Empty_Finger(void)
{

       
        FINGERPRINT_Cmd_Delete_All_Model();                                         
       
       
       
        for(unsigned char b=0;b<12;b++)                                           
                                        {
                                           receive_ACK[b]= FPM10A.read();
                                        }
        if(receive_ACK[9]==0x00)
        {
           Serial.println("Empty_OK");
        }
        else
        {
           Serial.println("Empty_ERROReee");
           Serial.println(receive_ACK[9]);
        }
        delay(1000);
}
Last edited by adafruit_support_rick on Wed Oct 24, 2012 9:43 am, edited 1 time in total.
Reason: please use Code tags when posting code
ianna
 
Posts: 4
Joined: Fri Sep 28, 2012 9:45 am

Re: Fingerprint question

by adafruit_support_rick on Wed Oct 24, 2012 9:48 am

@ianna -
You got it working! Congratulations! :D
User avatar
adafruit_support_rick
 
Posts: 12018
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Fingerprint question

by adafruit_support_rick on Wed Oct 31, 2012 11:47 am

Update:

I took the liberty of saving an automatic Google translation of the chinese datasheet to a pdf. It's available on github in the documentation folder of the Adafruit Fingerprint Sensor Library.
User avatar
adafruit_support_rick
 
Posts: 12018
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Fingerprint question

by Rickers on Thu Oct 10, 2013 7:04 pm

Hi, im trying delete all IDs recorded in my FingerPrint, i use the code written by Ianna but when i compile the code it is indicates an error:

enroll.pde: In function 'void FINGERPRINT_Cmd_Delete_All_Model()':
enroll:56: error: 'FP_Pack_Head' was not declared in this scope

someone can help solve this problem ???

Thanks
Rickers
 
Posts: 2
Joined: Mon Apr 08, 2013 6:54 pm