Back to Sensors & Actuators Series

R305 Optical Fingerprint Sensor Module

April 10, 2026 Wasil Zafar 8 min read

R305 deep dive — optical imaging principle, UART protocol, enrollment and verification workflow, FAR/FRR, complete code, and biometric access applications.

Contents

  1. Working Principle
  2. Electrical Characteristics
  3. Interfacing with MCU
  4. Calibration
  5. Code Example
  6. Real-World Applications
  7. Limitations

Working Principle

The R305 (also sold as FPM10A) is an optical fingerprint sensor module. A CMOS camera illuminated by LEDs captures an image of the fingertip pressed against a glass prism. An on-board DSP extracts minutiae points (ridge endings and bifurcations) and stores them as a compact template. During verification, the sensor captures a new image, extracts minutiae, and compares against stored templates.

Analogy: Imagine taking a close-up photo of a fingerprint and circling every spot where a ridge splits or ends. Those circles become the "password." To unlock, a new photo is taken and compared — if enough circles match, access is granted.

Electrical Characteristics

ParameterValue
Supply Voltage3.6 V – 6.0 V
InterfaceUART (57600 baud default)
Image Resolution500 dpi
Template Capacity162 fingerprints (on-board flash)
FAR (False Accept Rate)<0.001%
FRR (False Reject Rate)<1%
Match Time<1 second (1:162)
Current~120 mA during capture

Interfacing with an MCU

The R305 communicates via UART at 57600 baud (or configurable up to 115200). It has 4 wires: VCC, GND, TX, RX. Most modules use a JST connector or colour-coded wires (red=VCC, black=GND, yellow=TX, green/white=RX).

Wiring (Arduino Mega): VCC → 5 V, GND → GND, TX (yellow) → Serial1 RX (Pin 19), RX (green) → Serial1 TX (Pin 18). On Uno, use SoftwareSerial on pins 2 and 3.

Calibration

The R305 is factory-calibrated for image capture. The enrollment workflow is the key setup step:

  • Enrollment: Capture the same finger twice (two templates), then merge and store with an ID number.
  • Security level: Adjustable 1–5 (1 = lenient, 5 = strict). Higher levels reduce FAR but increase FRR.
  • Clean sensor: Wipe the glass surface regularly — oils and dust degrade image quality and match accuracy.

Code Example

/*
 * R305 Fingerprint Verification — Arduino
 * Requires: Adafruit_Fingerprint library
 * Wiring: TX→Pin2(RX), RX→Pin3(TX), VCC→5V
 */
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);  /* RX=2, TX=3 */
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() {
    Serial.begin(9600);
    finger.begin(57600);
    if (finger.verifyPassword()) {
        Serial.println("Fingerprint sensor found!");
        Serial.print("Templates stored: ");
        finger.getTemplateCount();
        Serial.println(finger.templateCount);
    } else {
        Serial.println("Sensor not found! Check wiring.");
        while (1);
    }
}

void loop() {
    Serial.println("Place finger on sensor...");
    int id = getFingerprintID();
    if (id >= 0) {
        Serial.print("Match found! ID: "); Serial.println(id);
        Serial.print("Confidence: "); Serial.println(finger.confidence);
    }
    delay(1000);
}

int getFingerprintID() {
    uint8_t p = finger.getImage();
    if (p != FINGERPRINT_OK) return -1;
    p = finger.image2Tz();
    if (p != FINGERPRINT_OK) return -1;
    p = finger.fingerSearch();
    if (p == FINGERPRINT_OK) return finger.fingerID;
    return -1;
}

Real-World Applications

Security

Door Access Control System

Small offices and makerspaces use R305 modules in DIY door locks. The sensor stores up to 162 authorised fingerprints. An Arduino compares each scan against the database and actuates a solenoid lock on match. The sub-1% FRR ensures authorised users rarely need to re-scan, while the <0.001% FAR provides strong security for low-traffic environments.

Access ControlSecurityBiometric

Limitations

  • Optical limitations: Wet, dirty, or scarred fingers produce poor images and higher rejection rates.
  • Small database: 162 templates is sufficient for small installations; larger systems need R307/R503 (1000+ templates).
  • No liveness detection: Basic optical sensors can be spoofed by high-quality silicone fingerprint moulds — capacitive sensors are more secure.
  • Power hungry: ~120 mA during capture makes it unsuitable for ultra-low-power battery applications.