MikroE Fingerprint 3 Click Sensor

Hello everyone: I’m working on integrating a MikroE fingerprint sensor using the mikroBus on the imp006 breakout board (Fingerprint 3 click bundle). Has anybody worked with this sensor before and would be able to share sample code or provide guidance on how to best make it work with the imp006. Thanks in advance for your help.

I’m guessing you would start here:

You specify the port based on this table (you would be using Imp006):

And your pins would be TX on the Imp is RX on the reader.
RX on the Imp is TX on the reader. Levels are already 3V so you’re OK there.

Thanks, mlseim, for the info.
Do you know if there are any mikroSDK drivers for this board that can be used with the imp006? On the MikroE website, I can see example code & drivers for MikroElectronika’s developer boards (written in C) but I’m not sure how to use this on the imp006. Do you have to create a driver from scratch to work with the imp006 or is there a driver library for Mikro Bus compatible boards specifically written for Electric Imp dev boards? Thanks.

I see what you mean now. I never looked at how complicated it is to handle the back and forth data.

Digging deeper, it looks rather complicated.

It’s Mikroe-bus Click protocol. I see nothing written for Imp. They do have a Mikroe Click ESP32 WiFi … not sure of the IDE and libraries.

Sorry I don’t know enough about it

In the first instance, check out the imp006 Breakout Board Reference. This will tell you how to translate Mikro pins to imp pins and buses.

You might also want to take a look at How To Port Arduino Code To The imp as a starting point for porting the Mikro code to Squirrel. The guide’s a bit old now, but it should help you get started.

This is, I think, the first time I’ve seen this sensor board mentioned here, so I don’t know of any open source driver out there. But maybe another forum member has one?

I wonder if you can tell us how your system is expected to work.

Are you going to have the imp agent sending and receiving data from your own remote website with PHP/SQL?

Is this for one person or a location with many users?

It seems like the intention of this from Mikroe point of view is that these are connected via cable to a 3 click system that runs to a PC or some kind of MCU.

I can’t tell if the fingerprint profile is actually stored on the sensor board?

Hi @mlseim.
The imp006 breakout board is designed to work with Twilio’s SuperSim IoT network and is tied to the ImpCentral, just like most ElectricImp platforms. I’m trying to set it up to where the the fingerprint reader can be used to control a DO channel on the board (e.g. to control a lock).
The MikroE finterprint sensor connects directly to the imp006 board via the MikroBUS. It communicates with the board via UART but it looks like all of the drivers for the sensor, and the logic to acquire & store finger print images and compare them a library of registered finger prints amongst other features, run on the imp006 (I think, but I’m not 100% sure since this is the first time I’m using a MikroBUS device with the Imp).

Since I can’t find any Arduino libraries or examples for the click 3 fingerprint board, I’m going to say the reason is the amount of memory required to store and process the fingerprint templates (profiles). The imp006 will be in the same boat … not enough memory to store or process the data. An Arduino can’t do it either.

I think you’ll have to find a different fingerprint scanner:
https://create.arduino.cc/projecthub/projects/tags/fingerprint

Probably not as high quality as the Mikroe reader, but since they work on the Arduino or ESP32, they can work on any imp. I assume they store the fingerprints differently, or not as high of a resolution. Are there different types of fingerprint readers?

Good Morning @mlseim
I was doing some more research last night and found out that MikroE is using the R503 fingerprint sensor with their 3 click board: Rugged Panel Mount Fingerprint Sensor with Bi-Color LED Ring [R503] : ID 4651 : $39.95 : Adafruit Industries, Unique & fun DIY electronics and kits
Adafruit has also created an Adruino library for this sensor: GitHub - adafruit/Adafruit-Fingerprint-Sensor-Library: Arduino library for interfacing to the fingerprint sensor in the Adafruit shop
I’m going to try converting this library into squirrel to run on the imp006. But since I’m new to the Imp (and squirrel), if you have any advice on how to accomplish this (other than the information about porting Arduino code to the imp provided on the Imp website), please let me know.
Is there an easier way to load drivers like this into squirrel instead of having to manually convert/rewrite the library?
Thanks again for all your help with this.

That’s pretty cool that it stores the templates in its own built-in flash.

In my opinion, this is going to be hard to convert to imp, but I might not be the best person to ask, since I’m not an expert Squirrel programmer. There are others here who probably know 1000% more.

So now I’m going to ask the obvious question … why not buy one of these on Adafruit, along with an Arduino and do it all on the Arduino? They have everything all there for you to make it work.

If it’s because of the imp006/Twilio SMS messaging, then I guess that might be the reason, but otherwise if it’s WiFi, you can get an Arduino with WiFi.

The other reason for the imp006 might be that you wish to open a door from anywhere in the world. That’s where the imp/agent comes in. The best thing about the imp is the online IDE and accessing securely through the agent from anywhere, using a browser or remote website (PHP/SQL). Not easy to do with Arduino or ESP32.

Just curious on why the imp006 VS any other micro controller.

The reason to why we’re using the Imp is that it comes with many other capabilities that an Arduino doesn’t have:

  • The cellular connection & Twilio messaging like you mentioned
  • The integrated GNSS
  • The integrated accelerometer & the ability to set it to deep-sleep and wake it up via the accelerometers
  • The ability to access it and make update remotely
  • The built-in battery management and charging capabilities
  • A good number of very useful IOs
  • Etc.

The prototype we’re working on is going to utilize most of these capabilities. The only missing items was the ability to connect a biometric sensor. I wish Imp or MikroE had already built the drivers for this sensor that I could utilize within the main Squirrel script instead of having to build the drivers from scratch.

You’re probably even more knowledgeable in squirrel than I am, so converting a Arduino library/driver into a driver that runs on the Imp is definitely making things challenging for me. If you happen to know of somebody who’s done sth like this before and who would be able to offer some tips or assistance, please let me know.