How does it work?
Fingerprint 3 Click is an adapter Click board™ that interfaces a compatible fingerprint sensor with the host MCU. This Click board™ represents a small-size PCB that can be connected to the mikroBUS™ socket like any other Click board™, with a 1×6 1.0mm pitch vertical type wire to board connector placed on itself. Each of the header pins corresponds to a pin on the mikroBUS™ socket being used, such as UART lines (TX, RX), 3V3 power supply, finger detection signal, and Ring LED enable for GROW R503 module and ground. This Click board™ allows easy pin access and manipulation while always retaining a perfect connection quality.
Fingerprint processing includes two parts: fingerprint recording and fingerprint matching. The first step is initializing all the necessary drivers, peripherals, and pins. At power-on, it takes about 200ms for initialization; during this period, the module can’t accept any commands. This is followed by checking the sensor and verifying the module password, after which a new fingerprint pattern begins if everything is done correctly. The user needs to enter the finger two times. The system will process the two-time finger images, generate a template of the finger based on processing results, and store the template. When matching, a user enters the finger through an optical sensor, and the system will generate a template of the finger and compare it with templates of the finger library. The system will return the matching result, success, or failure in both circumstances. This can also be seen in an example code that contains easy-to-use functions that may be used as a reference for further development.
The Fingerprint 3 Click communicates with MCU using the UART interface with the default baud rate of 57600bps for the data transfer, while the GPIO pins on this Click board™ are used for finger detection and ring indicator LED enable. Ring indicator LED light can be enabled by toggling the VD pin on the mikroBUS™ socket, which provides voltage to the VD pin on the fingerprint connector via a classic electronic switch, the MAX40200.
The signal routed to the INT pin on the mikroBUS™ socket represents an interrupt and indicates the detection of a finger on the module. When the indicator glows purple, the module is in its Stand-By mode and waits for a finger to be pressed. In addition to purple, the module can also glow blue or red, indicating the fingerprint match’s correctness (blue indicates that a pair is found, while red indicates that a pair was not found).
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. Also, it comes equipped with a library containing functions and an example code that can be used, as a reference, for further development.
Specifications
Type
Adapter,Fingerprint
Applications
Can be embedded into a variety of end products such as access control, attendance, safety deposit box which allows the user to integrate biometric security into its design in the easiest and fastest way.
On-board modules
Fingerprint 3 Click is adapter with socket for the capacitive fingerprint sensor module scanner with a two-color ring indicator.
Key Features
Integrated image collecting, ring indicator, dust resistant, high recognition rate and the flexibility to adapt on different conditions of human finger, and more.
Interface
UART
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on Fingerprint 3 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
Software Support
We provide a library for the Fingerprint 3 Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library covers all the necessary functions to control Fingerprint 3 Click board. A library performs the communication with the device via UART interface.
Key functions:
void fingerprint3_parser_rsp ( fingerprint3_rsp_t *response )
– Response parser function.uint8_t fingerprint3_byte_ready ( void )
– Check for new byte received.void fingerprint3_uart_write ( uint8_t *tx_data, uint8_t n_bytes )
– Uart write function.
Examples description
The application is composed of three sections :
- System Initialization – Initializes UART used for communication and another UART bus used for data logging.
- Application Initialization – Initializes UART driver, check the sensor, verify module password and then start registering a new fingerprint pattern.
- Application Task – (code snippet) – This is an example that demonstrates the use of the Fingerprint 3 Click board™. Fingerprint 3 Click stores the new fingerprint pattern which shortly after compares with new fingerprint scans for a match, infinitely. Results are being sent to the Usart Terminal where you can track their changes.
void application_task ( ) { if ( fingerprint3_finger_indicator( ) == FINGERPRINT3_DETECT_FINGER ) { fingerprint3_buf_clear( ); mikrobus_logWrite( "---------------------------------", _LOG_LINE ); mikrobus_logWrite( " >>> Verification in progress... ", _LOG_LINE ); Delay_ms( 2000 ); fingerprint3_uart_write( &gen_img[ 0 ], 12 ); Delay_ms( 500 ); fingerprint3_parser_rsp( &rsp ); Delay_ms( 100 ); if ( rsp.confirm_code == FINGERPRINT3_OK ) { fingerprint3_uart_write( &img_2_tz_2[ 0 ], 13 ); Delay_ms( 500 ); fingerprint3_buf_clear( ); } fingerprint3_uart_write( ®_model[ 0 ], 12 ); Delay_ms( 100 ); fingerprint3_buf_clear( ); fingerprint3_uart_write( &fingerprint_match[ 0 ], 12 ); Delay_ms( 500 ); fingerprint3_parser_rsp( &rsp ); fingerprint3_display_match_score( ); Delay_ms( 3000 ); mikrobus_logWrite( " >>> Comparing Fingerprints <<< ", _LOG_LINE ); mikrobus_logWrite( "- - - - - - - - - - - - - - - - -", _LOG_LINE ); mikrobus_logWrite( " Place your finger on the sensor ", _LOG_LINE ); } else { fingerprint3_uart_write( &aura_led_config_purple[ 0 ], 16 ); Delay_ms( 2000 ); fingerprint3_buf_clear( ); } }
void fingerprint3_display_rsp ( void )
– Display response function.void fingerprint3_display_match_score ( void )
– Display match score function.void log_write ( uint8_t *str_buf, uint8_t str_type )
– Wrapper mikrobus_logWrite for driver function.void byte_to_str ( uint8_t byte_buf, uint8_t *log_text )
– Wrapper ByteToStr for driver function.void byte_to_hex ( uint8_t byte_buf, uint8_t *log_text )
– Wrapper ByteToHex for driver function.void long_word_to_hex ( uint32_t long_word_buf, uint8_t *log_text )
– Wrapper LongWordToHex for driver function.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- UART
- Conversions
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK – MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.