Try the New FPC1020 Fingerprint Touch Sensor Kit!

FPC1020 Fingerprint Touch Sensor Kit

Compatible with old version

GROVE Compatible Interface

Arduino Demo Code 

We will have National Day and Mid-Autumn Festival Holiday from Oct 1st to Oct 8th. Order will be accepted 24/7, but will be processed and shipped on Oct 9th.

Capacitive Fingerprint Sensor - FPC1020

Capacitive Fingerprint Sensor - FPC1020

Shipping Estimate

Enter your destination to get a shipping estimate.

Description

This is a fingerprint sensor kit base on FPC1020 touch fingerprint sensor, it is composed with a fingerprint sensor and a control board.

The fingerprint sensor’s mode is FPC1020 from Fingerprint Cards, which has been widely used on smartphones such as Huawei Mate 7. It is based on capacitive sensor technology. It delivers best in class image quality with 256 gray scale values in every single programable pixel. No matter dry, wet or dirty finger, it can read with its 3D pixel sensing technology. The control board is based on STM32F105, it has a pre-burned program inside for processing the UART commands. Through this board, we can directly drive the fingerprint sensor via serial port. 

This fingerprint sensor kit is easy to use. There is an Arduino code provided that allows us to quickly get started. Also, a Grove cable is comes, so that we can quickly add it to the Grove system.

Features

  • GROVE Compatible Interface
  • FPC1020 CMOS fingerprint sensor
  • Best in class imaging quality with 256 true grey scale values in every pixel
  • Robust protective coating capable of more than 10 million finger placements
  • Full ESD protection to more than ±30kV
  • 200 byte fingerprint template
  • 1:N Identification (One-to-Many)
  • 1:1 Verification (One-to-One)
  • Auto-learning function (Automatically updating the fingerprint features)
  • Security level setting
  • TTL serial interface

 

Specifications

  • Resolutions: 508 DPI
  • Fingerprint store capacity: 100 fingerprints
  • Verification time: < 0.45 sec
  • Identification time: < 0.45 sec
  • False accept rate (FAR): < 0.0001%
  • False reject rate (FRR): < 0.01%
  • Interface: Serial UART, 19200 bps (default)
  • Baud rate: 9600, 19200, 38400, 57600, 115200 bps
  • Working current: < 50mA
  • Standby current: < 10μA
  • Supply voltage: DC  5V
  • Digital I/O voltage: 2.8V ~ 5V DC
  • Operating temperature: - 20  ℃ ~ 60 ℃
  • Operating humidity: 20% ~ 80%

 

Package Includes

  • 1 x Fingerprint Sensor
  • 1 x Grove Cable
  • 1 x Breakout Cable

 

Pin  Configuration


Pin Definitions

NAMEI/ODESCRIPTION
IRQ/WAKEUPOUTPUTThis pin will output a 100us high pulse when a finger is detected
UART_TXOUTPUTTransmitter of TTL serial
UART_RXINPUTReceiver of TTL serial
GNDPOWERPower GND
VCCPOWER5V power input
RESETINPUTIf you want a reset, send a low pulse to this pin
USB_DNINPUT / OUPUTNot available for the current version
USB_DPINPUT / OUTPUTNot available for the current version

Arduino Demo

Hooking up

There are only four pins that need to be hooked up in order to start using this sensor in a project. One for VCC, one for GND, and two data lines.

  • VCC           →   5V
  • UART_RX  →   Digital 2
  • UART_TX  →   Digital 3
  • GND          →  GND

Installation

  • Download FPC1020.zip
  • Unzip, and add to Arduino/hardware/libraries/

Sketch Code

//
// Demo code for FPC1020 Fingerprint Sensor
// Created by Deray on 2015-10-07.
//

#include <SoftwareSerial.h>
#include <FPC1020.h>

extern unsigned char l_ucFPID;
extern unsigned char rBuf[192]; //Receive return data

#define sw_serial_rx_pin 2 // Connect this pin to TX on the FPC1020
#define sw_serial_tx_pin 3 // Connect this pin to RX on the FPC1020

SoftwareSerial swSerial(sw_serial_rx_pin, sw_serial_tx_pin); // Fingerprint serial (RX, TX)
FPC1020 Finger(&swSerial);

void setup(){
 Serial.begin(19200);
 pinMode(4, INPUT); // IRQ
 
 Serial.println("Fingerprint Test ! ");
}

void loop(){
 unsigned int User_ID = 0;
 unsigned char incomingNub;
 unsigned int matchUserID = 0;
 unsigned char rtf = 0;
 
 while(1){
 Serial.println("============== Menu ================");
 Serial.println("Add a New User ----------------- 1");
 Serial.println("Fingerprint Matching --------------- 2");
 Serial.println("Get User Number and Print All User ID ------ 3 ");
 Serial.println("Delete Assigned User --------- 4");
 Serial.println("Delete All User ---------- 5");
 Serial.println("============== End =================");
 
 unsigned char MODE = 0;
 
 while(Serial.available()<=0);
 
 MODE = Serial.read()-0x30;
 
 switch(MODE){
 case 0: // Null
 break;
 
 case 1: // Fingerprint Input and Add a New User
 MODE = 0;
 User_ID = 0;
 
 Serial.println("Please input the new user ID (0 ~ 99).");
 while(Serial.available()<=0);
 delay(100);
 incomingNub = Serial.available();
 for(char i=incomingNub; i>=1; i--){
 User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1));
 }
 
 Serial.println("Add Fingerprint, please put your finger on the Fingerprint Sensor.");
 rtf = Finger.Enroll(User_ID);
 
 if(rtf == TRUE) { 
 Serial.print("Success, your User ID is: "); 
 Serial.println( User_ID , DEC);
 }
 else if (rtf == FALSE) {
 Serial.println("Failed, please try again.");
 }
 else if( rtf == ACK_USER_OCCUPIED){
 Serial.println("Failed, this User ID alread exsits.");
 }
 else if( rtf == ACK_USER_EXIST){
 Serial.println("Failed, this fingerprint alread exsits.");
 }
 delay(2000);
 break;
 
 case 2: // Fingerprint Matching
 MODE = 0 ; 
 Serial.println("Mctch Fingerprint, please put your finger on the Sensor.");
 
 if( Finger.Search()){
 Serial.print("Success, your User ID is: "); 
 Serial.println( l_ucFPID, DEC);
 }
 
 else {
 Serial.println("Failed, please try again.");
 } 
 delay(1000);
 break;
 
 case 3: // Print all user ID
 MODE = 0;
 if(Finger.PrintUserID()){
 Serial.print("Number of Fingerprint User is:"); 
 unsigned char UserNumb;
 UserNumb = (l_ucFPID-2)/3;
 
 Serial.println(UserNumb,DEC);
 Serial.println("Print all the User ID:"); 
 
 for(char i = 0; i < UserNumb; i++){
 Serial.println(rBuf[12+i*3],DEC);
 }
 }
 
 else {
 Serial.println("Print User ID Fail!");
 }
 delay(1000);
 break;
 
 case 4: // Delete Assigned User ID
 MODE = 0;
 User_ID = 0;
 Serial.println("Please input the user ID(0 ~ 99) you want to delecte.");
 while(Serial.available()<=0);
 delay(100);
 incomingNub = Serial.available();
 for(char i=incomingNub; i>=1; i--){
 User_ID = User_ID + (Serial.read()-0x30)*pow(10,(i-1));
 }
 
 if(Finger.Delete(User_ID)) {
 Serial.println("Delete Fingerprint User Success!"); 
 } 
 else{
 Serial.println("Delete Fingerprint User Fail!");
 }
 delay(1000);
 break;
 
 case 5: // Delete All User ID
 
 MODE = 0;
 unsigned char DeleteFlag = 0;
 
 Serial.println("Delete All Users, Y/N ?");
 
 for(unsigned char i=200; i>0; i--)//wait response info
 {
 delay(20);
 if(Serial.available()>0)
 {
 DeleteFlag = Serial.read();
 break;
 }
 }
 
 if(DeleteFlag == 'Y'||'y'){
 if(Finger.Clear()){
 Serial.println("Delete All Fingerprint User Success!");
 }
 else{
 Serial.println("Delete All Fingerprint User Fail!");
 }
 }
 delay(500);
 break;
 }
 }
}

Monitor report



Designed by Deegou.

Reviews about Capacitive Fingerprint Sensor - FPC1020
Average rating: 0 reviews
Total reviews: 0
Write your own review on this product.
Write a review
Sort by:

Write a review

Note: HTML is not translated!
   
Add the image to the presentation (max 3):
I would recommend this product to a friend?

  • Views: 10316
  • Product Code: MOD007
  • Availability: Out Of Stock
  • $39.95
  • 2 or more $34.95

Tags: grove, sensor, fingerprint, capacitive fingerprint

Message Us