From d0d7a540b009433e4278f20def54b87edf3c712f Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 27 Dec 2025 11:15:17 +0800 Subject: RF lock. --- _site/feed.xml | 2 +- _site/index.html | 2 +- _site/log/fpm-door-lock-rf/index.html | 69 ++++++++++++++++++----------------- _site/log/index.html | 2 +- _site/posts.xml | 2 +- _site/sitemap.xml | 2 +- 6 files changed, 41 insertions(+), 38 deletions(-) (limited to '_site') diff --git a/_site/feed.xml b/_site/feed.xml index c57a03e..77029b1 100644 --- a/_site/feed.xml +++ b/_site/feed.xml @@ -1 +1 @@ -Jekyll2025-12-26T21:43:25+08:00/feed.xmlASCIIMX | LogW. D. Sadeep MadurangeMatrix Rain: 2025 refactor2025-12-21T00:00:00+08:002025-12-21T00:00:00+08:00/log/matrix-digital-rainW. D. Sadeep MadurangeFingerprint door lock (LP)2025-08-18T00:00:00+08:002025-08-18T00:00:00+08:00/log/fpm-door-lock-lpW. D. Sadeep MadurangeOn the use of MOSFETs as electronic switches2025-06-22T00:00:00+08:002025-06-22T00:00:00+08:00/log/mosfet-switchesW. D. Sadeep MadurangeHow to configure ATmega328P microcontrollers to run at 3.3V and 5V2025-06-10T00:00:00+08:002025-06-10T00:00:00+08:00/log/arduino-unoW. D. Sadeep MadurangeFingerprint door lock (RF)2025-04-26T00:00:00+08:002025-04-26T00:00:00+08:00/log/fpm-door-lock-rfW. D. Sadeep MadurangeBumblebee: browser automation2025-04-02T00:00:00+08:002025-04-02T00:00:00+08:00/log/bumblebeeW. D. Sadeep MadurangeHow to set up ATSAM3X8E microcontrollers for bare-metal programming in C2024-09-16T00:00:00+08:002024-09-16T00:00:00+08:00/log/arduino-dueW. D. Sadeep MadurangeEtlas: e-paper dashboard2024-09-05T00:00:00+08:002024-09-05T00:00:00+08:00/log/etlasW. D. Sadeep MadurangeExperimental e-reader2023-10-24T00:00:00+08:002023-10-24T00:00:00+08:00/log/e-readerW. D. Sadeep MadurangeNeo4J A* search2018-03-06T00:00:00+08:002018-03-06T00:00:00+08:00/log/neo4j-a-star-searchW. D. Sadeep Madurange \ No newline at end of file +Jekyll2025-12-27T11:18:53+08:00/feed.xmlASCIIMX | LogW. D. Sadeep MadurangeMatrix Rain: 2025 refactor2025-12-21T00:00:00+08:002025-12-21T00:00:00+08:00/log/matrix-digital-rainW. D. Sadeep MadurangeFingerprint door lock (LP)2025-08-18T00:00:00+08:002025-08-18T00:00:00+08:00/log/fpm-door-lock-lpW. D. Sadeep MadurangeOn the use of MOSFETs as electronic switches2025-06-22T00:00:00+08:002025-06-22T00:00:00+08:00/log/mosfet-switchesW. D. Sadeep MadurangeHow to configure ATmega328P microcontrollers to run at 3.3V and 5V2025-06-10T00:00:00+08:002025-06-10T00:00:00+08:00/log/arduino-unoW. D. Sadeep MadurangeFingerprint door lock (RF)2025-06-05T00:00:00+08:002025-06-05T00:00:00+08:00/log/fpm-door-lock-rfW. D. Sadeep MadurangeBumblebee: browser automation2025-04-02T00:00:00+08:002025-04-02T00:00:00+08:00/log/bumblebeeW. D. Sadeep MadurangeHow to set up ATSAM3X8E microcontrollers for bare-metal programming in C2024-09-16T00:00:00+08:002024-09-16T00:00:00+08:00/log/arduino-dueW. D. Sadeep MadurangeEtlas: e-paper dashboard2024-09-05T00:00:00+08:002024-09-05T00:00:00+08:00/log/etlasW. D. Sadeep MadurangeExperimental e-reader2023-10-24T00:00:00+08:002023-10-24T00:00:00+08:00/log/e-readerW. D. Sadeep MadurangeNeo4J A* search2018-03-06T00:00:00+08:002018-03-06T00:00:00+08:00/log/neo4j-a-star-searchW. D. Sadeep Madurange \ No newline at end of file diff --git a/_site/index.html b/_site/index.html index 08d3663..2498bda 100644 --- a/_site/index.html +++ b/_site/index.html @@ -112,7 +112,7 @@ - + diff --git a/_site/log/fpm-door-lock-rf/index.html b/_site/log/fpm-door-lock-rf/index.html index c12d808..e2da50a 100644 --- a/_site/log/fpm-door-lock-rf/index.html +++ b/_site/log/fpm-door-lock-rf/index.html @@ -42,17 +42,29 @@

FINGERPRINT DOOR LOCK (RF)

-
26 APRIL 2025
+
05 JUNE 2025

-

In 2023, I started tinkering with DIY electronics as a hobby. Until now, I’ve -been using development boards like the Arduino Uno and ESP-32-WROOM so that I -can focus on the software. Recently, I decided to step outside of my comfort -zone and design a PCB from scratch for a door lock I’m working on.

+

Wanted to unlock door with fingerprint, wirelessly to avoid drilling.

-

The lock comprises two subsystems: a fingerprint sensor in front of the door -and a servo connected to the physical lock behind the door. The fingerprint -sensor authenticates the person and signals the servo behind the door to unlock -the door over an encrypted RF channel.

+

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 30 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.

@@ -77,30 +89,21 @@ the door over an encrypted RF channel.

-

The PCBs have two layers. A copper region serves as the ground plane. The 0.3mm -wide 1oz/ft2 copper traces can carry up to 500mA (the tracks -connecting the power source and the linear regulators have a width of 0.5mm). -Both subsystems were functional. I was able to control the servo reliably using -the fingerprint sensor.

- -

The designs aren’t without flaws, however. The main shortcoming of the circuits -is that they draw significant amounts of quiescent currents despite employing -sleep modes. The linear regulators were a poor choice as they dissipate too -much heat. The fingerprint sensor and the servo draw 13.8mA (3.3V) and 4.6mA -(5V) respectively, as long as they are connected to the power supply.

- -

Although the circuit didn’t draw more than 200mA without a load, the servo -under load could draw up to 600mA. I’m sailing too close to the wind with 0.3mm -copper traces. Instead, 0.4mm wide 2oz/ft2 traces would have been -safer.

- -

I’m working on improving the design to reduce idle current consumption and -extend the battery life. Despite its deficiencies, this was my first PCB -design, and I’m glad that it worked as well as it did. Custom PCB design marks -an important milestone in my DIY electronics journey.

- -

Files: gerber_back.zip, gerber_front.zip, - source.tar.gz

+

PCB specs: 2-layer, 1oz copper, 0.3mm traces (0.5mm for power). Ground plane. +Both subsystems worked—could control servo from sensor over RF.

+ +

Power problems became clear. Linear regulators dissipated too much heat. Sensor +and servo drew 13.8mA and 4.6mA quiescent—unacceptable for battery. Servo +inrush current can exceed 1A. Trace width (0.3mm), especially for servo and +power, cutting it close.

+ +

Verdict: Functional but not practical. Battery dead in under 24 hours. Led to +complete redesign with proper power management.

+ +

Commit: +f4b0b73 +| Gerber: gerber_back.zip, +gerber_front.zip

diff --git a/_site/log/index.html b/_site/log/index.html index bcc001e..b7ebcc5 100644 --- a/_site/log/index.html +++ b/_site/log/index.html @@ -102,7 +102,7 @@ diff --git a/_site/posts.xml b/_site/posts.xml index 037ca77..03fec7a 100644 --- a/_site/posts.xml +++ b/_site/posts.xml @@ -1 +1 @@ -Jekyll2025-12-26T21:43:25+08:00/posts.xmlASCIIMXW. D. Sadeep Madurange \ No newline at end of file +Jekyll2025-12-27T11:18:53+08:00/posts.xmlASCIIMXW. D. Sadeep Madurange \ No newline at end of file diff --git a/_site/sitemap.xml b/_site/sitemap.xml index fc2c59e..b799547 100644 --- a/_site/sitemap.xml +++ b/_site/sitemap.xml @@ -22,7 +22,7 @@ /log/fpm-door-lock-rf/ -2025-04-26T00:00:00+08:00 +2025-06-05T00:00:00+08:00 /log/arduino-uno/ -- cgit v1.2.3