Fingerprints are one of the many unique biometric signatures we can use to identify people very accurately. But just by holding someone’s hand and staring at their fingers can’t be practical [grins]; we’re not good at it. But computers are good at recognizing and matching patterns very fast and accurately. Before we can process a fingerprint pattern with a computer, we must “capture” it.
There exists many methods to digitize fingerprints; from forensic methods to ultrasound scanning. In this tutorial, we will learn how an Optical Fingerprint Scanner works and how we can interface the R307 fingerprint scanner module to Arduino. R307 is an optical fingerprint scanner module from R30X series produced by a Chinese vendor called Hangzhou Grow Technology Co., Ltd. Other sensors in the series are R300, R301T, R302, R303, R303T, R305, R306, R308, and R311, some of which are capacitive sensors. Despite having different sensing techniques and form-factors, they all share the same interface and command set. Therefore it is easy to adapt the library that you find here for other models as well.