Final Year Project #1 (FYP)
Author: M. Abdul-Rasheed Talal
Live Interactive CAD Schematic: https://abdul-rasheed-talal.github.io/Smart_Biometric_Attendence_System/
Complete Technical Manual: DOCUMENTATION.md
The Smart Biometric Attendance System is an offline-first, highly reliable embedded attendance logging station powered by the ESP32-WROOM-32D microcontroller. It combines high-speed optical fingerprint recognition (R307), precision temperature-compensated real-time clock tracking (DS3231), high-visibility visual feedback via a 16x2 I2C Character LCD Display (PCF8574T), tri-color status LEDs and acoustic buzzer feedback, and non-volatile CSV logging to an onboard MicroSD card (FAT32).
Designed for high electrical integrity and academic evaluation, the system features a dual-rail isolated power distribution system (5V/3.3V) with an integrated software verification engine in the interactive CAD schematic that mathematically certifies zero pin collisions, proper bus routing (UART, I2C, SPI), and absolute overvoltage safety.
- β‘ High-Speed Biometric Authentication: R307 optical fingerprint scanner with built-in DSP processing and 1:N local matching (< 1.0s identification).
- π Battery-Backed Accurate Timekeeping: DS3231 RTC with dedicated CR2032 coin battery backup and internal TCXO (temperature-compensated crystal oscillator) for drift-free timestamping.
- π High-Visibility 16x2 I2C LCD Display: Clear two-line status readout via PCF8574 I2C backpack operating on 5V supply, eliminating wiring clutter.
- πΎ Offline & Tamper-Resistant Storage: Structured CSV attendance logs recorded on standard FAT32 MicroSD cards, accessible without internet dependencies.
- π¦ Tri-Color Status Feedback: Dedicated active-high status LEDs and an audible buzzer communicating
On-Time(Green),Late(Yellow), andError / Unauthorized(Red) states. - π‘οΈ Dual-Rail Voltage Safety Architecture: Isolated +5V and +3.3V power rails to safeguard sensitive CMOS I2C modules against overvoltage hazards.
- π₯οΈ Interactive CAD Schematic & Validator: Fully interactive, self-contained SVG web interface with Pan/Zoom, real-time electrical rule validation, fault simulator, and 4K vector export.
The repository includes a browser-based engineering schematic tool hosted on GitHub Pages:
π Launch Live Interactive Schematic
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ESP32 Biometric Attendance System β Web CAD & Diagnostics Engine β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β Pan & Zoom CAD Engine (20% β 500% zoom, fit-to-screen, center focus)β
β β Live Electrical Rules Auditor (0 violations, 100% pin exclusivity) β
β β Interactive Fault Simulator (Inject overvoltage, collisions) β
β β Vector SVG & Ultra-HD 4K (3600x2360) PNG Export β
β β Printable A3 Landscape Engineering Drawing β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
graph TD
subgraph Power ["Power Supply Subsystem"]
DC[DC Jack 5.5x2.1mm<br/>5V 2A Adapter] --> SW[SPST Rocker Switch]
SW --> RAIL5V["+5V Main Supply Rail"]
RAIL5V --> ESP_VIN["ESP32 5V (Vin)"]
ESP_VIN --> LDO["Onboard LDO Regulator"]
LDO --> RAIL3V3["+3.3V Regulated Bus"]
GND_JACK[Ground Sleeve] --> GND["Common Ground Plane (GND)"]
end
subgraph MCU ["Central Microcontroller: ESP32-WROOM-32D"]
ESP[ESP32 MCU<br/>Dual-Core 240MHz]
end
subgraph Peripherals ["Sensor & Storage Peripherals"]
RAIL5V --> R307[R307 Optical Fingerprint Sensor]
RAIL5V --> LCD[16x2 I2C LCD Display Module]
RAIL5V --> SD[MicroSD Card SPI Module]
RAIL3V3 --> RTC[DS3231 High-Precision RTC]
end
subgraph Feedback ["User Feedback Interface"]
G_LED[Green LED: On-Time]
Y_LED[Yellow LED: Late / Standby]
R_LED[Red LED: Auth Error]
BUZZ[Acoustic Buzzer]
end
%% Communications
ESP -- "UART2 (RX2: GPIO16 / TX2: GPIO17)" --> R307
ESP -- "I2C Bus (SDA: GPIO21 / SCL: GPIO22)" --> LCD
ESP -- "I2C Bus (SDA: GPIO21 / SCL: GPIO22)" --> RTC
ESP -- "VSPI Bus (CS: 27 / SCK: 18 / MOSI: 23 / MISO: 19)" --> SD
ESP -- "GPIO25 (330Ξ©)" --> G_LED
ESP -- "GPIO26 (330Ξ©)" --> Y_LED
ESP -- "GPIO33 (330Ξ©)" --> R_LED
%% Ground Returns
R307 & LCD & RTC & SD & G_LED & Y_LED & R_LED & BUZZ & ESP --> GND
The system connects all peripherals to dedicated hardware controllers on the 38-Pin ESP32-DevKitC:
| Component | Pin Label | ESP32 GPIO | Bus / Protocol | Operating Voltage | Function / Notes |
|---|---|---|---|---|---|
| R307 Sensor | TXD | GPIO16 (RX2) | Hardware UART2 | 3.3V TTL | Fingerprint data transmit to ESP32 |
| R307 Sensor | RXD | GPIO17 (TX2) | Hardware UART2 | 3.3V TTL | Fingerprint commands from ESP32 |
| R307 Sensor | VCC | +5V Rail | Power | +5V DC (Β±5%) | Optical prism illumination supply |
| R307 Sensor | GND | GND | Ground | 0V | Common system ground |
| DS3231 RTC | SDA | GPIO21 | Hardware I2C | 3.3V Logic | Data line (Address: 0x68) |
| DS3231 RTC | SCL | GPIO22 | Hardware I2C | 3.3V Logic | Clock line (Address: 0x68) |
| DS3231 RTC | VCC | +3.3V Rail | Power | +3.3V Regulated | Fed from ESP32 internal LDO |
| DS3231 RTC | GND | GND | Ground | 0V | Common system ground |
| 16x2 I2C LCD | SDA | GPIO21 | Hardware I2C | 3.3V/5V Logic | Data line (Address: 0x27 / 0x3F) |
| 16x2 I2C LCD | SCL | GPIO22 | Hardware I2C | 3.3V/5V Logic | Clock line (Address: 0x27 / 0x3F) |
| 16x2 I2C LCD | VCC | +5V Rail | Power | +5V DC | Backlight & PCF8574T Logic Supply |
| 16x2 I2C LCD | GND | GND | Ground | 0V | Common system ground |
| MicroSD Module | MOSI | GPIO23 | SPI Bus (MOSI) | 3.3V Logic | Master Out Slave In |
| MicroSD Module | MISO | GPIO19 | SPI Bus (MISO) | 3.3V Logic | Master In Slave Out |
| MicroSD Module | SCK | GPIO18 | SPI Bus (SCK) | 3.3V Logic | SPI Serial Clock |
| MicroSD Module | CS | GPIO27 | SPI Bus | 3.3V Logic | Dedicated Chip Select |
| MicroSD Module | VCC | +5V Rail | Power | +5V DC | Onboard module LDO supplies 3.3V |
| MicroSD Module | GND | GND | Ground | 0V | Common system ground |
| Status LEDs | Green Anode | GPIO25 | GPIO Output | 3.3V Active-High | On-Time Attendance (via 330Ξ©) |
| Status LEDs | Yellow Anode | GPIO26 | GPIO Output | 3.3V Active-High | Late Attendance (via 330Ξ©) |
| Status LEDs | Red Anode | GPIO33 | GPIO Output | 3.3V Active-High | Auth Failure / Error (via 330Ξ©) |
| Status LEDs | Cathodes | GND | Ground | 0V | Cathodes tied to common ground |
| Power Input | DC Jack (+) | Switch In | DC Input | +5V (2.0A) | Center-positive 5.5Γ2.1mm jack |
| Power Switch | Switch Out | +5V Rail | DC Rail | +5V DC | KCD-107 SPST rocker switch |
Important
Power Rail Safety: The DS3231 RTC is strictly connected to the +3.3V rail, while the 16x2 I2C LCD, R307 optical scanner, and MicroSD card module are powered from the +5V rail with common ground return across all modules.
Summary of physical components procured for the prototype build (full itemized pricing in DOCUMENTATION.md):
| No | Component Description | Quantity | Interface / Specs | Purpose |
|---|---|---|---|---|
| 1 | Espressif ESP32 WROOM-32D DevKitC | 1 | 38-Pin, Dual Core 240MHz | Main Controller |
| 2 | R307 Optical Fingerprint Scanner | 1 | UART (57600 baud), 5V VCC | Biometric Sensor |
| 3 | 16x2 I2C LCD Display Module (PCF8574T) | 1 | I2C (0x27 / 0x3F), 5V VCC |
Real-Time Visual GUI |
| 4 | ZS-042 DS3231 Precision RTC Module | 1 | I2C (0x68), TCXO |
Accurate Timekeeping |
| 5 | CR2032 3V Lithium Coin Cell | 1 | 3.0V Coin Cell | RTC Power Backup |
| 6 | MicroSD Card SPI Reader Module | 1 | SPI (VSPI), 5V In / 3.3V LDO | Non-Volatile Logging |
| 7 | SanDisk 32GB Ultra MicroSD Card | 1 | Class 10 FAT32 | Attendance CSV Storage |
| 8 | 5mm Diffused LEDs (Green, Yellow, Red) | 3 | Visual Status Feedback | |
| 9 | 1/4W 5% Carbon Film Resistors (330Ξ©) | 3 | 330 Ohm Current Limiting | LED Overcurrent Protection |
| 10 | 5V Active Piezo Buzzer | 1 | 5V DC, Active High | Audible Chime / Alert |
| 11 | KCD-107 SPST Round Rocker Switch | 1 | 250V/6A, Snap-in | Master Power Switch |
| 12 | DC-022 5.5x2.1mm PCB Barrel Jack | 1 | 3-Pin Female with Nut | DC Power Input Port |
| 13 | 5V 2.0A AC/DC Power Supply Adapter | 1 | Regulated 5V DC Out | Main Wall Adapter |
| 14 | 100x240mm Stripboard / Veroboard | 2 | Dotted Prototyping Board | Circuit Board Substrate |
| 15 | 160x96x50mm ABS Project Enclosure | 1 | Rigid ABS Plastic | Tamper-Resistant Case |
Smart_Biometric_Attendence_System/
βββ Inventory/
β βββ Components List.xlsx # Full itemized procurement spreadsheet (PKR)
β βββ Required_Components_List.pdf # Verified hardware bill of materials report
βββ index.html # Self-contained interactive CAD schematic & validator
βββ README.md # Project overview, pinouts, and quickstart (this file)
βββ DOCUMENTATION.md # Comprehensive academic & engineering technical manual
- PlatformIO IDE (recommended via VS Code) or Arduino IDE (v2.0+).
- Installed board package: ESP32 by Espressif Systems (v2.0.11 or later).
Install the following libraries via the Arduino Library Manager or platformio.ini:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
adafruit/Adafruit Fingerprint Sensor Library@^2.1.3
marcoschwartz/LiquidCrystal_I2C@^1.1.4
adafruit/RTClib@^2.1.3
arduino-libraries/SD@^1.2.4- Insert the MicroSD card into your computer and format it as FAT32 (Allocation unit size: 4096 bytes).
- Create an empty directory structure or let the firmware auto-initialize
attendance.csv:UID,RollNumber,Date,Time,Status
- Connect the ESP32 via Micro-USB data cable.
- Select port (e.g.,
COM3on Windows) and boardESP32 Dev Module. - Build and upload firmware.
- Open the Serial Monitor at
115200 baudto observe initialization diagnostics.
Attendance records are automatically appended to attendance.csv on the MicroSD card upon each valid biometric match:
Log_Index,Enroll_ID,Timestamp,Date,Status,Verification_Time_ms
1,004,08:45:12,2026-09-23,ON_TIME,320
2,012,08:58:40,2026-09-23,ON_TIME,295
3,007,09:16:05,2026-09-23,LATE,340
4,019,09:22:18,2026-09-23,LATE,310The system design was developed and validated using the built-in diagnostic engine in index.html:
- Rule Set 1 (Signals): UART2 RX/TX dedicated routing, dual-device I2C bus sharing (16x2 LCD + RTC), 4-wire SPI integrity (CS/SCK/MOSI/MISO).
- Rule Set 2 (Power): High-current modules (R307, 16x2 LCD, and SD) powered from +5V; low-voltage logic (DS3231) isolated to +3.3V.
- Rule Set 3 (Safety): Strict zero-tolerance isolation of the 5V rail from the 3.3V rail.
- Rule Set 4 (Ground): Common star ground plane connecting all module return paths to prevent ground bounce.
- Rule Set 5 (Exclusivity): Dedicated non-multiplexed GPIO assignments for status indicators (GPIO25, GPIO26, GPIO33).
- Rule Set 6 (Geometry): Exact coordinate alignment with physical ESP32 DevKitC 38-pin footprints.
For detailed theoretical principles, power dissipation analysis, firmware state machines, soldering procedures, and troubleshooting playbooks, refer to:
π DOCUMENTATION.md
- Project: Smart Biometric Attendance System (Final Year Project #1)
- Author: M. Abdul-Rasheed Talal
- Email: mabdulrasheedtalal@gmail.com
- Repository: https://github.com/Abdul-Rasheed-Talal/Smart_Biometric_Attendence_System
This project is licensed under the MIT License β see the LICENSE file for details.