1122334455667788AABBCCDDEE

/ ROOT / BIOMETRIC-ATTENDANCE    ◂ back to sheet 1

Biometric attendance

Card-tap attendance for a lecture room: an Arduino reader and a Python desktop app, built for GE1205 Multidisciplinary Design in summer 2025. The plan had fingerprints too. This sheet shows what shipped.

J1USB Bto the laptop,/dev/cu.usbmodem1301,9600 baudU1Arduino UnoUSBD13 SCKD11 MOSID10 SSD9 RSTD12 MISOD2 RXD3 TXU4Level shifter, 5 V to 3.3 VHV1HV2HV3HV4LV1LV2LV3LV4U2RC522 RFID reader, 13.56 MHzSCKMOSISDARSTMISOIRQU3 DNPR307 fingerprint sensorTXRXVCCGNDNot fitted: the module could notbe sourced before demo day.+5V+3V3+5V+3V3+3V3+5V▸ Hover a wire to name its net.NET USB SERIAL to the laptop at 9600 baud: RFID,<uid> linesNET SCK D13 to the level shifter to the RC522, SPI slowed to 1 MHzNET MOSI D11 to the level shifter to the RC522NET SS D10 to the level shifter to the RC522's SDA, its chip selectNET RST D9 to the level shifter to the RC522NET MISO RC522 to D12, direct: 3.3 V reads as high on the UnoNET FINGERPRINT D2 and D3 as software serial to the R307: planned, not fitted
The attendance log in the desktop app on demo day, cropped, with the card's UID masked

FIG. 1  The desktop app's log on demo day, cropped. UID masked.

TEST RECORD, 2025-08-22

07:43:17App connected, waiting for the reader's first line.
07:43:30First row written by the device: my card, a test course.

SERIAL LINK, 9600 BAUD

DIRECTIONLINEON DEMO DAY
device to appRFID,<uid>sent
app to deviceENROLL,<fid>[,<uid>]not handled
device to appATTEND_*, ENROLL_*, INFOnever sent

The app speaks a larger protocol than the demo firmware did. Only RFID lines crossed the wire.

BRING-UP

SPI slowed to 1 MHz, antenna gain at maximum. A register write-and-read-back test tells a wiring fault from a dead module. MISO runs direct: 3.3 V reads as high on the Uno.

HOST APP

Tkinter with a serial reader thread. SQLite tables for teachers, courses, students, enrolments, attendance and settings. CSV and Excel export.

TEAM

GE1205 group project, seven people. My part: the firmware, the desktop app and this schematic.

OPEN ITEMS

  1. Fit the fingerprint sensor.
  2. Measure tap-to-record latency.
  3. FAR and FRR, once fingerprints work.
  4. Wire the v2 board.
REVISIONSREVDATEDESCRIPTIONA2025-06-12Proposal: fingerprint and RFID, R307 plannedB2025-07-22Breakdown: sensor options, 2 s match targetC2025-08-22As built for demo day: RFID path onlyD2025-09-02v2 parts placed: own MCU, battery, solarTITLEBiometric attendance, as builtSHEET/ biometric-attendanceNO.2 of 7REVCDATE2025-08-22DRAWND. BrownSIZEA3GO TO◂ sheet 1sheet 3 ▸OTHER VIEWSDEVPHYSICSACADEMICee.desmondbrown.me

/ ROOT / BIOMETRIC-ATTENDANCE

Biometric attendance

Card-tap attendance for a lecture room: an Arduino reader and a Python desktop app, built for GE1205 Multidisciplinary Design in summer 2025. The plan had fingerprints too. This sheet shows what shipped.

SHEET2 of 7REVCDATE2025-08-22
OTHER VIEWSDEVPHYSICSACADEMIC
J1USB Bto the laptop,/dev/cu.usbmodem1301,9600 baudU1Arduino UnoUSBD13 SCKD11 MOSID10 SSD9 RSTD12 MISOD2 RXD3 TXU4Level shifter, 5 V to 3.3 VHV1HV2HV3HV4LV1LV2LV3LV4U2RC522 RFID reader, 13.56 MHzSCKMOSISDARSTMISOIRQU3 DNPR307 fingerprint sensorTXRXVCCGNDNot fitted: the module could notbe sourced before demo day.+5V+3V3+5V+3V3+3V3+5V

Drag sideways to pan the schematic.

The attendance log in the desktop app on demo day, cropped, with the card's UID masked

FIG. 1  The desktop app's log on demo day, cropped. UID masked.

TEST RECORD, 2025-08-22

07:43:17App connected, waiting for the reader's first line.
07:43:30First row written by the device: my card, a test course.

SERIAL LINK, 9600 BAUD

DIRECTIONLINEON DEMO DAY
device to appRFID,<uid>sent
app to deviceENROLL,<fid>[,<uid>]not handled
device to appATTEND_*, ENROLL_*, INFOnever sent

The app speaks a larger protocol than the demo firmware did. Only RFID lines crossed the wire.

BRING-UP

SPI slowed to 1 MHz, antenna gain at maximum. A register write-and-read-back test tells a wiring fault from a dead module. MISO runs direct: 3.3 V reads as high on the Uno.

HOST APP

Tkinter with a serial reader thread. SQLite tables for teachers, courses, students, enrolments, attendance and settings. CSV and Excel export.

TEAM

GE1205 group project, seven people. My part: the firmware, the desktop app and this schematic.

OPEN ITEMS

  1. Fit the fingerprint sensor.
  2. Measure tap-to-record latency.
  3. FAR and FRR, once fingerprints work.
  4. Wire the v2 board.

Redlines to browndesmond30@yahoo.com.

REVISIONS

A2025-06-12Proposal: fingerprint and RFID, R307 planned
B2025-07-22Breakdown: sensor options, 2 s match target
C2025-08-22As built for demo day: RFID path only
D2025-09-02v2 parts placed: own MCU, battery, solar
TITLEBiometric attendance, as built
◂ sheet 12 / 7sheet 3 ▸