

The Grow Fingerprint Reader (R503) is a biometric device designed to capture and verify fingerprints for authentication purposes. Manufactured by GROW, this compact and reliable module is widely used in security systems, access control, and other applications requiring secure identification. The R503 combines a fingerprint sensor with an onboard processor to handle image processing, feature extraction, and fingerprint matching.








The following table outlines the key technical details of the Grow Fingerprint Reader (R503):
| Parameter | Specification |
|---|---|
| Manufacturer | GROW |
| Part ID | R503 |
| Operating Voltage | 3.6V to 6.0V |
| Operating Current | < 120mA |
| Peak Current | < 150mA |
| Communication Interface | UART (TTL) |
| Baud Rate | Configurable (Default: 57600 bps) |
| Fingerprint Capacity | 1000 templates |
| Image Resolution | 508 DPI |
| Working Temperature | -20°C to +50°C |
| Storage Temperature | -40°C to +85°C |
| Dimensions | 55mm x 21mm x 21.5mm |
The R503 module has a 6-pin interface for power and communication. The pinout is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply (3.6V to 6.0V) |
| 2 | GND | Ground |
| 3 | TX | UART Transmit (Data output) |
| 4 | RX | UART Receive (Data input) |
| 5 | TOUCH | Touch detection signal (Active HIGH) |
| 6 | NC | Not connected |
To use the Grow Fingerprint Reader (R503) in a circuit, connect it to a microcontroller (e.g., Arduino UNO) as follows:
Below is an example of how to interface the R503 with an Arduino UNO to enroll and verify fingerprints:
#include <Adafruit_Fingerprint.h> // Include the Adafruit Fingerprint library
#include <SoftwareSerial.h> // Use SoftwareSerial for UART communication
// Define the RX and TX pins for the fingerprint sensor
SoftwareSerial mySerial(2, 3); // RX = Pin 2, TX = Pin 3
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...");
// Start 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 execution 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 template.");
}
} else {
Serial.println("Failed to capture fingerprint image.");
}
delay(2000); // Wait before the next attempt
}
Fingerprint sensor not detected by the microcontroller:
Fingerprint not recognized:
Touch detection not working:
Q: Can the R503 store multiple fingerprints?
A: Yes, the R503 can store up to 1000 fingerprint templates in its internal memory.
Q: How do I reset the fingerprint database?
A: Use the appropriate command from the sensor's datasheet to clear all stored templates.
Q: Can I use the R503 with a 3.3V microcontroller?
A: Yes, the R503 supports an operating voltage as low as 3.6V. However, ensure the UART logic levels are compatible.
Q: What is the default password for the R503?
A: The default password is 0x00000000. It can be changed using the appropriate commands.
By following this documentation, you can effectively integrate the Grow Fingerprint Reader (R503) into your projects for secure and reliable biometric authentication.