

The R307S Fingerprint Sensor, manufactured by Shreyansh, is a biometric sensor designed to capture and verify fingerprints for authentication and security purposes. This compact and reliable module is widely used in access control systems, time attendance devices, and other applications requiring secure identification. The R307S combines a fingerprint scanner with an onboard processor to handle image processing, feature extraction, and fingerprint matching.








Below are the key technical details of the R307S Fingerprint Sensor:
| Parameter | Specification |
|---|---|
| Manufacturer | Shreyansh |
| Part ID | R307S |
| Operating Voltage | 3.6V - 6.0V DC |
| Operating Current | 50mA (typical), 80mA (maximum) |
| Interface | UART (TTL) |
| Baud Rate | Configurable (default: 57600 bps) |
| Fingerprint Capacity | 1000 templates |
| Image Resolution | 500 DPI |
| Scanning Area | 14mm x 18mm |
| Matching Speed | < 1 second |
| False Acceptance Rate | < 0.001% |
| False Rejection Rate | < 1.0% |
| Operating Temperature | -20°C to +50°C |
| Dimensions | 55mm x 21mm x 21.5mm |
The R307S module has a 6-pin interface for communication and power. The pinout is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply (3.6V - 6.0V DC) |
| 2 | GND | Ground |
| 3 | TX | UART Transmit (data output) |
| 4 | RX | UART Receive (data input) |
| 5 | TOUCH | Touch signal (active high) |
| 6 | NC | Not connected |
To use the R307S with an Arduino UNO, follow these steps:
Below is an example of how to interface the R307S with an Arduino UNO using the Adafruit Fingerprint Sensor Library:
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
// Define the RX and TX pins for the fingerprint sensor
SoftwareSerial mySerial(2, 3); // RX, TX
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("Initializing fingerprint sensor...");
// Initialize the fingerprint sensor
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Fingerprint sensor detected!");
} else {
Serial.println("Fingerprint sensor not detected. Check connections.");
while (1); // Halt the program if the sensor is not found
}
}
void loop() {
Serial.println("Place your finger on the sensor...");
int result = finger.getImage(); // Capture the fingerprint image
if (result == FINGERPRINT_OK) {
Serial.println("Fingerprint image captured successfully.");
result = finger.image2Tz(); // Convert the image to a template
if (result == FINGERPRINT_OK) {
Serial.println("Fingerprint template created.");
result = finger.fingerFastSearch(); // Search for a match
if (result == FINGERPRINT_OK) {
Serial.print("Fingerprint matched! ID: ");
Serial.println(finger.fingerID);
} else {
Serial.println("No match found.");
}
} else {
Serial.println("Failed to create fingerprint template.");
}
} else {
Serial.println("Failed to capture fingerprint image.");
}
delay(2000); // Wait before the next scan
}
Fingerprint sensor not detected by the Arduino.
Fingerprint image capture fails.
No match found for a registered fingerprint.
Sensor does not power on.
Q: How many fingerprints can the R307S store?
A: The R307S can store up to 1000 fingerprint templates.
Q: Can the R307S be used with a Raspberry Pi?
A: Yes, the R307S can be interfaced with a Raspberry Pi using its UART interface.
Q: What is the default baud rate of the R307S?
A: The default baud rate is 57600 bps, but it can be configured as needed.
Q: How do I clean the sensor surface?
A: Use a soft, lint-free cloth slightly dampened with isopropyl alcohol to clean the sensor.
By following this documentation, you can effectively integrate the R307S Fingerprint Sensor into your projects for secure and reliable biometric authentication.