# doorman2: electric boogaloo - `esp32/` contains the micropython source which talks w/ NFC module and keypad over UART (two channels) - `keypad/` has some magical Arduino code (sorry) ## scanning new cards connect USB cable, use `mpremote` or any serial termnal to listen to logs, read card hash from logs example: ``` $ mpremote Connected to MicroPython at /dev/ttyUSB1 Use Ctrl-] or Ctrl-x to exit this shell PN532: No response from PN532! PN532: No response from PN532! PN532: No response from PN532! Card UUID: 403dcb1e Card hash: dfe9bedbf230cf67dfa65249a7517af81175496642724a18ac728ecac7c90862 Unknown hash, ignoring PN532: No response from PN532! PN532: No response from PN532! $ ``` ## syncing data from LDAP big TODO; currently, you need to: 1. use the `tools/get_hashes` python script to pull card hashes from LDAP (requires python-ldap) 2. put the output in a `hashes` file 3. `mpremote fs cp hashes :hashes` plans: web UI like vuko's design ## esp <-> keypad protocol definition - one byte per command, no delimeters, keypad is supposed to be as stateless as possible - the keypad can only send numbers and the hash symbol - ESP can send the following commands: - `H` ("happy" noise, success; turns on the green LED for a second and turns it back off) - `S` ("sad" failure noise; likewise with the red LED) - `F` ("flush"; turns off LEDs and tries to bring the env to a sane level) - `G`, `R` ("green", "red"; turns on the specific LEDs) - `Q` ("quiet"; turns on audible keypresses) --- i am so sorry