Fingerprint scanners are awesome. Why use a key when you have one right at the tip of your finger? Unfortunately, they’re usually unreliable or difficult to implement. Well not anymore! We’ve found this great fingerprint module from ADH-Tech that communicates over TTL Serial so you can easily embed it into your next project.
The module itself does all of the heavy lifting behind reading and identifying the fingerprints with an on-board optical sensor and 32-bit CPU. All you need to do is send it simple commands. To get started, just register each fingerprint that you want to store by sending the corresponding command and pressing your finger against the reader three times. The fingerprint scanner can store different fingerprints and the database of prints can even be downloaded from the unit and distributed to other modules. As well as the fingerprint “template,” the analyzed version of the print, you can also retrieve the image of a fingerprint and even pull raw images from the optical sensor!
This is the updated version of the GT-511 which has an increased memory capacity. The module can store up to 200 different fingerprints (that’s 10x more than the old version!) and is now capable of 360° recognition.
The module is small and easy to mount using two mounting tabs on the side of the sensor. The on-board JST-SH connector has four signals: Vcc, GND, Tx, Rx. A compatible JST-SH pigtail can be found in the related items below. Demo software for PC is available in the documents below, simply connect the module to your computer using an FTDI Breakout and start the software to read fingerprints!
Note: The module does not come with a cable, if you do not have a 4-wire JST-SH pigtail, you can add PRT-10359 to your cart, or check in the Recommended Products section below.
Scanner Not Recognizing your Fingers?
There have been issues trying to enroll with the Arduino example code. This is usually due to fingers being dry and not having good contact on the scanner. The timing of your finger on the scanner is a little tricky too. I had to try enrolling a few times before it was able to enroll or identify my finger. This is common with any fingerprint scanner like the one that is on my smartphone. Try re-enrolling your finger.
If you see this error in the SDK demo software, you probably did not place your finger on the fingerprint scanner sufficiently for each enrollment or did not have good contact:
The enrollment is failed!
Try placing your finger exactly the same for all three enrollments and ensure that your finger has good contact against the scanner.
Also, make sure that there are no loose connections. The last thing to check is the connection between your scanner and Arduino. Each of the fingerprint scanners use the same command protocols so the Arduino example code in the Instructables tutorial can be used for any of the scanners.
For a secure connection, I recommend soldering the ends of the wire to some header pins [like these https://www.sparkfun.com/products/116 ] so that the connection is not loose when inserting it into a standard female header sockets on an FTDI or the RedBoard/Arduino Uno. This will provide easy access to the small 4-pin JST-SH connector that is on the fingerprint scanner. After checking the connections of the scanner in the datasheet, I soldered connections from the JST -SH connector labeled J2 from the scanner to the header pins. I used some heat shrink in order to use it with the FTDI to reinforce the solder joint. As a note, make sure to remove the JST-SH SMD connector that is on the 4-wire jumper wire assembly. This is the same connector that is on the fingerprint scanner. You should be able to remove the connector easily with your hands without cutting any of the assembly off. The connections with the header pins are based on the footprint of the 3.3V FTDI basic breakout https://www.sparkfun.com/products/9873 w/ a mini-B cable https://www.sparkfun.com/products/11301 :
Pin # Fingerprint Scanner <-> FTDI 3.3V 1 UART_TX (3.3V TTL) <-> RX 2 UART_RX (3.3V TTL) <-> TX 3 GND <-> GND 4 Vin (3.3V~6V) <-> 3.3V
Note: If you were using the JST-SH cable, you would be wiring the black wire to pin 1 (next to the notch indicating the polarity on the fingerprint scanner to the Rx pin of your FTDI, For an example of the modified cable assembly, I suggest checking out the images from our Google drive:
Demo Software Development Kit (SDK) w/ a FTDI
For basic operation with the demo software, I recommend checking out the demo software that is linked in the documents section of the product page. Each demo software is unique to that version of the fingerprint scanner and it will not work with the other versions. After connecting the fingerprint scanner to the FTDI, I was able to utilize all of the features as stated in the datasheet. These features in the demo software are based on the protocol commands.
To operate on a computer using the SDK, just open the SDK_DEMO.exe executable, select the COM port that the FTDI enumerated to from the serial port number’s drop down menu, and click on the Open button. You would need to enroll your finger 3 times for the ID before the scanner can save it as a template.
Demo Software Development Kit (SDK) w/ an Arduino Microcontroller
Testing this with an Arduino Uno and the serial passthrough code https://learn.sparkfun.com/tutorials/xbee-shield-hookup-guide#example-communication-test, I was able to connect to the SDK demo software. This might be another alternative if you not have a 3.3V FTDI to connect to your fingerprint scanner. You just need to make sure that have the correct logic level translation, are selecting a COM port that is lower than COM10 (the lower COM number, the better; COM3 is the lowest that you can use), and selecting a baud rate of 9600 in the SDK demo software.
Example Code for Arduino
If you were using a microcontroller with the fingerprint scanner, you would need to write code based off of the demo software and the protocol commands. Luckily, there was someone in the community that wrote some example code to blink the blue LED, enroll, and identify the fingerprint that was saved in a template. The library is limited in the functionality compared to the SDK demo software but is sufficient enough for basic use. It is posted in a GitHub Repository https://github.com/sparkfun/Fingerprint_Scanner-TTL .This code works with the GT511C3, GT511C1, and GT511C1R. This code is incomplete and would require more code to utilize all the features of the fingerprint scanner like in the SDK. Here are the connections that you would need to make using a bi-directional logic level converter https://www.sparkfun.com/products/12009:
Pin # Fingerprint Scanner <-> Logic Level Converter <-> Arduino Uno 1 UART_TX (3.3V TTL) <-> LV4 <-> HV4 <-> RX (pin 4) 2 UART_RX (3.3V TTL) <-> LV1 <-> HV1 <-> TX (pin 5) 3 GND <-> GND <-> GND <-> GND 4 Vin (3.3V~6V) <-> HV <-> 5V LV <-> 3.3V
Software Serial with the Arduino Mega 2560
The demo code was designed for the Atmega328P on the Arduino Uno. If you were using it with an Arduino Mega2560, you would need to re-configure the software serial pin definitions. The reason why is because not all the pins on the Arduino Mega can support change interrupts for a serial Rx pin as stated in the limitations => https://www.arduino.cc/en/Reference/SoftwareSerial. Just change this section of code on line 18:
FPS_GT511C3 fps(4, 5); //software serial pins for Arduino's / Atmega328P's
FPS_GT511C3 fps(10, 11); //software serial acceptable pin for the Arduino Mega
We don’t sell the cable with the GT-511C3 fingerprint scanner https://www.sparkfun.com/products/11792. You would need to get the 4 wire JST SH jumper cable separately https://www.sparkfun.com/products/10359. There is more than one way to create a connection between the fingerprint scanner and your system. For a more secure connection with the thin gauged wire, I recommend modifying the cable. Any loose connections can have issues powering the sensor and sending reliable data.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
Based on 13 ratings:
1 of 1 found this helpful:
In my projects I need to use functions GetTemplate and SetTemplate. Tech.support said that everythting works, but it’s wrong.
Fuctions GetTemplate and SetTemplate are not working on arduino…
It;s very sad.
1 of 1 found this helpful:
OK. The specs are light on this one even with the 36-page spec sheet. I had to request the hardware hookup “FPS_Connection.jpg” from Sparkfun; shouldn’t that be on the site? On the product’s page, there is a note that says “A compatible JST-SH pigtail can be found in the related items below,” but the one I picked was wrong. Plus you need a 6-pin, which is not mentioned. There should really be a ready-made JST to FTDI cable for this product. The empty pad next to the JST doesn’t look like the photo on the site. It may be another JST pad which would make direct soldering a snap! ‘Still looking into that one. Sparkfun does not know for sure. Then there’s the code. The OEM code is very similar to the GitHub code and parsing through that was a bit of a chore, but hey; it saves a bunch of coding time and works right out of the box! Bonus! Overall, the scanner portion is a bit large, but is scans and recognizes prints very well.
5 of 6 found this helpful:
This is a nice little fingerprint scanner. The only reason I’m giving this 4 stars is that there is no indication of it being 3V3. It does have a 3V3 regulator on it, though. Also, it has some sort of protection against overvolting a pin. I accidentally supplied 5V to a 3V3 pin, and it turned off. I removed the wire, and it worked again.
0 of 2 found this helpful:
Got 2 pieces. Forgot to buy the damn connector. Tried to desolder the connector to solder wires (I needed to prototype quickly). Destroyed the PCB tracks (a bit of heat or just “staring at it” is enough to destroy the tracks ;-)
with a sharp & hot knife, was able to expose the connector pins and solder wire-wrap wires to the pins. It was enough to test it. Looks promising, recognized rotated fingerprints. Documentation does not show the pinouts though you can find it elsewhere.
A bit overpriced because the original , in Taiwan costs $17 bucks.
DON’T FORGET TO BUY THE CONNECTOR!!!
The communication, Invoice and delivery were Ok. Thank you, looking forward to our next cooperation. Miroslav
The fingerprint its working perfectly and we are happy continue with great job
We received the part without any problem into Switzerland. It was connected to an USB-UART VCP with CP2102 - we started the software demo - everything worked perfect without any problems. We will now create our own software for personalized project management. Thanks to the Sparkfun team. Remark: Page 39 is missing from the data sheet so we downloaded it from Taiwan.
Glad you’re enjoying the unit, and thanks for the heads up regarding the datasheet. I’ve put in a request to get that updated. Happy hacking!
0 of 1 found this helpful:
After 3 scanning, the sensor didn’t work anymore, the function Open() waits for an answer in vain. The JST cable is not included (even if it’s actually specify, it’s a shame considering its difficult availability) Awful
Sorry to hear about the issues with the scanner. Have you contacted our technical support department @ firstname.lastname@example.org? They’re usually really good at helping to get these functioning if the device is still hanging on the Open() function.
The scanner works great and does exactly what you would hope a fingerprint scanner would do. Really pretty disappointed the connector is not included. For as inexpensive as that little thing is, I’d really like to see Sparkfun make it included. Its virtually impossible to use the scanner without it. Also, be careful with it. After hooking this up to my project I managed to snap off a tiny component from the back of the PCB. I have no idea if this was truly my fault or a defective scanner but either way, I’m stuck getting another one overnighted to me to finish my project on time.
0 of 1 found this helpful:
Planning to use this for security access. I’ve been experimenting with it a little and find that it is sometimes finicky about registering a fingerprint but it is very accurate as far as recognition/rejection. It’s easily interfaced to a Raspberry Pi, Arduino, or Microchip PIC processor.
This is the first serious components i bought on sparkfun and i was really happy to play with this scanner. Very good product, not problem to install or anything. Works prefectly with the FTDI breakout.
Bad points: - i Had to buy a 4-wire JST-SH to connect the FTDI breakout - Shipping cost are a bit expensive if you’re not in the us.
0 of 1 found this helpful:
Easy to use.