The R307S Fingerprint Scanner, manufactured by Adafruit, is a compact biometric sensor designed for capturing and verifying fingerprints. It features a high-resolution optical sensor and an integrated microcontroller for efficient fingerprint processing. This module is widely used in security applications, such as access control systems, time attendance devices, and embedded systems requiring biometric authentication.
The R307S Fingerprint Scanner is a robust and reliable module with the following key specifications:
Parameter | Value |
---|---|
Manufacturer | Adafruit |
Manufacturer Part ID | R307S |
Operating Voltage | 3.6V to 6.0V |
Operating Current | 50mA (typical), 80mA (peak) |
Fingerprint Capacity | 1000 templates |
Interface Protocol | UART (TTL) |
Baud Rate | Configurable (default: 57600 bps) |
Image Resolution | 508 DPI |
Working Temperature | -20°C to +50°C |
Dimensions | 55mm x 21mm x 21.5mm |
Weight | 15g |
The R307S module has a 6-pin interface for power and communication. The pinout is as follows:
Pin | Name | Description |
---|---|---|
1 | VCC | Power supply input (3.6V to 6.0V) |
2 | GND | Ground |
3 | TX | UART Transmit (connect to RX of the microcontroller) |
4 | RX | UART Receive (connect to TX of the microcontroller) |
5 | TOUCH | Touch signal output (active high when touched) |
6 | NC | Not connected |
Below is an example code to enroll and verify fingerprints using the R307S with an Arduino UNO:
#include <Adafruit_Fingerprint.h> // Include the Adafruit Fingerprint library
#include <SoftwareSerial.h> // Include SoftwareSerial for UART communication
// Define the RX and TX pins for SoftwareSerial
SoftwareSerial mySerial(2, 3); // RX, TX
// Create an instance of the fingerprint sensor
Adafruit_Fingerprint finger(&mySerial);
void setup() {
Serial.begin(9600); // Initialize serial communication with the PC
while (!Serial); // Wait for the serial monitor to open
Serial.println("R307S Fingerprint Scanner Test");
mySerial.begin(57600); // Initialize UART communication with the sensor
if (finger.begin()) {
Serial.println("Fingerprint sensor detected!");
} else {
Serial.println("Fingerprint sensor not detected. Check connections.");
while (1); // Halt execution if the sensor is not found
}
// Set the password (default is 0x00000000)
finger.setPassword(0x00000000);
}
void loop() {
Serial.println("Place your finger on the sensor...");
if (finger.getImage() == FINGERPRINT_OK) {
Serial.println("Fingerprint image captured!");
if (finger.image2Tz(1) == FINGERPRINT_OK) {
Serial.println("Fingerprint converted to template!");
int id = finger.fingerFastSearch();
if (id >= 0) {
Serial.print("Fingerprint matched! ID: ");
Serial.println(id);
} else {
Serial.println("No match found.");
}
} else {
Serial.println("Failed to convert image to template.");
}
} else {
Serial.println("Failed to capture fingerprint image.");
}
delay(2000); // Wait before the next scan
}
Adafruit_Fingerprint
library simplifies communication with the R307S module.finger.getImage()
function captures the fingerprint image, while finger.image2Tz()
converts it into a template.finger.fingerFastSearch()
function searches for a match in the stored templates.Fingerprint Sensor Not Detected
Fingerprint Not Recognized
Touch Pin Not Responding
Sensor Performance Degraded
Can the R307S store multiple fingerprints?
What is the default password for the sensor?
0x00000000
.Can I change the baud rate of the sensor?
setBaudRate()
function in the Adafruit Fingerprint library.Is the R307S compatible with 5V logic?
By following this documentation, you can effectively integrate the R307S Fingerprint Scanner into your projects for reliable biometric authentication.