Skip to content
Identification / RFID

R307 Optical Fingerprint Sensor Module

Biometric access control for DIY smart locks.

The R307 is an optical fingerprint reader module built around an integrated optical sensor and an onboard processor that handles image capture, feature extraction, and fingerprint template matching entirely on-module. Rather than sending raw images to your microcontroller, it does the heavy lifting itself and returns simple pass/fail match results over UART, making it a popular choice for DIY smart locks, biometric attendance systems, and secure-access add-ons for existing projects.

Specifications

Sensor typeOptical fingerprint sensor with onboard DSP for image processing and matching
Operating voltage3.6V–6.0V DC (commonly run at 5V)
Operating current~120 mA typical, up to 150 mA peak during scanning
Image resolution500 DPI, 256 x 288 pixel capture area
Template storageUp to 1000 fingerprint templates stored in onboard flash
Matching modes1:1 verification and 1:N identification search
InterfaceTTL UART (default 57600 baud) using a simple binary packet protocol
False accept rate< 0.001% (module-dependent, per datasheet)

Pinout

PinNameDescription
1VCCPower, 3.6–6V DC (5V typical)
2TXUART transmit — connect to microcontroller RX
3RXUART receive — connect to microcontroller TX
4GNDGround
5TOUCH (3.3V)Capacitive touch-detect output on some revisions, wakes the module when a finger is placed
6WAKEUPOptional finger-detect signal used for low-power wake designs

The module ships with a 6-pin JST connector; on 5V boards like the Arduino Uno, a logic-level shift isn't required since the R307 TX/RX are 3.3V-tolerant enough in practice, but for reliable long-term use many builders still add a voltage divider or a SoftwareSerial connection to avoid tying up the hardware UART used for USB debugging.

Variants

The R307, AS608, and FPM10A are largely interchangeable at the software level since they all speak the same command set popularized by the Adafruit fingerprint sensor library — pick whichever is cheapest or fastest to ship, and double check the baud rate in your code if switching between them.

VariantTemp rangeHum rangeAccuracyProtocolPrice
R307 (JST cable, TTL UART)~$8-15
AS608~$7-13
FPM10A~$6-10

Board Integration

Library

Adafruit Fingerprint Sensor Libraryby Adafruit

Search "Adafruit Fingerprint" in Library Manager (Sketch > Include Library > Manage Libraries)

Wiring

Component pinBoard pinNote
VCC5V
GNDGND
TXD2 (Arduino RX via SoftwareSerial)
RXD3 (Arduino TX via SoftwareSerial)

Code

C++

Notes

This assumes fingerprints have already been enrolled — enrollment is a separate multi-step process (the Adafruit library's example sketches include a ready-made enroll sketch, worth running once before this matching code). Default baud is 57600, not the more common 9600.