summaryrefslogtreecommitdiffstats
path: root/_log/fpm-door-lock-rf.md
diff options
context:
space:
mode:
Diffstat (limited to '_log/fpm-door-lock-rf.md')
-rw-r--r--_log/fpm-door-lock-rf.md42
1 files changed, 22 insertions, 20 deletions
diff --git a/_log/fpm-door-lock-rf.md b/_log/fpm-door-lock-rf.md
index 76f64d7..87dc6b4 100644
--- a/_log/fpm-door-lock-rf.md
+++ b/_log/fpm-door-lock-rf.md
@@ -12,21 +12,25 @@ Wanted to unlock door with fingerprint, wirelessly to avoid drilling.
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-01: Switched to RFM69 modules. Complete ball-ache. Followed datasheet to
+the letter, audited code many times, cross-checked with RadioHead and RFM69
+open-source drivers. No luck.
-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.
+Datasheet riddled with ambiguity.
-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.
+ATmega328P runs at 5V; RFM69 3.3V. Suspect logic-level converter (LLC)
+issues. High resistance. Not enough swing.
-2025-06: First PCB design. Two boards: fingerprint sensor (front), servo
-controller (back). Encrypted RF link between them.
+2025-04: Ditched RFM69s. Switched to NRF24L01+ modules-- data pins 5V tolerant,
+no LLC required. Spent six weekends writing driver from scratch--clean-room.
+Works like a charm.
+
+2025-05: Wrote FPM drivers for R503 and FPM10A. UART RX sequence was
+tricky--adopted Adafruit C++ FOSS implementation to C. R503 has built-in LEDs
+and better form factor. Chose it for the lock.
+
+2025-06: Two PCB boards for FPM (front) and servo (back) controllers. Encrypted
+RF link between them.
<table style="border: none; width: 100%">
<tr style="border: none;">
@@ -52,19 +56,17 @@ controller (back). Encrypted RF link between them.
</table>
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.
-2025-06: NRF24L01+ on the back controller stopped working after mounting on
-PCB. RFM is too close to PWM line. Fixed by soldering a large 47uF (16V)
-electrolytic capacitor between VCC and ground.
+2025-06: NRF24L01+ on the back stopped working after mounting on PCB. Too close
+to servo's PWM line. Soldering a large 47uF (16V) electrolytic capacitor
+between VCC and ground fixed it.
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.
+and servo drew 13.8mA and 4.6mA quiescent currents--unacceptable for battery.
+Servo inrush current exceeds 1A. 0.3mm tracks cuts it too close.
Verdict: Functional but not practical. Battery dead in under 24 hours. Led to
-[complete redesign](../fpm-door-lock-lp/) with proper power management.
+[redesign](../fpm-door-lock-lp/) with proper power management.
Commit:
[f4b0b73](https://git.asciimx.com/smart-home/commit/?id=f4b0b734a595919cf451ab9448b06274c8e609a4)