Overview

The AS608 (and closely related ZFM-20 / FPM10A series) is an optical fingerprint reader module widely used in biometric security systems, smart door locks, and attendance loggers. It integrates an optical glass prism, internal blue illumination LEDs, a high-resolution CMOS image sensor, and a dedicated Synochip DSP image processing ASIC with onboard non-volatile flash memory.

Storing up to 300 fingerprint templates in its internal flash memory, the AS608 performs onboard fingerprint feature extraction, 1:N pattern matching, and template management. It communicates with host microcontrollers (Arduino, ESP32, Raspberry Pi) over a simple 3.3V/5V TTL UART interface at 57,600 baud.

Quick reference

Operating voltage (VCC)3.6 V to 6.0 V DC (5.0 V nominal)
InterfaceTTL UART (57,600 bps default) & USB 1.1
Fingerprint capacity300 templates
Optical resolution500 DPI
Window size14 mm×18 mm14\text{ mm} \times 18\text{ mm} active optical glass prism
Search/Match time<0.3 seconds< 0.3\text{ seconds} (1:N search across 300 templates)
Security ratingsFalse Acceptance Rate (FAR) <0.001%< 0.001\%, False Rejection Rate (FRR) <1.0%< 1.0\%
Operating current60 mA60\text{ mA} average / 120 mA120\text{ mA} peak during scan

Pinout

The module exposes a 6-pin 1.27 mm or 2.0 mm pitch cable connector:

PinCable ColorNameTypeDescription
1RedVCCPowerPower supply input (+3.6 V to +6.0 V DC)
2BlackGNDPowerGround reference (0 V)
3YellowTXDigital OutputUART Transmit output pin (3.3V logic level)
4WhiteRXDigital InputUART Receive input pin (3.3V/5V tolerant)
5BlueTOUCH / WAKEDigital OutputActive-High finger detection output (pulls High when finger touches prism)
6Green3.3VPower Output3.3V regulated output pin (max 20 mA)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVCCV_{CC}3.65.06.0VDC
Active Scan CurrentIactiveI_{active}60120mABlue LEDs active
Standby CurrentIsbI_{sb}10mAIdle state
UART Baud Rate RangeBaudBaud960057600115200bpsProgrammable ($N \times 9600$)
Image Processing Timetproct_{proc}0.20.5sFeature vector extraction
Security LevelLevel135Configurable 1 (lowest) to 5 (highest)

Command Packet Structure

All commands sent to the AS608 follow an 11-byte frame format:

  • Header (2 Bytes): 0xEF 0x01
  • Address (4 Bytes): 0xFF 0xFF 0xFF 0xFF (Default broadcast device address)
  • Package Identifier (1 Byte): 0x01 (Command packet)
  • Package Length (2 Bytes): Length of payload + checksum
  • Instruction Code (1 Byte): e.g., 0x01 (Get Image), 0x02 (Generate Character File), 0x03 (Match Fingerprints), 0x06 (Store Template)
  • Checksum (2 Bytes): Sum of Package ID + Length + Instruction + Payload

Wiring

AS608 PinArduino (SoftwareSerial)ESP32Notes
Red (VCC)5V5VPowers DSP and blue LEDs
Black (GND)GNDGNDSystem ground
Yellow (TX)Digital D2 (Software RX)GPIO 16 (RX2)3.3V logic output
White (RX)Digital D3 (Software TX)GPIO 17 (TX2)3.3V logic input
Blue (TOUCH)Digital D4GPIO 4Optional wake-up interrupt

Example (Arduino Adafruit_Fingerprint Library)

cpp
#include <Adafruit_Fingerprint.h>

// Use SoftwareSerial on pins 2 (RX) and 3 (TX)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("\nAS608 Fingerprint Sensor Test");
  finger.begin(57600);

  if (finger.verifyPassword()) {
    Serial.println("Found AS608 fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
  }

  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" enrolled templates");
}

void loop() {
  uint8_t p = finger.getImage();
  if (p == FINGERPRINT_OK) {
    Serial.println("Image taken");
    p = finger.image2Tz();
    if (p == FINGERPRINT_OK) {
      p = finger.fingerFastSearch();
      if (p == FINGERPRINT_OK) {
        Serial.print("MATCH FOUND! ID #"); Serial.print(finger.fingerID);
        Serial.print(" with confidence of "); Serial.println(finger.confidence);
      } else {
        Serial.println("No match found");
      }
    }
  }
  delay(50);
}

Common mistakes

  • Using incorrect default baud rate: Most AS608 modules ship configured for 57,600 baud, not 9,600 baud. SoftwareSerial on 8-bit Arduinos must be initialized to 57,600 baud to establish connection.
  • Powering VCC with under-rated 3.3V supply: The optical LED and CMOS sensor peak at 120 mA. Powering VCC from 3.3V pins can cause brownouts during image acquisition.

Notes

  • AS608 vs Capacitive Fingerprint Sensors (R503): Optical sensors (AS608) use blue light prisms; capacitive sensors (R503) use flat ring metal contacts, offering thinner form factors and higher water resistance.

Assets & downloads