-
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
A standalone RFID access controller: ESP32-S3 + PN532 (hardware SPI) + 16x2
I2C LCD + a LittleFS-backed fixed-width binary user database. The board works
completely on its own with no PC attached; a Python CLI is provided for
administration (adding/removing/renaming users, batch import/export, tag
renewal, Wi-Fi provisioning, NTP time management, and card-UID scan mode),
either as one-shot scripted commands or as an interactive git/psql-style
shell. Users have an expiration date checked against an NTP-synced clock, and
a passive buzzer gives audible pass/fail feedback. The database supports up
to 70000 users backed by PSRAM (8MB on ESP32-S3), stored in a
fixed-width binary format (users.bin) with per-record CRC32 corruption
detection and a whole-database db_crc32 used to skip no-op imports.
For cloning and getting a first build/flash working, see the README. This wiki covers everything past that.
- Hardware and Wiring -- parts list, PN532 SPI DIP-switch config, GPIO pinout for the PN532/LCD/buzzer, power notes.
- Firmware Setup -- Arduino IDE board options, library list, serial port / baud rate configuration.
- Python CLI Guide -- install, the interactive shell, user schema and expiration rules, batch import/export, the name-length policy, the user limit, tag renewal, Wi-Fi/NTP/timezone.
- Serial Protocol Specification -- the full newline-delimited JSON wire protocol, message types both directions.
- Troubleshooting -- symptom -> likely cause table.
- Project Structure -- file-by-file layout of the firmware and the Python CLI, and how to run the test suite.
RFID Access Control · v1.0.1 · ESP32-S3 + PN532
README · Changelog · Issues · MIT License