--- title: Fingerprint door lock (RF) date: 2025-06-05 layout: post project: true thumbnail: thumb_sm.jpeg --- Wanted to unlock door with fingerprint, wirelessly to avoid drilling. 2024-11: Started with basic 433MHz RF modules and two Arduinos. Connected data lines of the transceivers to UART RXD/TXD of an ATmega328P. Unreliable--constant packet loss. 2025-01: Switched to RFM69 modules. A complete ball-ache. Followed the datasheet to the letter, audited code more than 10 times, cross-checked with RadioHead and RFM69 OSS drivers. No luck. ATmega328P runs at 5V, RFM69 3.3V. I suspect the problem is with the logic-level converter (LLC). Not enough swing. 2025-04: Ditched RFM69s. Switched to NRF24L01+ modules--5V tolerant, no LLC required. Spent six weekends writing driver from scratch--clean-room, using datasheet. Works perfectly. 2025-05: Wrote FPM sensor drivers for R503 and FPM10A. UART RX sequence was tricky--took multiple attempts to get handshake working. R503 has built-in LEDs and better form factor--will use it for the lock. 2025-06: First PCB design. Two boards: fingerprint sensor (front), servo controller (back). Encrypted RF link between them.
Footprint (front) |
PCB (front) |
Footprint (back) |
PCB (back) |