finger print scanner (get finger's code)

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
BABY
 
Posts: 12
Joined: Mon Apr 06, 2015 5:44 am

Re: finger print scanner (get finger's code)

Post by BABY »

Hello!!
I want to write the template in a database on my PC.
For this I use the FINGERPRINT_DOWNLOAD instrucion .
As not implemented I 've built and the next .
uint8_t Adafruit_Fingerprint :: setModelToCB1 (void ) {
uint8_t packet [ ] = { FINGERPRINT_DOWNLOAD , 0x01 } ;
writePacket ( theaddress , FINGERPRINT_COMMANDPACKET , sizeof (packet ) +2 , packet ) ;
uint8_t len = getreply (packet ) ;
if (( len ! = 1 ) && (packet [0 ] ! = FINGERPRINT_ACKPACKET ) )
return -1 ;
return packet [ 1];
}
the problem does not work me someone can help me ? or I can write the template on the PC.
Thank You.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »


User avatar
BABY
 
Posts: 12
Joined: Mon Apr 06, 2015 5:44 am

Re: finger print scanner (get finger's code)

Post by BABY »

Hi!!!
I have a problem with the sizes
I run the sheck show_fingerprint_templates.ino.(in sensor have saved nothing but a footprint). I use is the one on page adafruit, I send the file
The result is as follows:
///******///
finger template test
Found fingerprint sensor!
template 0 loaded
template 0 transferring
256 bytes read
0xEF, 0x1, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x0, 0x82, 0x3, 0x1, 0xBC, 0x1F, 0x0, 0x0, 0xC0,
0x6, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x80, 0x2, 0x80, 0x2, 0x80, 0x2, 0xC0, 0x6, 0xE0, 0x6, 0xF0, 0xE, 0xFE, 0x3E, 0xFF,
0xFE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8D,
0x9D, 0xC0, 0x57, 0xDD, 0xA4, 0x1D, 0xE9, 0x72, 0x1A, 0x94, 0x3A, 0xC1, 0x32, 0x39, 0x58, 0x1F,
0x78, 0x8F, 0x58, 0xD5, 0x1D, 0x36, 0x7, 0x5D, 0xD6, 0x12, 0x96, 0xEF, 0x1, 0xFF, 0xFF, 0xFF,
0x2, 0x82, 0x84, 0x55, 0xF7, 0xB5, 0x31, 0x42, 0x59, 0xF4, 0x91, 0x15, 0x3, 0x9D, 0xB4, 0x56,
0x3B, 0x51, 0x39, 0x4A, 0x80, 0x27, 0x2A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xEF, 0x1, 0xFF, 0xFF, 0x2, 0x82, 0x1, 0x0, 0x80, 0x2,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xC0, 0xE0, 0xF8, 0x3C, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x35, 0x0, 0x94, 0x9F, 0x10, 0x1D, 0x40, 0x36, 0xC0, 0x5D, 0x6A, 0x93, 0xDD,
0x5, 0xFA, 0xD, 0x3D, 0xEC, 0x3B, 0x80, 0xB, 0xDA, 0x86, 0x19, 0xAD, 0x78, 0x14, 0x14, 0x5A,
0x3F, 0xC0, 0xB, 0x98, 0xAA, 0xEF, 0x1, 0xFF, 0xFF, 0x8, 0x82, 0xA9, 0xF8, 0xAC, 0x1E, 0x9D,
0xE, 0x42, 0x9A, 0x38, 0xA7, 0x78, 0x88, 0x44, 0x57, 0x1C, 0x17, 0x14, 0x14, 0xA9, 0xD, 0x81,
0x31, 0xC1, 0x14, 0x51, 0x35, 0xF0, 0x3D, 0x51, 0xC1, 0x17, 0x18, 0x16, 0xC0, 0xB9, 0xCE, 0x85,
///******///
Now I want to save the template to your computer and then retrieve the sensor to compare.
With this result as I can use the following method:
///****////
//transfer a fingerprint template from host computer to Char Buffer 2
uint8_t Adafruit_Fingerprint::uploadModel(void) {
uint8_t packet[] = {FINGERPRINT_DOWNLOAD, 0x02};
uint8_t packet2[] = {0x3, 0x1, 0x59, 0x1D, 0x0, 0x0, 0xFF, 0x00, 0xFF, 0xFE, 0xF0, 0xFE, 0xE0, 0x6, 0xE0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x8, 0x76};
uint8_t packet3[] = {0x0, 0x6, 0x0, 0xE, 0x0, 0xE, 0x0, 0x1E, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x8E, 0xE2, 0x96, 0x54, 0x19, 0xA4, 0xFE, 0x4, 0xA9};
uint8_t packet4[] = {0x1F, 0xA1, 0xDF, 0x3E, 0x5F, 0x22, 0xA6, 0x7E, 0x68, 0x25, 0xA7, 0xFE, 0xF, 0xB4, 0xDC, 0x9E, 0x2C, 0xBD, 0x19, 0xFE, 0x4C, 0x42, 0x57, 0x1E, 0x26, 0xC2, 0xC2, 0x7E, 0x38, 0x93, 0xE3, 0x7F, 0xF, 0x4D};
uint8_t packet5[] = {0x12, 0x9E, 0xDF, 0x1F, 0x15, 0x25, 0x99, 0x7F, 0x44, 0xA8, 0xAC, 0xBF, 0x34, 0x2F, 0x5B, 0x7F, 0x5C, 0xB2, 0x2A, 0x7F, 0x39, 0x40, 0x80, 0xFF, 0x44, 0x19, 0x9F, 0xBC, 0x4E, 0x95, 0xE3, 0x1D, 0xD, 0x6F};
uint8_t packet6[] = {0x62, 0x18, 0xc, 0xBD, 0x2D, 0x26, 0x7f, 0x5D, 0x26, 0xA7, 0x45, 0x3D, 0x46, 0x13, 0xF, 0x7A, 0x59, 0x13, 0xCD, 0xFA, 0x57, 0xB8, 0x81, 0xB2, 0x5A, 0x41, 0x16, 0x92, 0x42, 0x16, 0x24, 0x93, 0xB, 0x44};
uint8_t packet7[] = {0x5C, 0x39, 0x17, 0x13, 0x5C, 0x96, 0x23, 0x19, 0x54, 0xC1, 0x2B, 0x53, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xA4};
uint8_t packet8[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24};
uint8_t packet9[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24};
uint8_t packet10[] = {0x3, 0x1, 0x53, 0x17, 0x0, 0x0, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE, 0x1E, 0xFC, 0x2, 0xF8, 0x2, 0xF8, 0x0, 0xF0, 0x0, 0xE0, 0x0, 0xE0, 0x0, 0xE0, 0x0, 0xE0, 0x0, 0xC0, 0x0, 0xC0, 0x2, 0xE, 0x8A};
uint8_t packet11[] = {0xC0, 0x2, 0xC0, 0x2, 0xE0, 0x68, 0xF0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8F, 0x63, 0x96, 0x48, 0x13, 0xA5, 0x3E, 0x6, 0x8D};
uint8_t packet12[] = {0x6F, 0x24, 0x27, 0x1E, 0x6D, 0x32, 0x2A, 0x9E, 0x1F, 0xB5, 0x1C, 0x9E, 0x58, 0x40, 0x56, 0x5E, 0x2F, 0x22, 0x9F, 0x1F, 0x25, 0x24, 0xC6, 0x9F, 0x56, 0xA9, 0x0, 0x1F, 0x42, 0xAE, 0x9B, 0xFF, 0xB, 0xA2};
uint8_t packet13[] = {0x3F, 0xBC, 0x59, 0x7F, 0x48, 0xC0, 0xC0, 0x7F, 0x32, 0xC1, 0x2, 0x9F, 0x56, 0x9A, 0x66, 0x7D, 0x3D, 0x25, 0xDD, 0x9D, 0x37, 0x27, 0x5, 0x7D, 0x54, 0x17, 0x26, 0x13, 0x6B, 0x16, 0xF, 0xB8, 0xC, 0x4D};
uint8_t packet14[] = {0x62, 0x98, 0x23, 0x18, 0x6E, 0x18, 0xA3, 0x99, 0x64, 0x1A, 0x65, 0x99, 0x58, 0x14, 0x4F, 0xB4, 0x36, 0x9B, 0xA0, 0x93, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xA};
uint8_t packet15[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24};
uint8_t packet16[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24};
uint8_t packet17[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2A};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet2)+2, packet2);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet3)+2, packet3);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet4)+2, packet4);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet5)+2, packet5);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet6)+2, packet6);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet7)+2, packet7);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet8)+2, packet8);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet9)+2, packet9);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet10)+2, packet10);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet11)+2, packet11);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet12)+2, packet12);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet13)+2, packet13);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet14)+2, packet14);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet15)+2, packet15);
delay(10);
writePacket(theAddress, FINGERPRINT_DATAPACKET, sizeof(packet16)+2, packet16);
delay(10);
writePacket(theAddress, FINGERPRINT_ENDDATAPACKET, sizeof(packet17)+2, packet17);
uint8_t len = getReply(packet17);

if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
return packet17[1];
}
////****////
The packet(32) size does not match the template(16) obtained
How I can use?
Did I explain how you can do it?Are you going to give any error?
thank you very much
Attachments
show.txt
(2.62 KiB) Downloaded 267 times

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

I don't think show_fingerprint_templates.ino works correctly. Instead, you want to follow Don_Jeronimo's procedure from this post:
viewtopic.php?f=22&t=33229&hilit=templa ... 60#p359231

User avatar
BABY
 
Posts: 12
Joined: Mon Apr 06, 2015 5:44 am

Re: finger print scanner (get finger's code)

Post by BABY »

hi!!

What are the package headers?
How do I know them? I do not know which are.

You can tell me which are

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

Package headers? I don't know what you mean.

I don't know anything about Don_Jeronimo's code. I really can't help you with it.

Are you trying to do fingerprint matching on your computer? You can't do that. Only the sensor has the matching algorithm.

User avatar
vilip
 
Posts: 1
Joined: Tue Nov 28, 2017 3:38 am

Re: finger print scanner (get finger's code)

Post by vilip »

Hi Rick,

Is there a way to upload template into the sensor ?

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

Yes, you can do it, but I've never done it, and we don't have any example code for that. Sorry.

User avatar
beatricewei129
 
Posts: 5
Joined: Thu Mar 22, 2018 11:47 am

Re: finger print scanner (get finger's code)

Post by beatricewei129 »

Admin, can you pls show me how to do this?what code should I add to the show_fingerprint_templates?thanks.Since I can't operate the SFG software,I need this to download my template.

'Modify the regular fingerprint sketch. Instead of calling fingerFastSearch, make a call to getModel after the call to image2tz. See what you get from that.'

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

the getModel function doesn't work - you can't use it. I really should take it out of the library.

See here:
viewtopic.php?f=8&t=59186&p=661164#p363968

User avatar
beatricewei129
 
Posts: 5
Joined: Thu Mar 22, 2018 11:47 am

Re: finger print scanner (get finger's code)

Post by beatricewei129 »

thanks for your reply.Is there any other ways can make sfg demo software work?It appeared to be open device failed eventho I connected to the correct port.what do u mean by cannot open two device together when I try to connect it?

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

How is the fingerprint sensor connected to the PC? Can you post some clear, detailed pictures of your connections?
beatricewei129 wrote:what do u mean by cannot open two device together when I try to connect it?
I don't understand what you mean. Is this an error you're getting from SFGDemo? Can you post a screen shot?

User avatar
beatricewei129
 
Posts: 5
Joined: Thu Mar 22, 2018 11:47 am

Re: finger print scanner (get finger's code)

Post by beatricewei129 »

hi,it shows open device failed.what should I do?But I managed to enroll fingerprint using adafruit library.
Attachments
29939529_1620293971359849_1927165001_n.jpg
29939529_1620293971359849_1927165001_n.jpg (51.22 KiB) Viewed 504 times

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: finger print scanner (get finger's code)

Post by adafruit_support_rick »

So, you have the sensor connected to an Arduino, and the Arduino connected to the computer. right?

And, the sensor works with the enroll and fingerprint sketches, so the connection between the sensor and the Arduino seems to be correct.

What kind of Arduino?

Have you loaded a passthrough sketch on the Arduino, as described on this page?
https://learn.adafruit.com/adafruit-opt ... th-windows

Do you have the right COM port selected in SFGDemo? Should be the same one you're using in Arduino.

Is the Serial Monitor window closed in Arduino? You have to do that.

User avatar
beatricewei129
 
Posts: 5
Joined: Thu Mar 22, 2018 11:47 am

Re: finger print scanner (get finger's code)

Post by beatricewei129 »

hi,yea I've uploaded blank sketch for my arduino uno,and connected the wire as the instruction given.I still got the same error.Thanks for your help!

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”