As a person without a car, I don't need to carry keys around everywhere I go. Because of this, I've been locked out of my own house several times. It's a pain to wait for someone with a key, so I thought I would do something about it.

This project is my way of solving this problem, while getting the chance to interface with an awesomefingerprint scanner (aka: FPS).

Also, this module isn't restricted to just garage doors, for you can create different kinds of simple motorized locks to suit your needs.

Step 1: Materials


PartSupplier (pictures are clickable!)
Fingerprint scanner (and JST connector)SparkfunSparkfun
Serial LCD kit (w/ATmega328)Sparkfun
NPN transistor SparkfunRadioshack
Speaker wireRadioshack
3D printed caseSee step 9 for files
Copper tapeSparkfunAmazon
5V voltage regulatorSparkfunRadioshack
9V batterySparkfunRadioshack
9V battery connector SparkfunRadioshack
SPDT limit switch

Here is a list of almost all of the parts (It's a Sparkfun wishlist).


  • Soldering iron/solder
  • Electrical tape
  • Hook up wire/ jumpers
  • Wire cutter/stripper
  • Perfboard
  • Assorted resistors
  • Screws
  • Drill
  • A few LEDs for testing
  • 5V FTDI board (Sparkfun)
  • Hot glue gun
  • Access to a 3D printer
  • Optional: IC holder (8 pin for ATtiny and 28 pin for ATmega)
  • Optional: Another Arduino board/10uF capacitor (see step 5 for details)
<p>I solder a USB cable at the back of the scanner and when I used the demo software I successfully managed to enrol two prints. However, when I used the FPS_Enrol example file, I am not getting any thing at the serial monitor ? Any feedback will be much appreciated. </p>
<p>Can you send a picture of your setup please? It should be the same as mine in the picture attached, but using an Uno instead of the serial LCD.</p>
<p>Hi Nodcah</p><p>thanks for this instructable. I'm have the same problem, I am not getting anything at the serial monitor. any help please!!</p><p>thank you</p>
<p>If the FPS light doesn't go on, that means the code line <em>fps.open(); </em>didn't run properly. This means there is a bad connection somewhere because the Arduino can't communicate with the fps. </p><p>I can help you find the problem if you send a more zoomed out picture of your wiring (with the arduino and fps in the picture)! </p>
<p>Thanks for the quick respond. I really appreciate it.</p><p>These are the zoomed out pictures. I hope they are helpful.</p><p>i.e The last picture is what happens when I upload FPS_blink. LED still ain't on. </p>
<p>Was this problem ever resolved? I am having the exact same issue and cannot figure out why the fps.Open() command does not work.</p>
Things to try:<br>-Check wiring<br>-Check voltage of power source<br>-Check current draw of the FPS (make sure it's reasonable according to the datasheet)<br><br>If none of these work, then it may be an update in the FPS' firmware, which I'm no expert on. I hope this helped!
<p>Hi nodcah</p><p>I manage to fix the problem. secondly. i'm trying to use a servo like in step 12. should I still program the ATtiny. any help with how to go about it.</p>
<p>Hi nodcah</p><p>I manage to fix the problem. secondly. i'm trying to use a servo like in step 12. should I still program the ATtiny. any help with how to go about it. </p>
<p>The use of the ATtiny85 is for extra security through a wall. If your implementation allows for just the fingerprint sensor to be showing, then the ATtiny is unnecessary. I don't have code pre-written for the ATtiny in a box, but using a servo library for ATtinys (I don't know one off-hand), you should be able to tweak the code found in step 7. Hope it helped!</p>
<p>Hello, can anyone make this for me as a plug and play kit, with all the programming installed? I would like to incorporate this to pop my trunk open from the exterior of my car. Thanks in advance.</p>
<p>Hi I'm new to electronics but I was scrolling through this projects and I have one question. The materials call for an ATTiny 85, however in the schematics it is labeled as an ATTiny 13 DIP. I don't know the difference and like I said I'm new to all of this but I would appreciate it if someone could clear up this confusion for me.</p>
<p>Hello Nodcah,</p><p>Great Project! </p><p>Is it possible to operate the FPS entirely with the ATTiny? Not for this project in particular but for something else.</p><p>Thx</p>
Yes, definitely! The library probably will not work with the ATtiny but there are some examples of people who have already combined the two <a href="https://hackaday.com/2014/08/20/biometric-secured-golfcart-allows-for-keyless-start/#more-129587" rel="nofollow">here</a>. Looking over their code and the <a href="http://cdn.sparkfun.com/datasheets/Sensors/Biometric/GT-511C3_datasheet_V1%201_20130411%5B4%5D.pdf" rel="nofollow">datasheet for the FPS</a> will show you how to communicate with the fps! The actual code is out of my scope right now but please post code if you end up pursuing this project!
Wow!<br><br>Thank You!
<p>Hello Nodcah,</p><p>I am very new to hardware DIY's like this one, and I have only gotten up to step 3 (could not understand step 2). I have all the materials from the list. Could you, or anyone else, please ELI5 for me? Also, how would I use jumpers instead of hookup cables?</p><p>Thanks</p>
<p>It seems like where you're having trouble reading the schematic and understanding how to set up the circuit board, which is fine! To start, I would try hooking up the circuit on a breadboard. For information on understanding the schematic in Step 2, see <a href="https://learn.sparkfun.com/tutorials/how-to-read-a-schematic">here</a>. For learning how to breadboard a circuit, see <a href="https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard">here</a>. </p><p>Let me know if you need more help! If you ask a specific question or tell me exactly what you don't understand, I'll be able to help you more!!</p>
<p>we have to code approx how much</p>
<p>If you use my code, none =). But it's broken right now for newer versions of the Arduino IDE. If you'd like to help pursue a fix, please read the comments below</p>
<p>Thanks greatly for the write-up! I'm having trouble with the FPS. The FPS blink example works when the serial monitor is not opened. Upon opening the serial monitor, the FPS blinking stops. </p><p>Further, I have been unable to get the sketch that saves a fingerprint to work reliably. Unusually, it randomly did work once. I am using a SainSmart Uno clone, instead of the ATMega 328. Is it perhaps a problem using the SainSmart?</p>
Thanks for reading!! I don't think the SainSmart is the problem. For the serial monitor problem, I know when it's opened up, the program is restarted. Can you try replacing the FPS blink in the code with a simple LED? That way you can test to see if that that actually works. As for the enrolling problems, try powering the dos from the 3.3v line and see if that helps! I've also had some very mysterious problems with this FPS, but only in the development stage&mdash;it's weird.
<p>Hello again! After trying a friend's Arduino, buying another FPS, and running off a few different computers, I am still running into the same problem. The blink example seems to work fine when the serial monitor is not open. Although, as soon as I open the serial monitor, the text below is output, the FPS stops blinking, and nothing more happens. Any ideas?</p><p>FPS - Open</p><p>FPS - SEND: &quot;55 AA 01 00 00 00 00 00 01 00 01 01&quot;</p><p>Also, I could be wrong, but I think the placement of the 560 Ohm resistor in the provided above schematic is incorrect. A different image that you provide shows it in the correct position (series with the 1K Ohm). Is this accurate?</p><p>Thanks!</p>
<p>I am facing exactly same problem. When I upload the blink program to the arduino, it displays Done Uploading; but the blinking doesn't start until I disconnect &amp; reconnect the arduino from usb port. Then, the blink program runs fine until either serial monitor is opened or reset button is pressed.</p><p>Enroll program doesn't run at all. No display on Serial Monitor; no blinking; nothing!</p><p>Sometimes, while blinking, the tx light on the arduino blinks everytime the fps blinks, but sometimes it doesn't happen at all.</p><p>Please help me with this.</p>
<p>Hey sorry <a href="https://www.instructables.com/member/JonathanM231" style="">JonathanM231</a> for the late reply. So I just compiled the sketch with warnings enabled and I got a flood of errors! To see what I mean, go to Preferences-&gt;Compiler Warnings-&gt;More and scroll up in the console on the bottom of the Arduino window after compiling. You'll see a bunch of orange text with warnings and error messages.</p><p>I don't know c++ well enough to update the library, but you guys can definitely nicely ask Joshua Hawley, the creator of the FPS Library, to update his library! His blog can be found at <a href="http://wordpress.hawleyhosting.com/ramblings/?p=375">http://wordpress.hawleyhosting.com/ramblings/?p=375</a>. If he updates the library, please let me know!!</p>
<p>thanks for the great instructables.<br>I have one issue with the sw - I tried to use the gt511 library , and even the simplest blink test program doesn't compile . there's some compatibility issue with softwareserial.h on esp8266 and arduino . do you have an idea on how to deal with this ? I'm just learning arduino esp programming now, but I had a longer history with older controllers. </p>
Hmmm... I would try a different a different implementation of SoftwareSerial like <a href="https://github.com/esp8266/Arduino/issues/143" rel="nofollow">this one</a>. If that doesn't work, you can try sending the fps commands manually. You can check the datasheet for the codes to send the fps. Let me know if you have any more questions!
<p>Hi,</p><p> Great post! Im currently trying this at home, I have all the hardware built, but when I try to compile the blink example, it just says, 'no such file or directory' </p><p> Is there something else I need to do other than just upload the program</p><p>(I'm new to this as you can probably tell!) Many thanks for any advice you can give!</p><p> Thanks, Andy</p>
<p>Double check you've downloaded <a href="https://github.com/sparkfun/Fingerprint_Scanner-TTL/archive/master.zip">the FPS library</a>. To install the library, follow instructions given <a href="https://www.arduino.cc/en/Guide/Libraries#toc5">here</a>. Inside the zip, you should move the file called &quot;FPS_GT511C3&quot; to your arduino libraries folder. Let me know if you have any more questions!</p>
<p>Hi nodcah, thanks for the reply.</p><p> I did do lots of forum searching and eventually moved them here which I thought would solve it, but it didn't.</p><p>I have attached a picture of where I have put the files, I think I have them in the right place..?</p><p> Thanks again :)</p>
Try moving the FPS_GT511C3 directory into the libraries directory. Arduino doesn't like libraries with a &quot;-&quot; in them. Also, you may need to restart the Arduino program for it to work
<p>Hi nodcah,</p><p> I have moved it to the correct location, but still having the same problem! Do you have any other suggestions? Im guessing it must be something simple, but just cant see what. I really appreciate your help on this :)</p>
<p>Do you see the library in examples? Also, would you mind sending me the full error message plaese?</p>
<p>Hi nodcah,</p><p> No the library doesn't seem to be appearing on that list on the arduino example...I guess its a case of just moving it somewhere, I experimented with putting them in a few different places but still doesn't seem to work :( Here is the full error message...Thanks again!</p>
<p>I included a zip file with this comment. First, download the zip file. Go to the menu &quot;Sketch-&gt;Include Library-&gt;Add .ZIP Library...&quot; then select the zip file. Hope this helps!!</p>
<p>Hi nodcah,</p><p>I have moved it now it is definitely in the Arduino libraries folder, but it is still saying the same thing! :( Really struggling now, do you have any thing else I could try?</p><p> Thanks..again! :) :) </p>
On the serial monitor
<p>Thanks for including a picture! The problem you are having probably means there is a communication issue with the fingerprint scanner. Does the blink sketch from step 6 work?</p>
<p>Are the same Arduino library (GT-511C1R) &amp; </p><p>(GT511-C3)???????</p>
When I test the program enroll there is nothing
Is it necessary to use the attiny for the project if I ve an arduino ATmega
<p>can you tell me why do you use the attinypin in your program</p>
I'm not sure I understand your question. But the reason there is a pin that connects the ATtiny and the ATmega is so they can communicate to each other. If you follow the schematics and upload the code, I think your problems will be solved. Let me know if you have any more questions! :-)
<p>with the ATmega</p>
<p>HI,<br>I start with the arduino and I would like to use your project but I have a problem to record an ID and I don't arrive to use your program </p>
Can you be more specific please? Are you having trouble uploading code or running the fps enroll program?
<p>Hi nodcah I've a problem with the Gt511-C3 can you give your email adress to ask you one thing?</p>
<p>Please see the <a>product page</a> for more information about the fps. If you are still having trouble, please post a comment publicly so everyone can benefit from your question!</p>
<p>can anyone send me pdf file? i cant see</p>

About This Instructable




Bio: I am a freshman in college studying computer engineering and an alumn of a FIRST robotics team. I also love to tinker on my own ... More »
More by nodcah:Turn Your Entire Phone into a Touchscreen DIY Glowing Bracelet Fix Any Video Game Controller 
Add instructable to: