Introduction: Fingerprint and OTP Authentication for ATM Machine

About: Utilizing the spare time to Learn, Make and Share DIY Electronics and IoT projects with the online maker community.

The problem with the existing system is we are required to carry debit or credit card. Plus we have to remember PIN which often forgotten if not used for a long time. Many people keep simple password such as a birth year, ending or starting 4 digits of phone number, etc. which is very easy to crack if card gets into wrong hands. The second problem nowadays people tend to have multiple cards so this creates more trouble to remember more password PINs. If credit card stolen then you know its consequence.

Second, the most important risk is of skimmer. The criminal attach this skimmer device to ATM machine to steal your credit or debit card information from distant location.

So, to avoid the above mentioned problem, I proposed this prototype project which showcases how we can add extra layer of security to ATM transactions and reduce those headaches to some extent.

Let's jump to get started with the project.

Step 1: Things Required for Project

Hardware: (Qty)


Tools: (optional if implementing project on breadboard)

Skills Required:

  • Basic Circuit understanding
  • Arduino Programming
  • Soldering (optional if implementing project on breadboard)

Step 2: Arduino IDE Installation and Library Setup

1) Arduino IDE setup:

Follow the Arduino official link below to install Arduino IDE on your respective OS:

Windows ->

Linux ->

Mac ->

Linux user can follow my video tutorial:

2. Installing Library:

For this project we need GT511C3 fingerprint module library which can be downloaded from link:

Download files, after this just extract and copy to libraries folder of your Arduino as shown in below image.

Step 3: Circuit Wiring Connection and Packaging

Make connection as shown in above circuit wiring diagram.

Now what you need to take care here, GT511C3 module works with supply 3.6 to 6 but it's TTL pin (Rx and Tx) are not 5V tolerant.

TX of scanner can be directly connected to Arduino digital pin but RX is connected via potential divider which helps to bring down 5V within range of 3.3V

You can make a resistor potential divider connection on the breadboard as shown in the above image. Or solder on general-purpose dot PCB to avoid loose connection.

Package project in suitable box and ready to proceed for programming.

Note: Sparkfun manufacturer of the GT511C3 fingerprint scanner has discontinued it. You can go with their latest GT-521F52 scanner which better version of it, this will also work since the similar library and TTL wiring.

Step 4: Coding and Testing

Upload Project code provided below to Arduino Uno and That's it ready to test. I have added comments in code for an explanation of each section, if still has any doubts then comment below.

Enrollment & Checking Part:

Balance Inquiry Test:

Cash Withdraw Test:

Step 5: Conclusions and Future Work Scope

So, we have seen how we can enhance the security level of the ATM machine to safeguard transactions with Biometric fingerprint and SMS mobile phone technology.
For the demo, I have use DC motor and serial terminal for debugging, but you can add keypad and screen to make it more portable.
The application area is not limited to ATM machine it can be used for :
- Home Security
- Office or sensitive labs Security


Make it Move

Participated in the
Make it Move