Difference between revisions of "Pi-Finger"

From SB-Components Wiki

 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
== PiFinger ==
+
<div class="row">
PiFinger, the first-ever Fingerprint HAT for Raspberry Pi Comprise of onboard Nuvoton MCU with an on-chip crypto-accelerator, Cortex-M23 TrustZone, and XOM facilities. A user can use the communication protocol to the PiFinger with commands over the UART protocol with the Baud rate 115200 bps or USB 2.0 full speed.
+
  <div class="large-8 column">
 +
== Pi-Finger ==
 +
PiFinger, the first-ever Fingerprint HAT for Raspberry Pi Comprise of onboard Nuvoton MCU with an on-chip crypto-accelerator, Cortex-M23 TrustZone, and XOM facilities. A user can use the communication protocol to the PiFinger with commands over the UART protocol with the default Baud rate of 9600 bps or USB 2.0 full speed.  
  
Communication Protocol : https://github.com/sbcshop/PiFinger/wiki/Communication-Protocol
+
=== Features ===
 +
* Capacitive Contact Technology
 +
* On Chip-Crypto Accelerator
 +
* High-Speed UART Interface
 +
* Register up to 24 Fingerprints
 +
* Nuvoton MCU 
 +
*Cortex-M23 Trust zone
  
<img src="https://cdn.shopify.com/s/files/1/1217/2104/products/FingerprintforRaspberryPi_700x.png" width="400" height="400" align="left" />
+
=== Specifications ===
 +
* Processor - Nuvoton MCU Cortex M23
 +
* Communication - UART, USB 2.0 and GPIO
 +
* Display - 0.91” OLED (SSD1306)
 +
* Buzzer - Yes
 +
* Default Baud Rate - 9600 bps
 +
* Matching Mode - 1:1,1:N
  
=== PINOUT ===
+
</div>
PiFinger Peripheral Raspberry Pi Pin (BCM)
+
  <div class="large-4 column">
Fingerprint TX GPIO15 (RXD)
+
[[File:PiFinger.png|thumb|left|alt=PiFInger| Buy it From : ''[https://shop.sb-components.co.uk/products/pifinger-fingerprint-hat-for-raspberry-pi Click Here]'']]
Fingerprint RX GPIO14 (TXD)
+
  </div>
OLED SDA GPIO2 (SDA)
+
</div>
OLED SCL GPIO3 (SCL)
 
BUZZER GPIO13
 
Note: First registered fingerprint will act as administrator Fingerprint, You have to confirm admin fingerprint before running any command once registered fingerprint. Else device will stay in compare mode.
 
  
Enable I2C and Serial Interface for Raspberry Pi (Not required in case of windows)
+
== Pinout ==
Open a terminal and run the following commands to enable I2C and Serial:
+
<table class="wikitable">
 +
<tr> <th> PiFinger  </th> <th>Raspberry Pi</th>  </tr>
 +
<tr><td> VCC  </td> <td> 5V  </td> </tr>
 +
<tr><td> GND  </td> <td>  GND </td> </tr>
 +
<tr><td> Fingerprint TX  </td> <td> GPIO15 (RXD)  </td> </tr>
 +
<tr><td> Fingerprint RX  </td> <td>  GPIO14 (TXD) </td> </tr>
 +
<tr><td> OLED SDA  </td> <td> GPIO2 (SDA)  </td> </tr>
 +
<tr><td> OLED SCL  </td> <td>  GPIO3 (SCL) </td> </tr>
 +
<tr><td> BUZZER  </td> <td> GPIO13  </td> </tr>
  
sudo raspi-config
+
</table>
Choose Interfacing Options -> I2C ->yes
+
 
 +
== Installation ==
 +
==== Python ====
 +
===== Required Hardware =====
 +
* Raspberry Pi x 1
 +
* Pi-Finger x 1
  
 +
===== Enable I2C and Serial Interface =====
 +
* Open a terminal and run the following commands to enable I2C:
 +
<source lang="shell"> sudo raspi-config </source>
  
 +
Choose Interfacing Options -> I2C ->yes
  
sudo raspi-config
+
* Again run below command to enable Serial
 +
<source lang="shell"> sudo raspi-config </source>
 
Choose Interfacing Options -> Serial -> No -> Yes
 
Choose Interfacing Options -> Serial -> No -> Yes
  
 +
* You can also enable Serial and I2C using Graphical method, Open Menu by clicking on <b> Raspberry Pi icon >> Preferences >> Raspberry Pi Configurations >> Interfaces </b>, and select below option.
  
 +
[[File:Serial_i2c_en_graphical.PNG]]
  
Testing
+
* Now reboot your pi by running the below command :
Connect PiFinger on top of 40 pin stackable GPIO header of Raspberry Pi.
+
<source lang="shell"> sudo reboot </source>
Now Clone/Download PiFinger Repository by running below command or directly download from github
+
<br>
git clone https://github.com/sbcshop/PiFinger.git
+
===== <b> Board Test </b> =====
 +
* Connect PiFinger on top of 40 pins stackable GPIO header of Raspberry Pi.
  
Open cloned/downloaded folder and choose your environment folder (i.e : Raspberry Pi or Windows)
+
* Now Clone/Download PiFinger Repository by running below command or directly download from Github.  
For Raspberry Pi
 
Run PiFinger GUI by running below command:
 
python3 PiFinger_GUI.py or using any python3 supported ide.
 
  
Select COM port and Baud Rate ( default is 9600) from above GUI ("/dev/ttyS0" in case of default connection), and click on connect button to start communication with fingerprint sensor.
+
<source lang="shell"> git clone https://github.com/sbcshop/PiFinger.git </source>
  
 +
* Open cloned/downloaded folder and choose your environment type (i.e: Raspberry Pi or Windows)
  
For Windows
+
''' For Raspberry Pi '''
Run PiFinger GUI by running "PiFinger_GUI.py" file with any python3 supported ide.
 
  
Select COM port and Baud Rate ( default is 9600) from above GUI ("COM7" (check comport from device manager) in case of default connection), and click on connect button to start communication with fingerprint sensor.
+
* Run PiFinger GUI by running the below command:
 +
<source lang="shell" inline>python3 PiFinger_GUI.py </source>  or using any python3 supported ide.
  
 +
Select COM port and Baud Rate ( default is 9600) from the above GUI ("/dev/ttyS0" in case of default connection), and click on connect button to start communication with the fingerprint sensor.
  
 +
<img src="https://raw.githubusercontent.com/sbcshop/PiFinger/main/Images/pifinger_connect_pi.gif" height="600" width="600" />
  
GUI Features
+
''' For Windows '''
Compare Fingerprint - Option to Compare registered Fingerprint.
+
* Run PiFinger GUI by running "PiFinger_GUI.py" file with any python3 supported ide.
  
Add Fingerprint - Add New Fingerprint, will assign an ID for each successful registration.
+
* Select COM port and Baud Rate ( default is 9600) from above GUI ("COM7" (check comport from device manager) in case of default connection), and click on connect button to start communication with the fingerprint sensor.
  
Remove Fingerprint ( By ID) - Remove registered Fingerprint for a specific ID.
+
<img src="https://raw.githubusercontent.com/sbcshop/PiFinger/main/Images/pifinger_connect_win.gif" height="600" width="600" />
  
Remove All Fingerprint (Registered) - Remove all fingeprint in a single click.
+
===== GUI Features =====
 +
* '''Compare Fingerprint''' - Option to Compare registered Fingerprint.
 +
* '''Add Fingerprint''' - Add New Fingerprint, will assign an ID for each successful registration.
 +
* '''Remove Fingerprint''' ( By ID) - Remove registered Fingerprint for a specific ID.
 +
* '''Remove All Fingerprint''' (Registered) - Remove all saved fingerprints in a single click.
  
LED display explanation
+
== Resources ==
The LED light of the PiFinger shows the current working status.
 
  
If the LED1 and the LED2 flash in turn, it means that the PiFinger is in operation mode. If the LED1 or the LED2 is blinking alone, it means that the PiFinger is in the demo mode.
+
''' Github '''
  
The PiFinger will be in the demo mode after powered on or reset. Send any command to it will make it leave demo mode and enter operation mode immediately, and it will process the received command. When the PiFinger is in operation mode, only power on or reset it can make it back to demo mode.
+
* [https://github.com/sbcshop/PiFinger Source Code]
 +
* [https://github.com/sbcshop/PiFinger/wiki/Communication-Protocol Communication Protocol]

Latest revision as of 11:43, 23 June 2021

Pi-Finger

PiFinger, the first-ever Fingerprint HAT for Raspberry Pi Comprise of onboard Nuvoton MCU with an on-chip crypto-accelerator, Cortex-M23 TrustZone, and XOM facilities. A user can use the communication protocol to the PiFinger with commands over the UART protocol with the default Baud rate of 9600 bps or USB 2.0 full speed.

Features

  • Capacitive Contact Technology
  • On Chip-Crypto Accelerator
  • High-Speed UART Interface
  • Register up to 24 Fingerprints
  • Nuvoton MCU
  • Cortex-M23 Trust zone

Specifications

  • Processor - Nuvoton MCU Cortex M23
  • Communication - UART, USB 2.0 and GPIO
  • Display - 0.91” OLED (SSD1306)
  • Buzzer - Yes
  • Default Baud Rate - 9600 bps
  • Matching Mode - 1:1,1:N
PiFInger
Buy it From : Click Here

Pinout

PiFinger Raspberry Pi
VCC 5V
GND GND
Fingerprint TX GPIO15 (RXD)
Fingerprint RX GPIO14 (TXD)
OLED SDA GPIO2 (SDA)
OLED SCL GPIO3 (SCL)
BUZZER GPIO13

Installation

Python

Required Hardware
  • Raspberry Pi x 1
  • Pi-Finger x 1
Enable I2C and Serial Interface
  • Open a terminal and run the following commands to enable I2C:
sudo raspi-config

Choose Interfacing Options -> I2C ->yes

  • Again run below command to enable Serial
sudo raspi-config

Choose Interfacing Options -> Serial -> No -> Yes

  • You can also enable Serial and I2C using Graphical method, Open Menu by clicking on Raspberry Pi icon >> Preferences >> Raspberry Pi Configurations >> Interfaces , and select below option.

Serial i2c en graphical.PNG

  • Now reboot your pi by running the below command :
sudo reboot


Board Test
  • Connect PiFinger on top of 40 pins stackable GPIO header of Raspberry Pi.
  • Now Clone/Download PiFinger Repository by running below command or directly download from Github.
git clone https://github.com/sbcshop/PiFinger.git
  • Open cloned/downloaded folder and choose your environment type (i.e: Raspberry Pi or Windows)

For Raspberry Pi

  • Run PiFinger GUI by running the below command:

python3 PiFinger_GUI.py or using any python3 supported ide.

Select COM port and Baud Rate ( default is 9600) from the above GUI ("/dev/ttyS0" in case of default connection), and click on connect button to start communication with the fingerprint sensor.

For Windows

  • Run PiFinger GUI by running "PiFinger_GUI.py" file with any python3 supported ide.
  • Select COM port and Baud Rate ( default is 9600) from above GUI ("COM7" (check comport from device manager) in case of default connection), and click on connect button to start communication with the fingerprint sensor.

GUI Features
  • Compare Fingerprint - Option to Compare registered Fingerprint.
  • Add Fingerprint - Add New Fingerprint, will assign an ID for each successful registration.
  • Remove Fingerprint ( By ID) - Remove registered Fingerprint for a specific ID.
  • Remove All Fingerprint (Registered) - Remove all saved fingerprints in a single click.

Resources

Github