Creative Commons images are CC BY-NC-SA 3.0

$ 31.95

added to your
shopping cart

34 available 34 in stock
31.95 1+ units
30.35 25+ units
28.76 100+ units

Description: 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 more economical version of the GT-511 which has a decreased memory capacity (compared to the GT-511C3). The module can only store up to 20 different fingerprints but is capable of 360° fingerprint recognition and download and upload templates using serial interface. If you are on a budget and need only a small number of fingerprints stored, this is the perfect option for you!

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, check in the Recommended Products section for an appropriate one.

Dimensions: 37 x 17 x 9.5 mm


  • High-Speed, High-Accuracy Fingerprint Identification using the SmackFinger 3.0 Algorithm
  • Download Fingerprint Images from the Device
  • Read and Write Fingerprint Templates and Databases
  • Simple UART protocol (Default 9600 baud)
  • Capable of 1:1 Verification and 1:N Identification
  • 360° Fingerprint Recognition


Recommended Products

Customer Comments

  • Fingerprint Scanner - 5V TTL GT511-C1R

    We don’t sell the cable with the GT-511C1R fingerprint scanner You would need to get the 4 wire JST SH jumper cable separately 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. Check below for more information:

    Serial UART Connection w/ 4 Wire JST SH Cable

    For a secure connection, I recommend soldering the ends of the wire to some header pins [like these] 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 5V FTDI basic breakout w/ a mini-B cable :

    Pin #    Fingerprint Scanner    <-> FTDI 5V
    1          UART_TX             <->   RX
    2          UART_RX             <->   TX
    3          GND                  <->   GND
    4          Vin (3.3V~6V)        <->   5V

    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, 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 [ ] . 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:

    Pin #    Fingerprint Scanner  <-> Arduino Uno
    1          UART_TX                       <->  RX (pin 4)
    2          UART_RX                      <->  TX (pin 5)
    3          GND                           <->   GND
    4          Vin (3.3V~6V)                <->    5V

    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 => . 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

    Direct USB Connection w/ USB Port

    Demo Software Development Kit (SDK)

    I have only tested this with the previous GT-511C1 but it should work the same.

    To connect the GT-511C1R fingerprint scanner with the demo software and your computer’s USB port, you can connect the pins on the back of the board labeled with J1 directly to the USB port of your computer. I used a micro-B breakout board and a USB micro-B to A cable. Here are the connections that you would need to make:

    Fingerprint Scanner <=> USB Connector
    Shield (left most pin)  <=> USB Shield (not necessary if you use a USB breakout board)
    GND                     <=> GND (Standard USB Black Wire)
    D+                       <=> D+ (Standard USB Green Wire)
    D-                       <=> D- (Standard USB White Wire)
    Vcc (square pin)         <=> 5V (Standard USB Red Wire)

    By connecting to your computer, it will show up as a USB Mass Storage Device on My Computer (“Gingy Disk” is the name of the Removable Storage Device).

    Note: Certain USB Cables have D- as green and D+ as white. For an example of making your cable assembly, check out the images in our Google Drive. The images provided shows the non-standard colors wired up for the data lines with a USB connector. If the fingerprint scanner is not recognized by your computer in the device manager or there is a warning message, try reversing the data pins on the fingerprint scanner and it should enumerate properly.


    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.

    Hardware Connections: Resistors for Logic Level Conversion?

    The example code was originally used with an Arduino and the GT-511C3. Looking at the datasheet to compare, it looks like it might be 5V tolerant since it does not have 3.3V I/O limitations. If you are having issues using this fingerprint sensor with the resistors, try removing the resistors that were meant to voltage shift the signals. I had a customer that had problems using this with the resistors explained in the Instructable tutorial. When he removed it, he got it to work.

    Hardware Connections: Loose Connections

    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.

  • bboyho / last month / 1

    The Arduino example code does not work with the Arduino Due. You would need to modify the code and use it with the hardware serial UARTs because the Arduino Due does not support software serial. This might explain why there are compilation errors with the example code using the Arduino Due board definition .

  • I’m using this sensor to add fingerprint recognition to my front door. I have a few problems with it though. The demo software doesn’t work, even after selecting the correct port and clicking open. I’ve wired it correctly with a voltage divider into an arduino uno using a JST-SH cable, but the software doesn’t work for some reason. Another problem is that the arduino doesn’t communicate with the sensor. When I downloaded the library and opened the sample blink sketch for the sensor it didn’t blink. It blinks once when I connect it but otherwise it doesn’t respond to any sketches from the arduino. I know that the sensor is receiving power because the little green light is on when I plug it in.

    Another question that I have is which library do I use? The only ones that arduino recognizes as valid libraries are the ones for the GT-511C3. I’ve heard different responses from many people as to whether or not the one for GT-511C3 will work for the GT-511C1R.

    Just to sum it up my 3 questions are:

    1. Why won’t the demo software work?
    2. Why won’t the sensor communicate with the arduino uno?
    3. Which library can I use? If I have to use one specifically for this model of the sensor can you please post a link to it.
  • What if I have hundreds of people I want to compare to. I am looking for a fingerprint reader that would handle an arbitrary number of users.. If I understand this reader correctly, I’d have to send in each stored template, compare with the freshly captured image, until I found the right stored template. Is there a reader available that will either just do a generic “print to GUID” that would be consistent, so I could store and compare GUIDs on the host side, or maybe a reader which has host based comparison routine that I could do on the host through a SQL server or something?

    • I did a project with one of these a while back where you first put in a PIN and then it would load up that persons template based on that pin. doing this adds an extra level of security and lets you store a lot of prints

      • Yeah.. That’s the “right” thing to do, for sure, but my application was more about convenience than security. I had three organizations come to me for help with this.. One was a sunday school where they wanted the kids to check themselves in and out without having to carry or remember anything, and the others were a karate studio, and a neighborhood pool with similar application.. Device had to be fast, since we didn’t want to cause a line..

  • There’s a Raspberry Pi Library for this fingerprint scanner it looks like => .

  • Error Compiling Arduino Nano Sketch

    FPS_GT511C3\FPS_GT511C3.cpp.o: In function Command_Packet::GetPacketBytes()': C:\Users\eduardo\Desktop\arduino-1.0.1\libraries\FPS_GT511C3/FPS_GT511C3.cpp:17: undefined reference tooperator new‘ FPS_GT511C3\FPS_GT511C3.cpp.o: In function FPS_GT511C3::GetResponse()': C:\Users\eduardo\Desktop\arduino-1.0.1\libraries\FPS_GT511C3/FPS_GT511C3.cpp:735: undefined reference tooperator new

    someone can help to solve this?

    • Toni_K / last year / 2

      Sounds like your libraries aren’t installed correctly. Check out the tutorial here for a refresher.

  • will the libraries and codes and examples for Gt511c3 and GT511C1 work on GT511C1R? as there are no separate codes and examples available for it (C1R) I am confused whether to use those of GT511C1 or those of GT511C3 also where do I find the 4 pin jumper in India :-(

  • Dear,

    I bought the Finger Print Scanner (GT-511C3) I am developing a project where I need to store the biometrics on a server. Then need to check the biometrics registered in the database. I want to know how to store biometrics in a string to send to the server. I’m doing this with the Arduino Mega 2560

    Thank U

  • hello, please i need serious help here, i bought the sensor and i have no idea how to check if it’s working or not.

    i have EasyPIC V7, how can i use it to connect the sensor to my laptop and run the sensor SDK file ? or can i use a serial to USB adapter ? please help ASAP !!

  • My fingerprint scanner did not come with a cable. It’s unusable without one. For a >$30 sensor, I expect better. I suggest you ship a cable with these in the future. What cable do I need to order?

  • I am having trouble getting this to work with a Basic Atom Pro. I am able to communicate with it and make the LED turn on but only with the TX pin disconnected. If it is connected, the Atom doesn’t receive any data. I have tried a level translator for 3.3/5V and using that, nothing works. Has anyone gotten this to work with an Atom Pro? Any input would be greatly appreciated.

  • The datasheet specifies USB v1.1 as a communication protocol. Does it mean that this module can be hooked up by USB directly? If so, anyone knows how? I got it running with UART but I find that downloading the fingerprint image is quite slow, even at 115200 (takes about 5 seconds)

  • can it be connected to a raspberry pi……. ??

  • EDIT: Fixed. Due to the misleading diagram, I had the pins wired backwards.

    Keep in mind that the list is from left to right when the fingerprint scanner is face up and on the top edge of the board.

    The list is of pins is on the final page of the Datasheet and the order is as follows:

    Pin 1: TX (black wire)

    Pin 2: RX (first white wire)

    Pin 3: Ground (second white wire)

    Pin 4: 5V (third white wire)

    Remember that TX = transmitter and RX = receiver. So you wire the transmitter of the breakout board to the receiver of the fingerprint scanner and vice versa.

    Here are some additional instructions for newbies like myself. To wire it to the FTDI, the order is as follows

    Scanner TX (black wire) to FTDI RX (RX1)

    Scanner RX to FTDI TX (TX0)

    Scanner Ground to FTDI Ground (GND)

    Scanner 5V to FTDI 5V

    ORIGINAL POST: OK, I’ve tried a number of different things on two different scanners, and the demo still doesn’t work. Initially I tried wiring the scanner directly to the breakout board as shown in the demo video. When that didn’t work, I used a breadboard both with and without a 1.5k Ohm resistor.

    What’s confusing is that I can consistently see that the fingerprint scanner is getting power, and I know that I have the right serial port selected. The best I’ve been able to get so far is a blinking of the TX light on the breakout board when selecting “open” in the demo, so I know the command is going at least through there.

    Could there be something wrong with the JST SH jumper? I’ve also noticed that the bottom of the fingerprint scanners becomes hot enough to burn, has anyone else had this happen?

    • Not sure if you still had an issue, but i believe I have figured it out. They recommend the 5V FTDI breakout board, and I experienced the exact same issue as you when using it. I ordered a 3.3V version and it immediately started working.

    • Hello, I’ve had the same original problem as you with this device and would only get the power button to light up and the TX light of the breakout board to flash when open is clicked. After consulting your advice I still can’t get it to work? Can you give any other advice if possible please? Thanks :)

  • My fingerprint scanner did not come with a cable. It’s unusable without one. For a >$30 sensor, I expect better. I suggest you ship a cable with these in the future. What cable do I need to order?

    • Sorry about the confusion on that! I’ll see if we can get the note more clear in the description regarding purchasing the compatible JST-SH cable.

      • I suggest just include the cable, and up the price of the scanner $1.50 It’s not like it can be used without it.

        • It’s a hard balance. Since we don’t repackage these from the manufacturer, kitting it up with the cable ups the price more than just the cost of the cable. That adds a lot of labor time for our kitting department, which then customers don’t want to pay for either.

          Hopefully you are all set though now with the cable. If you have any other questions, let us know!

          • The S&H costs more than the cable. Will have to wait for next order.

            • OK, cable arrived, but reading the sample sketches, it appears a 1k Ohm resistor is needed because this fingerprint unit is 3v logic. I feel that this should be prominently mentioned in the part description!

              • OK, so even though the sketch says a 1k Ohm resistor should be added (and mixes up rx and tx), the data sheet says this unit is 5v friendly. I have both the enroll and the ID sample sketches operating fine, with no resistor. Pin 1 on the fingerprint scanner (black wire) is TX and connects to RX on the Arduino (Pin 4 in sample sketch), and Pin 2 (RX) on the fingerprint scanner connects to pin 5 (TX) on the Arduino. Pin 3 on the Finger print scanner connects to Arduino Gnd, and Pin 4 to 3.3v or 5v. I’m using 5v on the UNO.


  • Hello, I’m new to this world of biometrics and I was curious if it needs to be run at 3.3 or 5v because in the data sheet it says 3.3-6.

  • (solved) The data sheet is misleading, as explained by other members the pin1 is with arrow

    Hi All, Is there a problem wiring directly to FTDI 5v directly? I seem to get my FPS burned by connecting TX-TX & RX-RX by an accident :-( Any opinion ?

  • The Datasheet does not specify which pin on J2 is pin1.(Should I assume the pin the arrow is pointing at in the datasheet is pin1?) . On the PCB, is pin1 the one on which J2 is printed (closest to the edge) or the one on which a triangle sign is printed? There is a J1 on the other side of the pcb - maybe the square means pin1 ? Help.

    • Thanks to another member , I think I have my answer. See :

  • What about security? If the finger matches, will the device send some secret 128-bit value that was configured when the finger was learned? (Or allow decrypting using the secret.) If not, then this scanner must be stored in an armored box.

    • As with ANY garage door opener, you should not bring the opener contacts out of the garage UNLESS you have an arnored and properly secured mountng box for it. For a unit like this, you should bring out the Vcc, GND, Tx and Rx, leaving the control (Arduino for example) inside the garage. You also need to make sure that shorting any of the 4 wires will not cause the door to open.

      • Well, it’s not necessarily the opener contacts that public would have access to, it’s the TX and RX. I’m also currently busy with a home automation project that involves the use of this device to provide access to certain parts of the house. Consider using this device; anyone with access to the transmission line (RX/TX) would be able to re-enroll and give themselves access to whatever it was programmed to do. For my project I’ll be using an additional MCU as a translator to provide the added layer of security - Similar to what +Rusty14 mentioned.

  • I have the GT-511C3 ( its great. Its easy to use once you follow the tutorials and get the concepts. Its recognition seems pretty sharp, I haven’t tried anything else, but it is recognising quite effectively. I use the windows app to load my “fingers” into it, then flick a switch in my project to connect it back to the bare bones Arduino chip to do it’s main job. As far as wiring it up, I use a voltage divider to drop the input to RX line as it is a 3.3V device. Works fine. The linked manufacturers datasheet is helpful - Theres really not alot to it as it is self contained. Just follow the guides, use the supplied Arduino library if thats your microcontroller of choice and off you go. No special fingerprint identification skills required!

  • Does this one need to have the lines (tx and rx) reduced to 3.3V like the older one? (Or is it just rx?) Are the back pads the same configuration? What I got for the old one is from left to right- shield (optional) , GND (black) , rx (green), tx (white) and 5V square (red) next to the J1 sign…

    I still can’t get my (GT-511C1) to work, do I have the wires right? Thanks!

  • From the description it looks like the main difference is that this cheaper model “… can only store up to 20 different fingerprints …” . I haven’t used this product yet, but planning on doing so .

    • Correct! Cheaper version. Fewer saved fingerprints. Now has 360° Fingerprint Recognition. :)

  • I have the previous model (GT-511C1), what is the difference to this update?

    • This guy got a firmware update that allows for 360° Fingerprint Recognition instead of just 30°. Also it can now download and upload templates using the serial interface.

Customer Reviews

3.8 out of 5

Based on 5 ratings:

5 star
4 star
3 star
2 star
1 star

10 of 10 found this helpful:

Cool Scanner, but...

… why not include the somewhat difficult to find JST SH Jumper 4 Wire cable with the unit? It is out of stock at SparkFun and twice as expensive elsewhere, not to mention the seperate shipping costs incurred! Otherwise the unit does exactly what it is advertised to do which is a great way for my robot to know which of my children it is speaking to! :-)

1 of 1 found this helpful:

It easy to get it working, easy to mount and connect. But less than 100% fingerprint recognition..

The power supply from 3.3 to 6 V is flexible, and the serial connection is an easy to use and reliable data bus.

I have used it to open my garage door, together with an Attiny84 and an home made PCB. It working really well, but neither my fingerprints nor my dad’s one are recognized 100% of the time.

I would say 80% is a realistic result, enough for me, but for the price I would have imagined a better recognition. The Windows application works well (Demo Software), to enroll and get/save the database.

In your code on the micro be careful to add some delay (100ms) between two calls of the isFingerPressed() method: in this way the sensor seems to work really better. If no delay is added the sensor gets someway “flooded” with requests and the recognition percentage is worst…

The 360° fingerprint recognition is working good too.

0 of 3 found this helpful:

no cable included

no cable included

You must purchase that cable separately -