Picture of DIY Fingerprint Scanning Garage Door Opener

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 awesome fingerprint 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

Picture of Materials


Part Supplier (pictures are clickable!)
Fingerprint scanner (and JST connector) Sparkfun Sparkfun
Serial LCD kit (w/ATmega328)Sparkfun
NPN transistor Sparkfun Radioshack
BuzzerSparkfun Radioshack
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)
1-40 of 221Next »
owatson2 months ago

you could maybe use a relay instead of a transistor

The thing is, a relay needs a transistor and a diode. The whole setup is bigger and bulkier than just using a transistor. A transistor can be controlled directly from a microcontroller (with a resistor), but a relay cannot.

Why would a relay need a transistor and a diode?

Might be, but I´m not that into Arduino projects, just up to clarification ;)

nodcah (author)  owatson2 months ago

A relay would work fine! And you would only need a resistor (diode and transistor are extraneous in this setup)

Truthis12 months ago

WOW, as a newbie this is a bit beyond me for the moment but I'm learning so forgive me if these questions are "dumb."

I don't have a garage, but love the chest idea to practice, but ultimately want to put it on an armoire door, which I use as a home office.

1. I don't understand about the part about the sero needing more power since the trunk is a movable item. Is that because its not hardwired into the garage's electrical system?

2. What happens when the battery dies? Are you locked out? How many opens/closes do you think you will get on 6AA bateries? Since, there's no way of telling when the battery is low, or is there?

3. Is a fingerprint scanner as easy to break into with just a clear transparency sheet like in the movies? Is it more or less secure than a digital pin lock?(I don't need bank level security, but I plan on moving the hinges to the inside of my armoire to eliminate any super easy break ins.)

4.How (besides not having any wires exposed and drilling the plastic case to the armoire) would you suggest to make it more secure? I'm thinking of a wooden case for the outside, which would also be less noticeable therefore less appealing to thieves if attached to the door with metal clamps and screws.

Thanks so much if anyone replies to these pain in the neck questions on a post that's a year old!!

NickA6 Truthis11 month ago

If you're worried about security and getting locked out, maybe you could design yours so that it operates a pre-existing lock. If you put a lock that can be turned on the inside with your fingers and with a key on the outside, you could then rig a servo to turn the inside portion of the lock. This way, the lock is more secure and if the batteries die, you can just use your key.

nodcah (author)  Truthis12 months ago

1.) The setup will need more power for a longer life

2.) Yes, you are locked out, but a built in battery detector shouldn't be too hard to code.

3.) I'm not quite sure. If you wipe the sensor off after use, then you're guaranteed much better security. It sounds like you need something with a bit more rigidity than I can offer, so I'd recommend maybe buying a commercial lock than hacking it.

4.) For the best security, everything besides the edge of the fingerprint scanner and the screen should be in the case. This would require a modified case.

Thanks for commenting! :-D

lights01232 months ago

Wow. I found this instructable 7 months ago. I was using a Yun, which does not support SoftwareSerial, only AltSoftSerial. So, I reversed the connections and pumped 5V into a 3V3 pin... Now, 7 months later, I found out that it worked! I'm probably going to modify it so that it works on a Yun (datalogging? or integrate with our home automation system?).

nodcah (author)  lights01232 months ago

Cool idea! Let me know how that turns out! I haven't used the the yun before, but it looks pretty cool!

lights0123 nodcah2 months ago

Wow. I said "I was using a Yun, which does not support SoftwareSerial, only AltSoftSerial." I was doing something wrong. It does actually work with no changes...

nodcah (author)  lights01232 months ago

Well I was saying let me know how it turns out if you decide to expand on the project and add data logging or integrate it with a home automation system.

mikefromspace2 months ago

wow...thank you... I'm putting this on my truck.

nodcah (author)  mikefromspace2 months ago

Ohh that's awesome!

JayRed2 months ago

Wow...thats exactly what I am looking for! How many different fingerprints you think are possible to store?

nodcah (author)  JayRed2 months ago

20 for the low cost module and 200 for the expensive one (both are offered from sparkfun.com).

rab427012 months ago

Hey, I'm also from a FIRST team, I was wondering whether you were in FRC or FTC, and what is your team number?

nodcah (author)  rab427012 months ago

FRC team 3182 (Athena's Warriors). Don't expect to see me at worlds or anything, but I love the experience!

Mjtrinihobby2 months ago

beyond impressive. Also beyond my capabilities!

aiden22 months ago


CianR3 months ago

my fps seems to give up after about 1min of being on. i turned on the serial debugging and just before it stops working it spits out:

loopingFPS - IsPressFinger

FPS - SEND: "55 AA 01 00 6C 63 6F 6D 26 00 D1 02"

please help

nodcah (author)  CianR3 months ago

I see a few possibilities here:

1.) The FPS is overheating because it's running off of 5V (it has been a problem for some others, not me though).
2.) The capacitive touch pad is defective
3.) The code is constantly checking for a finger somewhere, then not doing anything else

I don't know how helpful that is, but if you give me a little more information, I can help you out a little more.

CianR nodcah3 months ago
Thank you very much for your speedy response. I realised that the fps had stability issues when I powered the Arduino via a wall wart but not when connected to the usb port. I realised this could have been because of the voltage provided by the wall wart allowed the Arduino to output it's full 5v. So I just put a 1N4001 rectifier diode on the power line to the fps which knocked a volt or two off the supply and also added some 7805 voltage regulators with 4700uf capacitors to the power supply and this fixed the stability issues.
nodcah (author)  CianR3 months ago
Thanks for posting your solution! :-D
JeromeA23 months ago
Hi nodcah. Thanks for this great guide. There's just one question though, is there a way to make this accept just any fingerprint and not the ones which have been stored.
nodcah (author)  JeromeA23 months ago
Well you could call the enroll function and see if it returns an error (not recognized as a fingerprint). If fps.CaptureFinger(true) returns true, then a fingerprint is recognized by the system.
Or you could use fps.IsPressFinger(), which just detects if the capacitive touch is triggered.
JeromeA2 nodcah3 months ago
Thanks a bunch sir. Just what I needed.
ihsan.kirkali4 months ago


How can I reset fingerprint scanner? I had to unplug usb cable of arduino after each uploading.

nodcah (author)  ihsan.kirkali4 months ago
I had a limit switch to turn off the module that cuts the power. You can also make a switch that triggers a reset in the code using a watchdog timer.

so usar o PIC com esse módulo?

nodcah (author)  carlos.junior.7144 months ago

This project is actually made with the Arduino platform, not PIC. If you could find out how to do it with PIC, post your results here and I'll be sure to link it in my Instructable! =)

Ok... Farei e enviarei para a sua avaliação. Vamos ir trocando ideia, meu endereço de e-mail é: carlos.rufinoj@gmail.com

RizalR6 months ago

hi thank you very much for writing this article, it really cools!

but how do i get the Unique ID of each fingerprint? because i don't want to store the fingerprint id to arduino database. I'm planning to combine fingerprint scanner with php mysql database through the Internet. So, my idea is to read the unique ID of each fingerprint, than send that ID to my php script.

Maybe the concept is like RFID. As you know every RFID card has its own unique ID.

nodcah (author)  RizalR4 months ago

The only way to do that would be to first share the fingerprint that is associated with that ID (if it's only one scanner, that's not a problem). Then, you should be able to link each ID recieved when you use fps.Identify1_N() to a person, this should achieve what you want. (I changed the code above to do just that actually) :-D

AjinkyaJ16 months ago

Hey nodcah!

I would like to know if there is anyway i could delete and replace the fingerprint scans on the gt 511 module. Does the library provide us with that functionality?

Thanks so much!

nodcah (author)  AjinkyaJ14 months ago

Sorry for the late reply. To delete a scan, use fps.DeleteID(IDNumber). IDNumber being the numeric ID of the fingerprint.


Bought the FPS GT-511C1R and would like to do some tests.

What I need is simple, but do not know how to do. I need to save the digital in a variable to send over the network. It would be possible to help me with the commands "GetTemplate / settemplate"?

nodcah (author)  vinicius_borges4 months ago

Sorry, but to my knowledge, you can only do this with the computer program, not the arduino.

aizirt7 months ago

hi, I have tried the codes but it keeps on giving me this errors:

FPS_GT511C3\FPS_GT511C3.cpp.o: In function Command_Packet::GetPacketBytes()': C:\Users\Documents\New folder\arduino-1.0.6\libraries\FPS_GT511C3/FPS_GT511C3.cpp:17: undefined reference tooperator new'
FPS_GT511C3\FPS_GT511C3.cpp.o: In function FPS_GT511C3::GetResponse()': C:\Users\Documents\New folder\arduino-1.0.6\libraries\FPS_GT511C3/FPS_GT511C3.cpp:735: undefined reference tooperator new'

louisheng.047 months ago

i would like to ask is it okie for me not to put that board ?i circle in pic.

nodcah (author)  louisheng.047 months ago

Yes, but It will need to be replaced by an Arduino or similar. If you're looking to keep the small form factor, you can try this.

1-40 of 221Next »