adafruit / adafruit-fingerprint-sensor-library Goto Github PK
View Code? Open in Web Editor NEWArduino library for interfacing to the fingerprint sensor in the Adafruit shop
Home Page: http://www.adafruit.com/products/751
License: Other
Arduino library for interfacing to the fingerprint sensor in the Adafruit shop
Home Page: http://www.adafruit.com/products/751
License: Other
Hi,
I have some troubles to get running my sketch. There should be two modes for the fingerprint scanner, one is called "SCAN_ACTIVE", the other mode is called "ENROLL".
Simply I switch the mode over Serial (actually over IDE console), but If I use finger.getImage(); in the other function, it crashes/reboots my Arduino Nano v3.0 (ATmega238) instantly.
If I only have getFingerprintEnroll(id) have enabled, it crashes (i don't need to switch the mode from SCAN_ACTIVE to ENROLL), I absolutely have no idea why...
My code:
/***************************************************
This is an example sketch for our optical Fingerprint sensor
Designed specifically to work with the Adafruit BMP085 Breakout
----> http://www.adafruit.com/products/751
These displays use TTL Serial to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
#include <Adafruit_Fingerprint.h>
#include <Timer.h>
int getFingerprintIDez();
String mode;
String content = "";
int id = 0;
int val;
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
SoftwareSerial fingerprint(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerprint);
Timer t;
void setup()
{
while (!Serial); // For Yun/Leo/Micro/Zero/...
Serial.begin(9600);
finger.begin(9600);
Serial.println("Adafruit finger detect test\n");
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1);
}
mode = "SCAN_ACTIVE";
Serial.print(mode+"\n");
int tickEvent1 = t.every(0, listenWemos);
int tickEvent2 = t.every(0, listenFP);
}
void listenWemos() {
while (Serial.available() > 0) {
mode = Serial.readStringUntil('\n');
val = Serial.parseInt();
Serial.print("Received:" + mode+ ":"+val+"\n");
}
}
void listenFP() {
if(mode == "SCAN_ACTIVE") {
id = getFingerprintIDez();
if(id > 0) {
Serial.print(mode + "\n");
Serial.print(id);
id = 0;
}
} else if(mode == "ENROLL") {
Serial.println("Ready to enroll a fingerprint! Please Type in the ID # you want to save this finger as...");
id = readnumber();
Serial.print("Enrolling ID #");
Serial.println(id);
while (! getFingerprintEnroll(id) );
}
}
void loop()
{
t.update();
}
// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
return finger.fingerID;
}
// ENROLL
uint8_t readnumber(void) {
uint8_t num = 0;
boolean validnum = false;
while (1) {
while (! Serial.available());
char c = Serial.read();
if (isdigit(c)) {
num *= 10;
num += c - '0';
validnum = true;
} else if (validnum) {
return num;
}
}
}
uint8_t getFingerprintEnroll(int id) {
int p = -1;
Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print("ID "); Serial.println(id);
p = -1;
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
The whole is a combination of
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/blob/master/examples/fingerprint/fingerprint.ino
and
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/blob/master/examples/enroll/enroll.ino
I hope someone can help me!
Link in README file follow to http://www.adafruit.com/products/751
But this link is broken. Need to change link or restore the page.
Can we skip the onboard FLASH memory and check for fingerprint in mysqli database somewher on the internet ?
The size allocated by packet[] should be at least 4 bytes.
uint8_t packet[] = {FINGERPRINT_TEMPLATECOUNT};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(packet);
if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
** templateCount = packet[2];
templateCount <<= 8;
templateCount |= packet[3];
**
// I think this will blow up.
Hi.
I use this library for various finger print modules from GROW.
And I want to share a bit of code for controlling the three-color LED in module GROW R503. Manufacturer called this function as Aura Control.
FPM.h
#define FPM_AURA_CTRL_BREATHING 0x01
#define FPM_AURA_CTRL_FLASHING 0x02
#define FPM_AURA_CTRL_ALWAYS_ON 0x03
#define FPM_AURA_CTRL_ALWAYS_OFF 0x04
#define FPM_AURA_CTRL_GRADUALLY_ON 0x05
#define FPM_AURA_CTRL_GRADUALLY_OFF 0x06
#define FPM_AURA_COLOR_RED 0x01
#define FPM_AURA_COLOR_BLUE 0x02
#define FPM_AURA_COLOR_PURPLE 0x03
FPM.h
int16_t FPM::setAuraLedConfig(uint8_t ctrlCode, uint8_t speed, uint8_t color, uint8_t times) {
buffer[0] = FPM_AURACONTROL;
buffer[1] = ctrlCode;
buffer[2] = speed;
buffer[3] = color;
buffer[4] = times;
writePacket(FPM_COMMANDPACKET, buffer, 5);
uint8_t confirm_code = 0;
int16_t len = read_ack_get_response(&confirm_code);
if (len < 0)
return len;
return confirm_code;
}
Usage 1
finger.setAuraLedConfig(FPM_AURA_CTRL_BREATHING, 150, FPM_AURA_COLOR_BLUE, 0);
Usage 2
finger.setAuraLedConfig(FPM_AURA_CTRL_FLASHING, 10, FPM_AURA_COLOR_RED, 10);
Best regards,
Eugene.
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
I use a lot of serial ports on esp8266, but “Did not find fingerprint sensor :(”,(use usb port on computer is normal, so the sensor can work properly ), So is esp8266 supported?
Please add a 500ms delay before the initialisation of the library in the examples. The datasheet says that the module needs 500ms after powerup to init it's TTL comunication and I've experienced that multiple times (Sensor not found :-( )
If you add the delay it works everytime =D
Excuse me. I want to again raise the issue of implementing the rewriting of fingerprint templates from one scanner to another. I appeal to you because you are leaders in the development of software for these scanners.
uint8_t Adafruit_Fingerprint::downloadModel(uint16_t id, uint8_t packet_1[], uint8_t packet_2[], uint8_t slot) {
uint8_t packet[] = {FINGERPRINT_DOWNLOAD, slot};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(recvPacket);
if ((len != 1) && (recvPacket[0] != FINGERPRINT_ACKPACKET))
return -1;
if (recvPacket[1] == 0x00) {
writePacket(theAddress, FINGERPRINT_DATAPACKET, 130, packet_1);
writePacket(theAddress, FINGERPRINT_DATAPACKET, 130, packet_2);
return recvPacket[1];
} else {
return recvPacket[1];
}
}
I made this with the latest version of the code. I need to put templates back to the sensor when I free the memory. The documention of the sensor says it's allowed, but not implemented in the library. This does not work, it will be fine to improve the library.
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Can you provide Sensor library for Raspberry pi3?
I am simply running the example code for fingerprint and am getting this error without having made any changes. What could I be doing wrong?
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Kindly guide me how to upload the above in another finger print sensor R307
Arduino board: Wemos D1 Mini Pro
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
When calling any library function, all errors are translated to FINGERPRINT_PACKETRECIEVEERR
. This happens in https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/blob/master/Adafruit_Fingerprint.cpp#L42
Re this thread:
https://forums.adafruit.com/viewtopic.php?f=19&t=168325&p=824485#p824485
For a MEGA - current preprocessor logic in example(s) will setup a software serial instance on unsupported pins. Since conditionals are being used, can't simply "manually" set to HW serial, which is what the guide has you do:
https://learn.adafruit.com/adafruit-optical-fingerprint-sensor/wiring-for-use-with-arduino#soft-and-hard-serial-2976065-15
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Is their any way to expand memory of Fingerprint sensor or any other sensor that I can purchase from your store. Current sensor limitation Storage capacity: 162 templates. I need more. plz need help.
Hello. I am using the fingerprint sensor with TI's Msp430. Although I have managed to port library, It require to use hardware serial. Is there an example code, like enroll, exclusively for hardware serial? I can't really understand the hardware serial commented part's purpose from existing examples. Probably the code for interfacing with Leo, micro will be great as reference. Thanks.
The error and output window can be seen here: https://backup.filesanywhere.com/FS/M.aspx?v=896a668e5f907675a06d
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Hi. I'm experiencing some bizarre behavior when extracting templates from the sensor. The DY50 sensor I'm using sends the template in batches of 128 bytes (packet size: 139). However after the 5th packet the reader just keeps sending packets filled with zeroes, and it never stops. The packet tag remains 0x2 and never changes to 0x8, the identifier for the end data packet.
I've thought there was a command for getting the template size for the sensor. But after going throught the datasheet it seems there is none. Are all template files for these DY50 readers 512 bytes??
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
I am using Uno, finger print module & Adafruit library.
With using all the library all the function works ok, like delete, scan but i have some issues in Enroll function.
Enroll function is below, it is same, except some minor changes & I had a small key_read function, in case user wants to exit. key_read is small non-blocking function, read a variable only, which get set/reset in ISR only, so minimal code there.
Problem is :
a) When first scan is done, it is ok.
b) next it ask for remove finger & place again.
c) now doing that & place finger again, code many times gives finger mismatch.
d) 9 out of 10 times it is giving mismatch . Although I am doing the same way every-time.
Same happens if I use En-roll example from Adafruit also.
What could be the error?
One possible error I think in Adafruit library there is variable "confidence", which check the matching level of both. Might be it is set to very high value, but in library I didn't find where to set it low.
In Enroll function, it causes problem in createmodel function , it reurns mismatch.
`
uint8_t add_fingerprint_id(uint16_t id , uint8_t *r_key)
{
uint8_t point = 255U;
uint8_t key = no_key;
uint8_t breakloop;
uint8_t next = 0U;
lcd.setCursor(0 , 3);
lcd_string_const(add_place_str);
serial_string_nl_const(add_place_str);
/* clear key vars */
clear_key_vars();
breakloop = 0U;
while(0U == breakloop)
{
point = finger.getImage();
switch(point)
{
case FINGERPRINT_OK:
lcd.setCursor(0 , 3);
lcd_string_const(add_taken_str);
serial_string_nl_const(add_taken_str);
breakloop = 1U;
break;
case FINGERPRINT_NOFINGER:
lcd.setCursor(0 , 3);
lcd_string_const(add_no_finger_str);
serial_string_nl_const(add_no_finger_str);
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.setCursor(0 , 3);
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
break;
case FINGERPRINT_IMAGEFAIL:
lcd.setCursor(0 , 3);
lcd_string_const(add_image_err_str);
serial_string_nl_const(add_image_err_str);
break;
default:
lcd.setCursor(0 , 3);
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
break;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
breakloop = 0U;
point = finger.image2Tz(1);
switch(point)
{
case FINGERPRINT_OK:
lcd_string_const(add_image_conv_str);
serial_string_nl_const(add_image_conv_str);
breakloop = 1U;
break;
case FINGERPRINT_IMAGEMESS:
lcd_string_const(add_image_messy_str);
serial_string_nl_const(add_image_messy_str);
next = 1U;
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
next = 1U;
break;
case FINGERPRINT_FEATUREFAIL:
lcd_string_const(add_no_feature_str);
serial_string_nl_const(add_no_feature_str);
next = 1U;
break;
case FINGERPRINT_INVALIDIMAGE:
lcd_string_const(add_no_feature_str);
serial_string_nl_const(add_no_feature_str);
next = 1U;
break;
default:
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
next = 1U;
break;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
lcd_string_const(add_remove_str);
serial_string_nl_const(add_remove_str);
delay(2000);
point = 0U;
breakloop = 0U;
while(0U == breakloop)
{
point = finger.getImage();
if(FINGERPRINT_NOFINGER == point)
{
breakloop = 1U;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
lcd_string_const(add_again_str);
serial_string_nl_const(add_again_str);
point = 255U;
lcd.setCursor(0 , 3);
breakloop = 0U;
while(0U == breakloop)
{
point = finger.getImage();
switch(point)
{
case FINGERPRINT_OK:
lcd.setCursor(0 , 3);
lcd_string_const(add_taken_str);
serial_string_nl_const(add_taken_str);
breakloop = 1U;
break;
case FINGERPRINT_NOFINGER:
lcd.setCursor(0 , 3);
lcd_string_const(add_no_finger_str);
serial_string_nl_const(add_no_finger_str);
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.setCursor(0 , 3);
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
break;
case FINGERPRINT_IMAGEFAIL:
lcd.setCursor(0 , 3);
lcd_string_const(add_image_err_str);
serial_string_nl_const(add_image_err_str);
break;
default:
lcd.setCursor(0 , 3);
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
break;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
breakloop = 0U;
point = finger.image2Tz(2);
switch(point)
{
case FINGERPRINT_OK:
lcd_string_const(add_image_conv_str);
serial_string_nl_const(add_image_conv_str);
breakloop = 1U;
break;
case FINGERPRINT_IMAGEMESS:
lcd_string_const(add_image_messy_str);
serial_string_nl_const(add_image_messy_str);
next = 1U;
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
next = 1U;
break;
case FINGERPRINT_FEATUREFAIL:
lcd_string_const(add_no_feature_str);
serial_string_nl_const(add_no_feature_str);
next = 1U;
break;
case FINGERPRINT_INVALIDIMAGE:
lcd_string_const(add_no_feature_str);
serial_string_nl_const(add_no_feature_str);
next = 1U;
break;
default:
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
next = 1U;
break;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
lcd_string_const(add_create_str);
serial_string_nl_const(add_create_str);
lcd.setCursor(0 , 3);
point = finger.createModel();
if(FINGERPRINT_OK == point)
{
lcd_string_const(add_match_str);
serial_string_nl_const(add_match_str);
}
else if(FINGERPRINT_PACKETRECIEVEERR == point)
{
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
next = 1U;
}
else if(FINGERPRINT_ENROLLMISMATCH == point)
{
lcd_string_const(add_mismatch_str);
serial_string_nl_const(add_mismatch_str);
next = 1U;
}
else
{
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
next = 1U;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
if(0U == next)
{
lcd.setCursor(0 , 3);
point = finger.storeModel(id);
if(FINGERPRINT_OK == point)
{
lcd_string_const(add_store_str);
serial_string_nl_const(add_store_str);
}
else if(FINGERPRINT_PACKETRECIEVEERR == point)
{
lcd_string_const(add_comm_err_str);
serial_string_nl_const(add_comm_err_str);
next = 1U;
}
else if(FINGERPRINT_BADLOCATION == point)
{
lcd_string_const(add_not_store_str);
serial_string_nl_const(add_not_store_str);
next = 1U;
}
else if(FINGERPRINT_FLASHERR == point)
{
lcd_string_const(add_flash_err_str);
serial_string_nl_const(add_flash_err_str);
next = 1U;
}
else
{
lcd_string_const(add_unknown_err_str);
serial_string_nl_const(add_unknown_err_str);
next = 1U;
}
/* read the key */
key = key_read();
if(EXIT_KEY == key)
{
breakloop = 1U;
next = 1U;
}
}
if(EXIT_KEY == key)
{
*r_key = EXIT_KEY;
}
else
{
*r_key = no_key;
}
delay(2000);
return point;
} /* function ends here */
`
When using the fingerprint sketch, there's no serial output on using getFingerprintID. Also when using getFingerprintIDez unknown error is presented.
Any assistance will be much appreciated.
IDE version 1.8.12
Enrolling fingerprints work. Once I try do detect one, I get a communication error.
I would appreciate your help.
15:06:10.474 -> Adafruit finger detect test
<- 0xEF
15:06:11.476 -> <- 0x1
15:06:11.476 -> <- 0xFF
15:06:11.476 -> <- 0xFF
15:06:11.511 -> <- 0xFF
15:06:11.511 -> <- 0xFF
15:06:11.511 -> <- 0x7
15:06:11.511 -> <- 0x0
15:06:11.545 -> <- 0x3
15:06:11.545 -> <- 0x0
15:06:11.545 -> <- 0x0
15:06:11.545 -> <- 0xA
15:06:11.579 -> Found fingerprint sensor!
<- 0xEF
15:06:11.616 -> <- 0x1
15:06:11.616 -> <- 0xFF
15:06:11.616 -> <- 0xFF
15:06:11.650 -> <- 0xFF
15:06:11.650 -> <- 0xFF
15:06:11.650 -> <- 0x7
15:06:11.650 -> <- 0x0
15:06:11.683 -> <- 0x5
15:06:11.683 -> <- 0x0
15:06:11.683 -> <- 0x0
15:06:11.683 -> <- 0x1
15:06:11.717 -> <- 0x0
15:06:11.717 -> <- 0xD
15:06:11.717 -> Sensor contains 1 templates
15:06:11.753 -> Waiting for valid finger...
15:06:11.790 -> <- 0xEF
15:06:11.790 -> <- 0x1
<- 0xFF
15:06:11.823 -> <- 0xFF
15:06:11.823 -> <- 0xFF
15:06:11.823 -> <- 0xFF
15:06:11.859 -> <- 0x7
15:06:11.859 -> <- 0x0
15:06:11.859 -> <- 0x3
15:06:11.859 -> <- 0x2
15:06:11.859 -> <- 0x0
15:06:11.859 -> <- 0xC
15:06:11.859 -> No finger detected
<- 0xEF
15:06:17.425 -> <- 0x1
15:06:17.425 -> <- 0xFF
15:06:17.425 -> <- 0xFF
15:06:17.425 -> <- 0xFF
15:06:17.425 -> <- 0xFF
15:06:17.425 -> <- 0x7
15:06:17.425 -> <- 0x0
15:06:17.461 -> <- 0x3
15:06:17.461 -> <- 0x0
15:06:17.461 -> <- 0x0
15:06:17.461 -> <- 0xA
15:06:17.530 -> Image taken
<- 0xEF
15:06:17.876 -> <- 0x1
15:06:17.876 -> <- 0xFF
15:06:17.876 -> <- 0xFF
15:06:17.910 -> <- 0xFF
15:06:17.910 -> <- 0xFF
15:06:17.910 -> <- 0x7
15:06:17.910 -> <- 0x0
15:06:17.945 -> <- 0x3
15:06:17.945 -> <- 0x0
15:06:17.945 -> <- 0x0
15:06:17.945 -> <- 0xA
15:06:17.979 -> Image converted
15:06:17.979 -> <- 0xEF
15:06:17.979 -> <- 0x1
15:06:18.012 -> <- 0xFF
15:06:18.012 -> <- 0xFF
15:06:18.012 -> <- 0xFF
15:06:18.047 -> <- 0xFF
15:06:18.047 -> <- 0x1
15:06:18.047 -> <- 0x0
15:06:18.047 -> <- 0x8
15:06:18.080 -> <- 0x1B
15:06:18.080 -> <- 0x1
15:06:18.080 -> <- 0x0
15:06:18.080 -> <- 0x0
15:06:18.114 -> <- 0x0
15:06:18.114 -> <- 0xA3
15:06:18.114 -> <- 0x0
15:06:18.114 -> <- 0xC8
15:06:18.186 -> Communication error
For a project I am using SEN0188 sensor, which has superior storage capacity when compared to the standard models, modifying the examples of the library it was easy to register the biometrics (enroll.ino).
However, I can not do the quick search on the sensor bank (fingerprint.ino) , only the ids below something close to 162. are recognized. The display of the templates (show_fingerprint_templates.ino) works normally.
The question that is how to fix the quick search (fingerFastSearch) to read and match with all the saved images in the bank?
Biometric Sensor: (https://www.dfrobot.com/wiki/index.php/SEN0188_Fingerprint)
I had no problem after uploading 'changepassword' example. However, if I change Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); to
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial, 1337);
It says that it prints 'Did not find fingerprint sensor :('
Arduino board: Uno WiFi DevEd
Arduino IDE version (found in Arduino -> About Arduino menu): 1.8.3
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): Run enroll example sketch, then run following code:
#include <Adafruit_Fingerprint.h>
void setup() {
Adafruit_Fingerprint f = Adafruit_Fingerprint(&SoftwareSerial(2, 3));
f.begin(57600);
while(!Serial);
Serial.begin(9600);
Serial.println(f.getTemplateCount());
}
void loop() {
// put your main code here, to run repeatedly:
}
This always prints 0, even if there are templates stored.
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
I was wondering why the fingersensor is not working. It was working the past years.
After searching for hours... and testing... and thinking... and testing... I found the reason why.
The Arduino IDE 1.6.13 has one issue with arrays.
If i use ... byte[] arr
for(i=0;i<5;i++) Serial.print(arr[i]);
all is working fine. But...
byte test = arr[1]; .... then I will get wrong values. maybe a false memory access from the compiler?
With Arduino IDE 1.6.7 .... all is working fine :)
In file included from enroll.ino:17:0:
C:\Users\Documents\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-1.1.3/Adafruit_Fingerprint.h:22:30: fatal error: SoftwareSerial.h: No such file or directory
compilation terminated.
Error compiling.
I am facing this issue .
please add a function to copy complete fingerprint database from one sensor to other sensor...
I want to connect my fingerprint device with MKR1000. with hardware serial pin13-RX and 14-TX
As I connect this fingerprint device with arduino MICRO .With this sketch, It working with Hardware serial. In this sketch some instruction how to connect with micro hardware serial its working fine .
Then i try to upload this sketch with my new MKR1000 module . i remove some line from main sketch those are.
#include <SoftwareSerial.h> // pin #2 is IN from sensor (GREEN wire) // pin #3 is OUT from arduino (WHITE wire) SoftwareSerial mySerial(2, 3); Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
and enter those line for micro and also MKR1000
//On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial1);
Doing those step its successfully upload to micro .. but its return some error with MKR100
Adafruit_Fingerprint.h file and Adafruit_Fingerprint.cpp file have this softwareserial #include <SoftwareSerial.h>
and more related file for connecting software serial connection , for this there is uploading error.
Build options changed, rebuilding all
In file included from C:\Users\sony\Documents\Arduino\Adafruit-Fingerprint-Sensor-Library-master\examples\fingerprint\fingerprint.ino:18:0:
C:\Users\sony\Documents\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library/Adafruit_Fingerprint.h:18:28: fatal error: SoftwareSerial.h: No such file or directory
#include <SoftwareSerial.h>
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino MKR1000.
those error come at compile time ..
Thank u
on enrolling process ,after scanning finger print ,an unknown error occurs,plz help me to rectify it,i will be happy if i get suggestions on some common unknown error..
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:
Do not use GitHub issues for troubleshooting projects and issues. Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.
If following a tutorial or guide be sure you didn't miss a step. Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.
For Arduino projects check these very common issues to ensure they don't apply:
For uploading sketches or communicating with the board make sure you're using
a USB data cable and not a USB charge-only cable. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.
Be sure you are supplying adequate power to the board. Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.
Double check all soldering joints and connections. Flakey connections
cause many mysterious problems. See the guide to excellent soldering for examples of good solder joints.
Ensure you are using an official Arduino or Adafruit board. We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.
If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:
Arduino board: INSERT ARDUINO BOARD NAME/TYPE HERE
Arduino IDE version (found in Arduino -> About Arduino menu): INSERT ARDUINO
VERSION HERE
List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): LIST REPRO STEPS BELOW
I notice I could extract a fingerprint's template from the library. I wonder whether there is anyway to upload the template to my server where I can compute the matching score.
(As the FP sensor could store a limited number of fingerprints, I plan to keep a database for all the templates on the server instead. The issue now is how to match a template at the server.)
Hello. Could someone please guide as to what is the fingerprint matching algorithm used in the fingerprint module. What are the steps that occur when fingerprints are matched? Thank you in advance.
The link from here: [https://www.adafruit.com/product/4651] points to this library.
Nowhere in the README does it state compatibility--only the older sensor. Please add / update!
Forgive me but I don't see a make file. How do I compile it, what are its dependencies?
Not exactly an issue, rather than a minor tweak for better UI and easier troubleshooting. When runing the example "fingerprint", when there are no fingerprints stored it still says the same message as when there are 1-XXX saved ID's. I wrote this code so that when there are no data stored (0 Finger ID's) it displays the message:
Sensor doesn't contain any fingerprint data. Please run the 'enroll' example..
Just for better UI and easier troubleshooting...
Here is the code:
`finger.getTemplateCount(); // EDIT FROM HERE:
if (finger.templateCount == 0) {
Serial.print("Sensor doesn't contain any fingerprint data. Please run the 'enroll' example.");
}
else {
Serial.println("Waiting for valid finger...");
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
}`
it's from line 49, for the finger.getTemplateCount();
Edited fingerprint.ino file: https://hastebin.com/bizotababe.cpp
Thank you.
Line 49 - assignment operator in conditional expression.
if ((len == 1) && (packet[0] = FINGERPRINT_ACKPACKET) && (packet[1] == FINGERPRINT_OK))
should be
if ((len == 1) && (packet[0] == FINGERPRINT_ACKPACKET) && (packet[1] == FINGERPRINT_OK))
http://forums.adafruit.com/viewtopic.php?f=22&t=33118&start=15
Error message is:
enroll:29: error: no matching function for call to 'Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*)'
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
^
C:\Users\stfa4\AppData\Local\Temp\arduino_modified_sketch_753123\enroll.ino:29:61: note: candidates are:
In file included from C:\Users\stfa4\AppData\Local\Temp\arduino_modified_sketch_753123\enroll.ino:17:0:
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:77:3: note: Adafruit_Fingerprint::Adafruit_Fingerprint(HardwareSerial*)
Adafruit_Fingerprint(HardwareSerial *);
^
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:77:3: note: no known conversion for argument 1 from 'SoftwareSerial*' to 'HardwareSerial*'
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:72:7: note: constexpr Adafruit_Fingerprint::Adafruit_Fingerprint(const Adafruit_Fingerprint&)
class Adafruit_Fingerprint {
^
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:72:7: note: no known conversion for argument 1 from 'SoftwareSerial*' to 'const Adafruit_Fingerprint&'
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:72:7: note: constexpr Adafruit_Fingerprint::Adafruit_Fingerprint(Adafruit_Fingerprint&&)
C:\Users\stfa4\Desktop\Arduino\libraries\Adafruit-Fingerprint-Sensor-Library-master/Adafruit_Fingerprint.h:72:7: note: no known conversion for argument 1 from 'SoftwareSerial*' to 'Adafruit_Fingerprint&&'
C:\Users\stfa4\AppData\Local\Temp\arduino_modified_sketch_753123\enroll.ino: In function 'uint8_t getFingerprintEnroll()':
C:\Users\stfa4\AppData\Local\Temp\arduino_modified_sketch_753123\enroll.ino:217:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
exit status 1
no matching function for call to 'Adafruit_Fingerprint::Adafruit_Fingerprint(SoftwareSerial*)'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.