I used the code from the Github and hooked the 4 wires to from left to right correctly (RX, TX, GND, 5V) but it will not light up. I have them hooked into RX and TX (0,1) on the Arduino UNO and the code will not upload because those pins are in. All of the Github code have the RX and TX pins as digital 4 and 5 on the UNO. I’m just really confused on how this is supposed to work.
Any help would be really awesome.
Links to the code and device would be nice. The Tx/Rx lines to the Uno’s hardware UART are pins 1/0. But they are shared w/the Uno’s USB-Serial adapter. My guess is that the code is using software to emulate a UART on the other pins to avoid a conflict w/any USB communication. Try swapping the Tx/Rx connections to pins 4/5. You can’t hurt anything doing this and swapped serial connections happen 93.7% of the time.
What level of current does scanner draw ?
The code is posted below ( Source = https://github.com/sparkfun/Fingerprint_Scanner-TTL ), I’m trying to get finger prints stored on the device, so I can call them later to open a servo. But that’s later down the road. Switching the RX/TW pins to digital pins 4 and 5 on the UNO showed to point me a little closer to success. The FPS scanner ( https://www.sparkfun.com/products/11792 ) is powering up now with the onboard LED and flickers the larger LED inside the module that allows for fingers to be scanned, but quickly turns off although the little green LED on the device still indicated power.
Thanks for the help you have provided so far. It’s super awesome of you to help me.
#include "LIB_GT511C3.h"
#include "SoftwareSerial.h"
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 okid = false;
while (okid == false)
{
okid = fps.CheckEnrolled(enrollid);
if (okid==false) okid++;
}
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);
}
I got it working. Come to realize it was all in the hardware. In the documentation it states that it needs to be pulled down to 3.3v from the 5v pin. I just hooked it into 5v and have a 560ohm resistor to the TX pin on the FPS and it works perfect.