Project Overview
The "Bio-Secure PC Interface" is a sophisticated HID (Human Interface Device) project that replaces traditional password typing with a bi-directional biometric and RFID authentication system. Developed for a university microprocessing lab, the system utilizes an Arduino Leonardo—chosen for its native USB-HID support—to emulate a keyboard. When a valid fingerprint is scanned by the Z70 sensor or a registered tag is read by the MFRC522, the Arduino instantly "types" the user's password to unlock the Windows workstation. The project also features a dedicated log-out button and a custom 3D-printed enclosure, making it a professional-grade productivity tool.
INTRO
This is a project I made for my microprocessor programming laboratory at my university. The project goals were to log in and out of my PC using RFID card or fingerprint scan.
I value privacy a lot, so ability to log in and out in mere seconds, without typing password is a life saver for me. This interface is fully open source, you can use it and modify as you please.
Two very important things here:
You can use this project with only RFID reader with absolutely no changes in code, but using it with only fingerprint scanner require full code rebuild.
Technical Architecture & HID Emulation
- Native USB HID (Arduino Leonardo): Unlike the Arduino UNO, the Leonardo uses the ATmega32u4 microcontroller, which has built-in USB communication. This allows the board to appear to the PC as a standard keyboard. The
Keyboard.hlibrary is used to send the WindowsWin + Lcombination for locking and the precise string of characters (password) followed byEnterfor unlocking. - Biometric Processing (Z70 Scanner): The Z70 fingerprint scanner is an intelligent sensor that handles the image processing and minutiae matching internally. It communicates with the Arduino via UART Serial. The Arduino code simply checks for a "Match ID" returned by the sensor. The fingerprint enrollment process (storing the templates in the sensor's flash memory) is performed once via a standard "Enroll" utility.
- RFID Implementation (RC522): The RFID reader uses the SPI protocol. A unique engineering aspect of this project is managing the 3.3V power requirement of the RC522 while the rest of the system (LCD, Fingerprint sensor) operates at 5V. The Leonardo's dedicated 3.3V rail is utilized to ensure signal integrity and sensor longevity.
- Power Management & Stealth Mode: To prevent display "burn-in" and conserve power, the system enters a "sleep" state after 15 seconds of inactivity. During this state, the LCD and the fingerprint sensor's LED ring are turned off. A hardware "wake" button is integrated to reactivate the biometric scanner for the next session.
Engineering & Construction
- Software Security Logic: The password is stored as a
Stringvariable in the Arduino's flash memory. While this prototype is meant for convenience, an engineering upgrade for higher security would involve using a hashing function or storing only part of the credential on the device. - 3D Printed Ergonomics: The project includes custom STL files for a tiered enclosure. The design ensures the fingerprint scanner is angled correctly for ergonomic use while the 16x2 LCD provides clear status messages like "Access Granted" or "Invalid ID."
- Circuit Optimization: To save space and wiring complexity, the LCD's backlight anode is connected to an Arduino digital pin. This allows the software to control the screen's brightness and power state programmatically.
- Wait-During-Boot Algorithm: The code includes a 7-second "initialization delay" at startup. This prevents the Arduino from attempting to send HID commands while the PC's operating system is still enumerating USB devices during the boot sequence.