Problem Interfacing GT-511C1R Fingerprint sensor

Hi I’m using an Uno and a GT-511C1R fingerprint sensor module in a project. For communicating, I went with this library from Josh Hawley:

When I run the blink example, for blinking the background led of the sensor, it runs fine but when I try the enroll example to add fingerprints I get nothing on the serial monitor.

And even when I run the blink code it only works if I plug in the sensor after uploading to the arduino board, it doesn’t run if the sensor is hooked up already.

here’s how the blink code looks:

/* 
	FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS)
	Created by Josh Hawley, July 23rd 2013
	Licensed for non-commercial use, must include this license message
	basically, Feel free to hack away at it, but just give me credit for my work =)
	TLDR; Wil Wheaton's Law

	This simple sketch turns the LED on and off similar to the Arduino blink sketch.
	It is used to show that communications are working.
*/

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"

// Hardware setup - FPS connected to:
//	  digital pin 4(arduino rx, fps tx)
//	  digital pin 5(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ground)
//		this brings the 5v tx line down to about 3.2v so we dont fry our fps

FPS_GT511C3 fps(4, 5);

void setup()
{
	Serial.begin(9600);
	fps.UseSerialDebug = true; // so you can see the messages in the serial debug screen
	fps.Open();
}


void loop()
{
	// FPS Blink LED Test
	fps.SetLED(true); // turn on the LED inside the fps
	delay(500);
	fps.SetLED(false);// turn off the LED inside the fps
	delay(200);
}

and here’s the enroll:

/* 
	FPS_Enroll.ino - Library example for controlling the GT-511C3 Finger Print Scanner (FPS)
	Created by Josh Hawley, July 23rd 2013
	Licensed for non-commercial use, must include this license message
	basically, Feel free to hack away at it, but just give me credit for my work =)
	TLDR; Wil Wheaton's Law
*/


#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"

// Hardware setup - FPS connected to:
//	  digital pin 4(arduino rx, fps tx)
//	  digital pin 5(arduino tx - 560ohm resistor fps tx - 1000ohm resistor - ground)
//		this brings the 5v tx line down to about 3.2v so we dont fry our fps

FPS_GT511C3 fps(4, 5);

void setup()
{
	Serial.begin(9600);
	delay(100);
	fps.Open();
	fps.SetLED(true);

	Enroll();
}


void Enroll()
{
	// Enroll test

	// find open enroll id
	int enrollid = 0;
	bool usedid = true;
	while (usedid == true)
	{
		usedid = fps.CheckEnrolled(enrollid);
		if (usedid==true) enrollid++;
	}
	fps.EnrollStart(enrollid);

	// enroll
	Serial.print("Press finger to Enroll #");
	Serial.println(enrollid);
	while(fps.IsPressFinger() == false) delay(100);
	bool bret = fps.CaptureFinger(true);
	int iret = 0;
	if (bret != false)
	{
		Serial.println("Remove finger");
		fps.Enroll1(); 
		while(fps.IsPressFinger() == true) delay(100);
		Serial.println("Press same finger again");
		while(fps.IsPressFinger() == false) delay(100);
		bret = fps.CaptureFinger(true);
		if (bret != false)
		{
			Serial.println("Remove finger");
			fps.Enroll2();
			while(fps.IsPressFinger() == true) delay(100);
			Serial.println("Press same finger yet again");
			while(fps.IsPressFinger() == false) delay(100);
			bret = fps.CaptureFinger(true);
			if (bret != false)
			{
				Serial.println("Remove finger");
				iret = fps.Enroll3();
				if (iret == 0)
				{
					Serial.println("Enrolling Successfull");
				}
				else
				{
					Serial.print("Enrolling Failed with error code:");
					Serial.println(iret);
				}
			}
			else Serial.println("Failed to capture third finger");
		}
		else Serial.println("Failed to capture second finger");
	}
	else Serial.println("Failed to capture first finger");
}


void loop()
{
	delay(100000);
}

Any help on this would be greatly appreciated :slight_smile:
Also I have included the data sheet which is a bit confusing to understand for me.

GT-511C1R_datasheet_V1 5_20140312.pdf (425 KB)

I'm having a similar problem described in another thread along with around 20 others with the same problem. For me it blinks once when i connect it but it doesn't continue to blink. I used the same library, sensor, and blinking program but it won't work. My FPS just won't communicate with the arduino uno. If you ever figure out how to make it work please reply with an answer.

I'm just going to bump this back up because I still don't know the answer to your question. I got the blink sketch to work, but am sadly stuck in the same position as you. I do not get anything in the serial monitor, even after changing the baud rate, tx, and rx from pins 4 and 5 to 9 and 10, and adjusting the code accordingly. I did read somewhere that it may work to get rid of the resistors but I'm a little nervous about doing so because they are there to protect the sensor. The datasheet says that it can handle it but everywhere else has the resistors in. Any thoughts? If you figure out an answer or if anyone else can please post a comment than that would be very helpful.

I had the same issue. I went ahead and got the C3 fingerprint scanner and the enroll code worked but I still haven't been able to enroll a fingerprint. I keep getting the response "Failed to capture first finger" in the serial monitor.

Anyone have any ideas as to what could be wrong?

Thank You

Has anyone been able to fix this issue? I still can't get the enroll and ID sketches to work

I am also getting same error..

Blinking - working perfect.
But enroll code is not working..

I also didn't get anything on serial...

Any body got it working...