MikroElektronika Learn

Click Boards

Fingerprint click – the complete biometric solution

7 Dec , 2016  

Biometric security is definitely a thing of the future, from fingers to eye retinas, even earlobes can be used to uniquely identify a human being. That is why we have decided to offer our customers a platform to develop biometric systems as efficiently as possible – get familiar with the Fingerprint click.

The click carries the GTS-511E2 fingerprint module. The module has  a CMOS image sensor covered with a lens. The CMOS sensor is built smart enough to recognize whether the fingerprint is real or a 2D copy. Along with the image sensor, the click also carries the STM32F415 MCU, which is the main operating unit of this click board. The STM32F415 contains firmware developed by our engineers. The firmware is designed so that the click can be used either as a standalone USB HID with a Windows PC application or as a SPI slave communicating with a host MCU. Since the first batch of Fingerprint clicks has been released with a previous firmware, designed only for standalone use, if you have bought the click before this article, you will need to perform a firmware update.

How to update the firmware

The current Fingerprint click comes equipped with our USB HID bootloader. If your PC recognizes the bootloader, the only thing you need to do is download the firmware from Libstock and upload it onto the click using the bootloader. The instructions on how to use our bootloader can be found here.

Now that you have the new firmware uploaded, you can use the click either as a standalone device with our Fingerprint click PC application, or with a host MCU.

Using the click with the PC application

The application can be downloaded from Libstock. Here’s how to use it:

Start the application, and connect your PC with the click with a USB mini connector. For the first 5 or so seconds, the PC will recognize the click as “Mikroelektronika USB HID bootloader“. This is because our bootloader has been designed to wait 5 seconds for the PC to connect, if 5 seconds pass, the MCU will jump out of bootloader mode and proceed with the user code. Once the click is out of bootloader mode your PC should detect the click as  “Mikroelektronika FINGERPRINT“, and you should see the status “Ready” on the bottom left of the application.

Fingerprint application

Fingerprint application

Now you can fully operate your Fingerprint click! If you click on the fingerprint icon, the click will capture an image and send it to the PC. The image will be displayed on the main window. The status label should read “Fingerprint transferred”

Fingerprint scanning

Fingerprint scanning

If you want to save this image, just hit the save icon on the right.

Saving the image

Saving the image

In the settings window, you can set the different CMOS image sensor settings such as the exposure time or global gain. Once you hit SAVE, these settings will be sent from the PC to the click and stored in the clicks EEPROM.

Fingerprint click settings

Fingerprint click settings

Using the click with a host MCU

The click can also communicate with an external host over SPI. We have made a simple example that shows how to do it. Let’s look at the example in which we will interface a STM32F107 host MCU with the Fingerprint click.

We start of by initializing SPI communication and the TFT display, after which we will ping the click until we get a FP_READY byte as a response.


Every command sent has it’s appropriate response, therefore, all the commands will ping the click until they get the right response. If something goes wrong, the MCU will continue to ping and be stuck forever in this loop. This is the case for all the functions used here. Let’s take a look at the fingerprint_is_ready function for a clear example:


You can see here that we first send a FP_TEST command, once the click receives this command, the internal buffer of the click will be set to FP_READY as a response. Once we issue an SPI_Read command, we should receive this response. The same goes for all other functions: we send a command, and then the internal buffer of the click will be set to the appropriate response.


Let’s look at the whole code now. After we are sure that the click is ready, we send a command for the click to capture an image, and then for the click to send us the image bytes. For every SPI_Read we issue, we will get one byte of the image. Each byte is then sent to the TFT display.


And that’s the whole deal. Getting a fingerprint scan has never been easier. Use the images whoever you seem fit and create your unique biometric security system! All the software mentioned here can be found on Libstock or GitHub. Good luck!


wikipedia.org “Biometricswikipedia 2016

wikipedia.org “CMOS” wikipedia 2016

wikipedia.org “USB Human Interface Device” wikipedia 2016

ST Microelectronics



Products mentioned

, , , , , , , ,

Firmware developer at MikroElektronika and STEM enthusiast. From DNA to DMA, I want to know it all!

8 Responses

  1. Rohit Rajapure says:

    Hello All,

    I recently bought 10 units of GTS-511E2 fingerprint sensor. Online I could only find the datasheet where enough information is not provided. Can someone help me in getting started with this fingerprint module.

    Thanks and Regards
    Rohit Rajapure

    • Viktor Milovanovic says:

      Hello Rohit,

      Did you buy onlt the GTS-511E2 module or the Fingerprint click? If you have bought just the module, you will need to connect it to a microcontroller and write the appropriate firmware for it. Agreed, the documentation for the module is a little bit scarce, but contains enough information to get the module going.

      Kind regards,

      Viktor Milovanovic

  2. Juan Angulo says:

    Dear Mikroelektronika,

    A month ago I bought one fingerprint click. I have been trying to make it work using the SPI port but I haven’t been able to make so. I am using a mikromedia for STM32 to try to display the image from the fingerprint. I have used your code but the two devices never communicate. Additionally, I used a PIC16F877A to initialise the fingerprint but it didn’t work neither. I would like to get a little more information about your device. Perhaps, knowing more about the program on the STM32F415 would be quite useful. I will be waiting for your response.

    Best regards,

    Juan Angulo

    • Viktor Milovanovic says:

      Hello Juan,

      Please make sure that you have the new firmware uploaded on the click. Are you getting any response from SPI? If you have any further issues feel free to contact our technical support team at support@mikroe.com, they will be willing to help you with this.

      Kind regards,

      Viktor Milovanovic

      • Juan Angulo says:

        Hi Viktor,

        You were right. As soon as I uploaded the new firmware the fingerprint started to work. Now I can continue working on my project. Thank you for your help. I really appreciate it.

        Best regards,

        Juan Angulo

  3. Bojan Rosko says:

    Hello MikroE Team,
    I have bought Fingerprint click. It have worked properly for a while, but when I uploaded new firmware (“FINGERPRINT click V100.hex”, using mikroBootloader USB HID), it stopped working. I am using Fingerprint app (Build 1.0.0). Current behavior is as follows: when scan button is clicked in Fingerprint app, the Fingerprint click shines blue, and stops responding and it shines as long as I don’t restart it or turn the board off. Can you help me with this?

    • Viktor Milovanovic says:

      Hello Bojan,

      Are you sure that you have waited approximately 10 seconds for the click to go out of bootloader mode and finish all the setups?

      Best regards,

      Viktor Milovanovic

  4. Oliver Gough says:

    Hi Viktor,

    I have just got a fingerprint click board and now I would like to develop my own PC application using the USB HID functionality of the board. However the sample application does not come with source code or documentation for the HID descriptors/reports or the command/data transfer methods. Is there more documentation available for this?

Leave a Reply

Your email address will not be published. Required fields are marked *