Fingerprint Scanner for Your Project – 2

This type of fingerprint scanner is more popular. Similar to the GT-521FX2, it is based on a Cortex-M processor, AS608 from SynoChip. AS608 is also equipped with CMOS image sensor interface just like Holtek HT32F22366, but its clock speed is much higher (144MHz vs 96MHz) and has twice Flash space (512KB vs 256KB).

A company called ZhianTec (couldn’t find homepage) seems to be responsible for the image processing algorithm and so the firmware. This type of scanners are known as ZFM-20 (ZhianTec part number) or DY50 (probably from copycats). I’ve got mine from an ebay seller for around $8.

Price of this module is remarkable considering its quality: fine PCB boards, nice glass prism, and not so bad enclosure. It is even more remarkable when compared to GT-521FX2 discussed previously. Price-wise it is only fraction but quality is superior including MCU power.

The gold round rectangular pattern is the capacitive touch sensor. It looks like the sensor works independently from the main MCU. There might be a variation that does not come with the touch sensor. You can tell from the pinout of the connector. In the older ones, Pin 5 and Pin 6 may not have connection (NC).

  • (Pin 1) GND
  • (Pin 2) UART_RX
  • (Pin 3) UART_TX
  • (Pin 4) 3V3
  • (Pin 5) Touch_Out
  • (Pin 6) Touch_Vcc

Touch sensor is located at the bottom of the prism. Two green LEDs illuminate the finger on the prism and the camera captures the image.

At the back of the device, you have a 6pin connector, pinout of which is shown above. There is a PCB pattern that looks like a USB interface. You may need custom USB driver. Or it just could be a USB-CDC device.

Best source for the information for this type of scanners is probably Adafruit. Alternatively you can google it with the key word ZFM-20 then you can find the manual without much difficulty.

(Protocol) Its protocol is much more sophisticated than GT-521FX2, which allows you greater flexibility in control the device. It also gives you detailed status output only if you don’t mind a bit lengthy programming.

(Enrolment) The device requires two consecutive image captures to generate a template. Surprisingly this process is very reliable and fast, exact opposite to the GT-521FX2. It might be partly because it has simpler image processing algorithm and partly because it uses internal FLASH to store the data. Also it has SRAM twice the size of GT-521FX2.

(Authentication) Authentication is also very fast and reliable. I didn’t do much test to have confident numbers but it has high enough specificity/ sensitivity so that it can be used for any personal project that requires medium security level.

1 to N match could be a bit different but in 1 to 1 match, this device brings up the template from the FLASH storage to SRAM buffer and does the match in the SRAM. So it is remarkably fast.

This fingerprint sensor is beyond my expectation both in and out especially after the deep frustration with the expensive GT-521FX2. Only downside is that the backlight LED is turned on always. You may want to have a load switch to control the power of the device directly. You can find my example code here.

Fingerprint Scanner for Your Project – 1

Although fingerprint scanners are widely used in smart phones, laptop computers, and security systems, it is not easy to find a good one for your personal project. Sometimes you come up with a product that looks promising but fails miserably.

Two types of fingerprint scanners are readily available. And both share similarities in terms of hardware but perform very differently.

ADH-Tech GT-521F32 / GT-521F52 is less popular one of the two but more recent. It is based on a Cortex-M3 MCU (Holtek HT32F22366). This MCU is equipped with CMOS image sensor interface thus can capture still image up to certain size.

The scanner module has a UART interface to communicate with host processors. It also exposes pads for USB connection at the bottom, which I didn’t try for apparent reasons.

The front glass is frosted, reasons for which is unclear. It may works as an optical blur filter, thus reduce the computational burden at the expense of accuracy. Or it may have something to do with image acquisition without bulky prism structure that can be found in the second type, which we will discuss later.

(Protocol) Protocol for this device is rather simple, which has pros and cons. It is easy to use at one hand but it does not provide any useful information about inner workings.

(Registration) To register your fingerprint image, you need to perform three consecutive scans and pass all three stages. At the first scan, it usually has no issues. However at the second scan, it fails about half of the time. At the third scan it fails almost 90% of the time.

Reasons again are not clear as it does not provide any coherent error messages. The algorithm certainly tries to creates a template by averaging three images but may fail to do it. Or it created a template but may fail to save it to the external flash drive. Whatever the reason you need a lot of patience to register just one finger.

One thing to notice about this registration business is that some of the Arduino libraries written for this device does not check this registration error. So it ends up with failing to create a template image without any indication to the users. So you may not aware but you have no template generated.

(Authentication) Once you were able to register your fingerprint, you can use the template to authentication. Here again the device shows issues. Roughly 20% of the time it fails to recognise the correct finger. And with similar rate, it falsely authenticate wrong fingers as legit one.

Low sensitivity is annoying but at least it is not harmful. But the low specificity makes this device is useless for any security application. Furthermore, it is much slower than the second type. It looks like it is equipped with more sophisticated algorithm, which fails to do the job.

Good part of this device is that it detects the presence of the fingers quite reliably. So you can use it as a touch sensor at least. And it has a nice white LED backlight too, which you can turn on or off using commands. However if you are looking for a functioning fingerprint sensor, then forget about this device.