Creative Commons images are CC BY-NC-SA 3.0

49.95

added to your
shopping cart

quantity
In stock 136 in stock
49.95 1+ units
44.96 10+ units
39.96 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 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, check below for an appropriate one.

Dimensions: 37 x 17 x 9.5 mm

Features:

  • 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

 

 

Documents:

Replaces: SEN-11651

Comments 85 comments

  • Finally got this working on arduino! I’ll post some stuff when I’ve got a sketch working perfectly, but in the meantime here’s what I did:

    byte highbyte = 0;
    byte lowbyte = 0;
    byte command = 1;
    word checksum = 0;
    byte highcheck = 0;
    byte lowcheck = 0;
    
    //Here comes the part you want to put in void loop that sends the command to the device
    
      command = 0x12; //The command goes here. This is the command for the LED.
      valueToWORD(0); //This value is the parameter being send to the device. 0 will turn the LED off, while 1 will turn it on.
      calcChecksum(command, highbyte, lowbyte); //This function will calculate the checksum which tells the device that it received all the data
      Serial2.write(0x55); //Command start code 1
      Serial2.write(0xaa); //Command start code 2
      Serial2.write(0x01); // This is the first byte for the device ID. It is the word 0x0001
      Serial2.write(0x00); // Second byte of Device ID. Notice the larger byte is first. I'm assuming this is because the datasheet says "Multi-byte item is represented as Little Endian"
      Serial2.write(lowbyte); //writing the largest byte of the Parameter
      Serial2.write(highbyte); //Writing the second largest byte of the Parameter
      Serial2.write(0x00); //The datasheet says the parameter is a DWORD, but it never seems to go over the value of a word
      Serial2.write(0x00); //so I'm just sending it a word of data. These are the 2 remaining bytes of the Dword
      Serial2.write(command); //write the command byte
      Serial2.write(0x00); //again, the commands don't go over a byte, but it is sent as a word, so I'm only sending a byte
      Serial2.write(lowcheck); //Writes the largest byte of the checksum
      Serial2.write(highcheck); //writes the smallest byte of the checksum
    
    //Now for the functions
    
    void valueToWORD(int v){ //turns the word you put into it (the paramter in the code above) to two bytes
      highbyte = highByte(v); //the high byte is the first byte in the word
      lowbyte = lowByte(v); //the low byte is the last byte in the word (there are only 2 in a word)
    }
    
    void calcChecksum(byte c, byte h, byte l){
      checksum = 256 + c + h + l; //adds up all the bytes sent
      highcheck = highByte(checksum); //then turns this checksum which is a word into 2 bytes
      lowcheck = lowByte(checksum);
    }
    

    It’s pretty rough, but I hope this helps someone who was struggling with this as much as I was.

    If you’re not familiar with some of this:

    A byte stores 256 values. A word consists of 2 bytes, and a Dword consists of 4 bytes. The bytes to be sent here were represented in hexadecimal, which is base 16. A word can be split into 2 bytes to be sent. For example: 0x1234 is made up by the bytes 0x12 and 0x34. highByte(0x1234) = 0x12 and lowByte(0x1234) = 0x34.

    Hope this helps!

    • Hi FI, You’ve helped me out an awful lot with this! Thank you! I’ve converted most of your code into C for PIC, and got it working. I’m wondering if you may be able to post your code on enrolling a new user? I’ve managed to do it with PIC, but for some reason I can only enrol users under the ID of 9?! Any help would be greatly appreciated! Thanks!

    • I am still having problems with getting this to work with my arduino. How should I go about initializing the Serial communication? What baud rate should I use and should I have it use HEX or something else?

      • Yes, you do have to initialize the serial communication. I’ll write you a quick sketch to help you understand.

        byte highbyte = 0;
        byte lowbyte = 0; 
        
        word checksum = 0;
        
        byte highcheck = 0;
        byte lowcheck = 0;
        
        byte response = 0;
        
        
        
        word parameterin = 0;
        word checksumReply = 0;
        
        boolean communicationError = false;
        boolean checksumCorrect = true; 
        boolean ack = true;
        
        byte lbyte = 0;
        byte hbyte = 0;
        byte checklbyte = 0;
        byte checkhbyte = 0;
        
        const int transmitDelay = 500;
        
        
        void setup(){
          Serial2.begin(9600); 
          /* begins serial communication at 9600 baud rate (default) Also, I'm using the 2nd serial port on my Mega, if you have an
          uno, you might want to use Serial instead. If you have a Leonardo, you can use Serial1 which is separate from the serial
          used to communicate over USB. The uno only uses only one set of TX and RX to communicate, the same one it uses for
          USB. */
        }
        
        void loop(){
        scannerCommand(0x01, 0); //I have written a function for sending command packets. All you have to do is type in the command and the the parameter.
        waitForReply(); //I wrote this function to output the response of the device. checksumCorrect tells you if the checkSum matches the data sent. If it doesn't, there was an error. The variable parameterin is the parameter that the fingerprint scanner has sent the arduino. The variable ack tells whether the the scanner has sent an acknowledgemnt. If it is false, there has been an error, and you must check parameterin to see which error code has been sent. The variable communicationError tells if the arduino has read any bytes that are out of place. This should be false. Have a look at the function at the bottom for more info.
        
        //Now we have initialized the device by sending it the code to "open." You can write your own function to handle any of the responses I have detailed above.
        
        scannerCommand(0x12, 1); //command turns on the LED in the sensor.
        waitForReply(); //Again, you can do whatever you want with the variables here.
        
         //that's the end of this demo. If it worked properly, the light on the device should turn on.
        
        while( 1 == 1){} //This just ends the code without looping it.
        }
        
        //OK, now here are the functions I used.
        
        
        void scannerCommand(byte com, int param){ //This is the function that sends data to the device
          valueToWORD(param);
          calcChecksum(com, highbyte, lowbyte);
          Serial2.write(0x55);
          Serial2.write(0xaa);
          Serial2.write(0x01);
          Serial2.write(0x00);
          Serial2.write(lowbyte);
          Serial2.write(highbyte);
          Serial2.write(0x00);
          Serial2.write(0x00);
          Serial2.write(com);
          Serial2.write(0x00);
          Serial2.write(lowcheck);
          Serial2.write(highcheck);
        }
        
        void waitForReply(){ //This is the function that receives data from the device.
          communicationError = false;
          while(Serial2.available() == 0){}
          delay(transmitDelay);
          if(Serial2.read() == 0x55){
          } else {
            communicationError = true;
          }
        
          if(Serial2.read() == 0xAA){
          } else {
            communicationError = true;
          }
        
          if(Serial2.read() == 0x01){
          } else {
            communicationError = true;
          }
        
          if(Serial2.read() == 0x00){
          } else {
            communicationError = true;
          }
        
          lbyte = Serial2.read();
          hbyte = Serial2.read();
        
          parameterin = word(hbyte, lbyte);
        
          Serial2.read();
          Serial2.read();
        
          response = Serial2.read();
        
          if(response == 0x30){
            ack = true;
          } else {
            ack = false;
          }
          Serial2.read();
        
          checklbyte = Serial2.read();
          checkhbyte = Serial2.read();
        
          checksumReply = word(checkhbyte, checklbyte);
        
          if(checksumReply == 256 + lbyte + hbyte + response){
            checksumCorrect = true;
          } else {
            checksumCorrect = false;
          } 
        }
        
        void calcChecksum(byte c, byte h, byte l){ //Also uses this function I have shown above
          checksum = 256 + c + h + l; //adds up all the bytes sent
          highcheck = highByte(checksum); //then turns this checksum which is a word into 2 bytes
          lowcheck = lowByte(checksum);
        }
        
        void valueToWORD(int v){ //turns the word you put into it (the paramter in the code above) to two bytes
          highbyte = highByte(v); //the high byte is the first byte in the word
          lowbyte = lowByte(v); //the low byte is the last byte in the word (there are only 2 in a word)
        }
        

        I hope that helps! If you’re not familiar with functions, you should check here: http://arduino.cc/en/Reference/FunctionDeclaration

        I have tried it and it works. If you are using a different set of Serial pins, make sure to change Serial2 wherever it appears in the code. (You can use command F on a Mac or control F on a PC to easily replace them all if you didn’t already know) The baud rate also might be 115200 because I have a different model. So try that.

        I tested the code and it has worked for me.

        If you have any other questions, feel free to ask! I could also post my function for enrolling a finger if you want, but that will have to be modified since it is made to work with an LCD display. If you need help connecting the device to the serial pins of your arduino, let me know which one you have and I’ll let you know which pins should work.

        Good luck!

        • Hello… I’m using an Arduino Uno board. In this code you posted, I noticed that the serial pin numbers that the scanner is connected to on the Arduino board isn’t included…

          Isn’t it necessary to include the pin nos also in the code so that the Scanner will be able to communicate with the Arduino using those digital pin nos?

          Pls How do I go about including the pin nos needed to communicate?

        • Thankyou, this helped a lot and worked perfectly.

  • Does it work with raspberry pi?

  • Any arduino code, I’m struggling with this one.

  • I had problems with the previous version C2 ( could also be user related :) but this C3 works great . The speed is around 550ms , quite fast . Works for me !

  • im selling this & my customer is having hard time. can someone from sparkfun release a manual to follow?

  • Does anybody know if the templates are repeatable?

    For example, if I use the same finger in the same position, will I be able to create multiple identical templates? (REALLY identical, as in template1 = template2).

  • Has anybody tried to download the fingerprint template from the reader? What format is it in? is it a set of raw 506 bytes that can be stored in an array of bytes?

  • I’m trying to use the GT-511C3 in pcDuino however gives me an error, it’s something related to “SoftwareSerial.h” apparently is not implemented in pcDuino. Could you recommend something? thanks

  • Guys, I need help Did you try that? I tried gt511c1 . it wasn’t same..

    Does anybody know if the templates are repeatable?

    For example, if I use the same finger in the same position, will I be able to create multiple identical templates? (REALLY identical, as in template1 = template2).

  • can i get live image of the finger with this sensor??

  • help: this C3 support get live image ?????

  • This is a Python driver for FPS GT511C3, enjoy!

    http://quickgroup.github.io/pyGT511C3/

  • This is a Python driver for FPS GT511C3, enjoy!

    http://quickgroup.github.io/pyGT511C3/

  • for those interested, I have two arduino scripts that i have written…. one is already listed here and uses an Arduino Mega via Serial2 and the new one has been tested on a Lilypad and an Uno. The difference between the two is that I am using SoftwareSerial on non-mega boards to communicate with the sensor

    Mega - https://github.com/cultcreative/fingerprint_gt511c3 SoftwareSerial - https://github.com/cultcreative/krista_purse_proto/blob/master/krista_finger_lilypad/krista_finger_lilypad.ino

    • pictures of the connections will be coming soon to the second one, and note that it also has a servo on it. and you can’t write 0x00 to softwareserial, it is changed to (byte)0 around line 400
  • This sensor works with any pic or pic must be a host because it tried to make it work and I have not gotten’m using a 16F887 pic, the only thing I’ve accomplished so far is to send basic commands like start the device, turn on the LED but when receiving the data sends the fingerprint can not read because all data send 0x55 for me. I hope your help thank you very much

  • can i use it in EVM

  • can i use it as fingerprit sensor in electronic voating machine and how can it start with aurdino and can i use alarm

  • OK, which is the real baud rate for the GT-511C3, 115200 or 9600? The datasheet says 9600, however, in the video application we can see clearly running with 115200.

  • OK guys, I´ve seen that there is a lot of people out there struggling with this. I´m PIC user, I like it because it´s very cheap where I live. I like it Arduino too. Nonetheless, I wanna run this attached to a PIC.

    First of all let´s start understanding the Protocol and how to send it. When I first read I noticed that part that it´s says Multibyte item is represented as Little Endian, according with some research that I did this mean that I have to send the LSB (Least significant Byte) first. Please, correct me if I´m wrong.

    Command Packet (Command)
    
    Command Start
    0X55----> TYPE: BYTE 1----> Command Start Code1
    0XAA----> TYPE: BYTE 2----> Command Start Code1
    
    DEVICE ID (WORD)
    0X01----> TYPE: BYTE 3----> Device ID: default is 0x0001, always fixed
    0X00----> TYPE: BYTE 4----> Device ID: default is 0x0001, always fixed
    
    PARAMETER (DWORD). In this case is the Parameter Open
    0X00----> TYPE: BYTE 5----> PARAMETER
    0X00----> TYPE: BYTE 6----> PARAMETER
    0X00----> TYPE: BYTE 7----> PARAMETER
    0X01----> TYPE: BYTE 8----> PARAMETER
    
    COMMAND (WORD). OPEN
    0X01----> TYPE: BYTE 9----> COMMAND OPEN
    0X00----> TYPE: BYTE 10----> COMMAND OPEN
    
    CHECKSUM (WORD). BYTE ADDITION, OFFSET 0 +….+ OFFSET 9
    0X01----> TYPE: BYTE 11----> COMMAND OPEN
    0X01----> TYPE: BYTE 12----> COMMAND OPEN
    

    Guys, please. If I have a mistake, do not hesitate to point it out.

    So far, it seems kind of easy. I haven´t try to program it yet. I´ll try this week. However, I do not yet which functions should I use to use with a PIC.

    OK, I will be posting my progress. :dance:

  • has anyone tried this module using PIC? I know that here is a lot of people how has tried? I just got mine and I want to start. Thank you.

  • Hi everybody!! I have a question here… So, I can only register 20 people on the device, but up, in the Description area says that it can store up to 200 images. Can someone please clarify this for me? I need this for a project that need to register aproximately 50 people…is it possible with just one device? Thanks a lot!!! :D

  • Wow. Thank you Josh. I was able to convert the lib to C# in a few hours, and it is up and running.

  • note sure if i am the only one that couldn’t get everything consistently working using of the libraries that are available and the comments below, but i pieced together a combination of what I found in the lib and what is in the comments into a script that is working great for me. Hope this helps

    https://github.com/cultcreative/fingerprint_gt511c3

  • I know this has been asked before, but has anyone been able to get this device to work with a Raspberry Pi using the Python programming language? The RPi GPIO supports UART and there is a Serial library for Python so I assume it wouldn’t be that difficult to get this working on the RPi using Python.

    • Raspberry Pi

      I got a very basic Python script working that turns the LED on/off with the fingerprint scanner hooked up to the GPIO port of the Raspberry Pi. I’m still working on the code but I think I should have something fully functional in a week or two and I will post the code and configuration schematic here. FYI - I purchased the 3.3V model from Versamodule (http://www.versamodule.com/nano_nvmf.html) since this allowed me to attach the scanner directly to the RPi without using a voltage splitter or resistors (which I don’t really understand). Special thanks to J Hawley and Futureinventions for their code posted in this forum which to a large extent, I am reverse engineering into Python.

      • Have you completed the above project? We are working on a similar project. Did that fingerprint module work well with RPi? Can you help us? Can you share your email-id here?

  • Hey Guys!! I have started my senior project and it is about clocking machine that will get fingerprints inputs, compare it to the stored data and if there is a match will display the corresponding name clocking the employee in and releasing a hooked up door for the employee to enter. My questions: What kind of arduino microcontroller should I use along with this fingerprint scanner, a lcd display and what kind of camera? Thank you!!

    • Any Arduino “board” will work with that (actually all Micro-controller with Serial communication support it), about the LCD?! what kind of info you want to display “Colored images, Non colored, small text, interactive (touch) lcd or just as a display…etc” and for the camera, Actually I couldn’t find any use of a camera in your project description! Sorry if being rude but, I’d suggest you to start from concept rather than jumping to the last step “Implementation”.

      • Good to know any arduino will do the job. No worries my friend you are not being rude. Me and my group have the design everything and I am only using the discussion board here to get feedbacks which i started to get. The display needs to be color if possible. The display will show the name of the employee entering and exiting the facility and the camera is to record everything that is happening during on and off office hours.

  • what does “360° recognition” mean?! it’s a planar surface so the max detection angle should be 180°,right?

  • Guys need help. I cannot run the software on my windows 7 with visual studio 2012. Whats the compiler to run demo software?

  • is there anyway to waterproof this? for instance, if i wanted to use it to open a car door?

  • I have purchased this sensor and every thing is working perfect with the library from GitHub, but unfortunately I lost a bet.

    The bet was that you cannot fool the sensor if you put your finger in the ink-pad, make a mirror copy of that finger print and print in black and withe on a white paper. Unfortunately the sensor detect that finger. Now I search for a rematch, so my questions are the following: Is it possible to make check for a confidence level when detecting a finger print? Is there a new firmware which can avoid this kind of fooling?

    Thank you for support.

  • The Arduino code posted on GitHub, doesn’t seem to work with Arduino Uno when changing;

    fps (4,5);

    to the tx and rx on the uno;

    fps(0, 1);

    Am I doing something wrong here?

    • Pins 0 and 1 on the Uno connect to the hardware serial port, while pins 4 and 5 are initialized as a Software Serial port. You’d need to update all your code to reflect this from a software serial port to the hardware port.

  • I am new to this whole area, but learn quickly and have some great ideas. One specifically was using a device like this, a fingerprint scanner, to replace the power button on a PC case mod I am working on. Would it be possible to do this? I’ve been told it can work, but no successful attempts out there to reference :\

    Any ideas?

    • Ok, after a little research, it’s virtually impossible to do the scanner as a power button since it would need a separate always-on micro-controller, and I was told I’d need a computer engineer or hardware engineer to even design and program it. Next idea, how about rigging this to just work as a logon for Windows? I’ve been looking at pre-assembled USB scanners out there, and most get bad reviews, except the corporate level $500+ ones. What all would I need to do to get this working in my PC? Is anyone experienced in this and able to help?

  • I seem to be having a moment of stupidity here but can anyone tell me where can the pin diagram be found? On the board all I see is a little triangle on the first pin from left to right with the module facing front: sensor up and connector down. Thanks in advance for the help.

    • Thanks for the reply! I saw that before and found it to be unclear. I decided to take my chances at the risk of frying the module and fortunately it worked! :) Here’s the pin-out for future reference: From left to right with the module facing front and up: Pin 1: TX, Pin 2: RX, Pin 3: GND, Pin 4: VCC Tip: The TX (Pin 1) pin is the one marked with a tiny arrow pointing to the right.

    • You can find the pin diagram on the last page of the datasheet linked above.

  • I think supply and communication voltages should be better specified. According to the latest version of the datasheet, GT-511C3_datasheet_V1 1_20130411[4].pdf, the module has an “Operating voltage” in the range 3.3-6V. With just this information one could conclude that the supply and communication voltages are equal and in that range, so this module could be used at both 3.3V and 5V without any level converter. But this may not be the case. Please improve the description on this matter.

    EDIT: the datasheet specifies on the last pages the pinout and there it also specifies that supply is 3.3-6V while communication is 3.3V. Also, i measured the idle voltage of the TX pin with 5V supply and it was 3.3V. This confirms such data.

  • I have completed and tested all of the basic functions of the library that I wrote for this device. I posted all of the details on my blog: http://wordpress.hawleyhosting.com/ramblings/?p=375

  • What if a fingerprint is left behind on the device? How does it handle that?

  • I have this working on my Arduino! (using a voltage divider and softwareserial) I have a library completed for this, but it needs cleanup and documentation. I will post it once done. Maybe I could get one of the spark fun people to link to it in the documents above? I will post it in a couple of days.

    • We are trying to move towards getting all of our files onto GitHub, so if you do want to share it with us, I’d recommend posting it there and then sending us a link for that. It makes it easier to share information and track changes than the comments.

      • and it’s done. See my blog post for detailed information: http://wordpress.hawleyhosting.com/ramblings/?p=375

        Using it is pretty simple declaration:

        FPS_GT511C3 fps(4, 5); // (rx pin, tx pin) make sure to adjust the voltage some how
        

        in setup:

        fps.Open(); // starts communications
        

        After that you can use one of many commands with it:

        fps.SetLED(true);
        
        bool fingerpressed = fps.IsPressFinger();
        
        fps.CaptureFinger(false);
        
        int id = fps.Identify1_N();
        
        etc... there are many commands see my blog link above for more info, and download
        
  • Do I need a logic level converter(https://www.sparkfun.com/products/8745) to use this on an Arduino? or can I just put a resistor on the TX from the arduino?

    • I tried hooking it up with a voltage divider to ensure that it did not exceed 3.3v, but I still can not get it to communicate. Has anyone actually gotten this to communicate with an arduino?

  • Why does this not come with the cable? I just got mine, was all excited to mess with it today, and now I cannot /grumpy

    • +1 … a fifty dollar item that does not include a one dollar cable? please add in future, Sparkfun! I admit it was my mistake to not see that it’s not included, but that’s only because I was in the middle of a feeding frenzy!

  • Do you have any experience working the C3 along with microcontrollers? Because I have had a hard time sometimes even communicating with the computer through the MAX232 interface; at least there sometimes it does the functions, just gets lost. But with the microcontrollers I haven’t had success trying to use the commands (hex) on the datasheet statements.

    • Hello, I used a microcontroller and I sent the bytes in the order that I supposed and I get the data that the module send to the microcontroller and I show the data in a LCD, so in I got it with that, how to send the byte. Be sure how format you recive the data, for exmaple I show the data like a caracter in a LCD and saw the data like a hex, so I send the data like caracter. (when I send the data like a HEX no work for me). Be sure the voltage for Tx and RX is 3.3 you can put a divisor in the out RX pin , the TX you can connect direct to the microcontroller (this if you working with 5 volts microcontroller)

      So you have to send the data like a little endian respresentation (LSB firt).

      for example, this the way to send a command packet (comand OPEN: 0x01). byte1:0x55 //tell is a command packet byte2:0xaa //tell is a command packet byte3:0x01 // device Id 0x00001 send firts the lsb BYTE: 01 byte4:0x00 // device Id 0x00001 byte5:0x00 // Parameter DWORD(if you want to send a parameter nozero send this bit with the value) byte6:0x00 // Parameter byte7:0x00 //Parameter byte8:0x00 //Parameter byte9:0x01 // comand word (OPEN: 0x0001) byte10:0x00 //comand byte11:0x01 //checksum word (sum each byte) 55+aa+01+1 : 0x0101 byte11:0x01 //checksum

      then you can send the others command like onLed () you will see the led on if you dont get a error

      byte1:0x55 //tell is a command packet byte2:0xaa //tell is a command packet byte3:0x01 // device Id 0x00001 send firts the lsb BYTE: 01 byte4:0x00 // device Id 0x00001 byte5:0x01 // Parameter DWORD (parameter nozero ledOn) byte6:0x00 // Parameter byte7:0x00 //Parameter byte8:0x00 //Parameter byte9:0x12 // comand word (CMOSLED: 0x0012) byte10:0x00 //comand byte11:0x13 //checksum word (sum each byte) 55+aa+1+1+12 : 0x0113 byte11:0x01 //checksum

      Other thing that maybe can help you, the command ispressFinger only work if the led is on(I dont know if always happen, but for me was like that).

      Sorry my english is not strong. greetings from Colombia.

      • What microcontroller and lcd display did you use please? and why?? I have a similar senior project to finish before graduation.

      • ups the format text change any way open command 55 aa 01 00 00 00 00 00 01 00 01 01 send first: 55 sec; aa …. so on send last: 01

        ledOn 55 aa 01 01 00 00 00 00 12 00 13 01

        • Nuevamente: GRACIAS! Ya pude realizar varias funciones, sólo me estoy familiarizando, pero vamos de maravilla :D Excelente ilustración. En efecto, venía en el datasheet pero no le había tomado sentido, puesto que nunca manejé así la comunicación. Ojalá aún puedas auxiliarme con un par de dudas, pero definitivamente trajiste luz a mi proyecto haha Bendiciones desde México

          • Escribí una libreria en Visual C++ para el modulo GT511C1 solo tienes que cambiar algunas lineas en la funcion open del archivo gt511c1.cpp en la parte correspondiente al firmware para que sea compatible con el modulo GT511C3 ademas si vas a usar la funcion de recibir la imagen de la huella y el template cambiar los tamaños de los arreglos, mas adelante voy a escribir la libreria espeficicamente para este módulo cuando llegue a mis manos.. El código fuente esta en rapidshare en mi blog esta el link http://fernandezajp.blogspot.com/2013/07/modulo-biometrico-gt-511c1.html

        • Caray! Haberlo dicho antes colega! haha Soy de México. ¿Podría ponerme en contacto contigo directamente? Porque sí me sería de mucha ayuda, ya que estoy trabajando con un 18F2550, aunque en realidad no me preocupa mucho mientras sea más o menos de esa familia (18F). Medio entiendo lo que me comentas acerca del envío y sí noto una diferencia sustancial a lo que yo he manejado para enviarle comandos al dispositivo. Muchísimas gracias!

          • Saludos desde Colombia también. Estuve viendo que tuvieron éxito con este módulo. Bueno, apenas estoy empezando, pero la verdad. No se como enviar bien los paquetes, podrian ilustrarme con algo de código? Ha sido dificil encontrar algo con PIC, pues casi todo mundo está usando Arduino, lo bueno del PIC es que es barato, y fácil de manejar. Una ayuda de parte de ustedes me vendría muy pero muy bien Saludos.

  • Hi , the module can be connected directly to an Arduino pro mini 5v or I need a converter from 5V to 3.3V ? At the end of the datasheet it show that the voltage of Tx and Rx is 3.3V and the main from 3,3v to 6v.

    Somebody have experience with this module?

    • In deed. You must apply an input voltage of 3.3-6V, but either you use a resistante arrangement before the Rx (of the Fingerprint Reader) so you have an 3.3V signal in that input. Otherwise you might experience bad communication issues. Also you must be VERY CAREFUL about the connections. Good luck!

  • Any idea if it can be used with Raspberry Pi? Any library/sdks?

  • I bought GT-511C3 sensor and i tried with demo software on PC through a FTDI 5V breakout. when i push Get Image button i got fingerprint and i could save it on PC. But when i tried to enroll first id, i got an error (Sensor ask me to put finger 1, then finger 2, then finger 3 and here i got an error “The enrollment is faild !”. Why i got such an error ? Cause may be FTDI 5V breakout ? It is working only with FTDI 3.3V breakout ?

  • can someone please tell me how to connect the scanner to the FTDI Basic Breakout - 3.3V.

    i have the jumper 4 wire assembly but dont know how to connect to the basic breakout 3.3. it seems the breakout has 6 conections.

    help!

    • If you were viewing the fingerprint scanner right side up with the JST connector on the bottom, the pin on the far left is pin 1

      Fingerprint Scanner ———- FTDI 3.3V

      Pin 1: UART_TX (level 3.3V) ———- RX

      Pin 2: UART_RX (level 3.3V) ———- TX

      Pin 3: GND ———————– GND

      Pin 4: Vin(3.3V~6V) —————– 3.3V

  • The documentation says that I/O pins are 3.3v can you confirm that 5v logic levels are safe?

    • I got an email from the manufacturer stating that the I/O pins are 3.3v but the power supplied to the unit should be at least 4.6v, be careful all those planning to use a 5V TTL for the I/O, I also understand from the manufacturer ADH that unit is less reliable if powered at 3.3V

      Could I suggest that Sparkfun avoid using the term “5V TTL”?.

      • FYI, versamodule dot com, has the C3 modules from ADH that are made specifically for 3.3v only. So the issue of running at lest 4.6v is not an issue anymore. If you need a true 3.3v module this is where i got mine and works great.

        • I purchased the 3.3v device from Versamodule. I have the unit connected to a Raspberry Pi using the 3.3v power supply and 3.3v Rx Tx pins. I wrote a Python script to control the device. I run an infinite loop until the capture command detects a finger on the scanner.

          I am consistently getting NACK_DEV_ERR errors when trying to capture fingerprints and I’m wondering if the problem is related to the 3.3v power? Perhaps it is just a defective device? Should I attempt to connect the power pin to the 5v output on the Rpi?

          Anyway I’m curious if anyone else has had problems running the 3.3v unit from Versamodule.

  • Where can I find any box for that?.

  • Does it work with the arduino?

  • Does this only work with Windows using their demo software? Can you write your own code on PC? Could you use it to ID with an Arduino?

    • …Yes and yes, using the serial interface. Check the video on this page at 6:05. The interface is simple.

  • How fast does this operate? My problem with fingerprint scanners (I use them on a daily basis) is speed. The ones I use have to be swiped, which doesn’t always work, and then there’s a lag (probably due to windows). …Before I buy one of these I want to make sure it’ll be nearly instantaneous.

    • You can see in the video that there’s a time display in the computer software he’s running.

      The first one I happened to notice said around 1300ms.

      So probably 1.5seconds max. Which I wouldn’t call slow, but it’s not instant.

      • lol, their video didn’t render in IE10 (with or without compatibility view). Thanks. …Seriously though, embedded YouTube videos work on every other site. I think SparkFun should checkout their markup.


Related Products