diff --git a/README.md b/README.md index 91d6b13..5ebe444 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,39 @@ ## Gatekeeper - Door access system -Status: WIP - not prod ready +#### Status: WIP - getting there o.o -Dev with `nix develop` -sync python deps with `uv sync` -start dev server `uv run fastapi dev` -Swagger UI @ http://127.0.0.1:8000/docs -start prod server `uv run fastapi run` +Start prod server `nix run`
+Start dev server `nix run .#dev` or `nix run .#dev -- {args}`
+Interactive dev with `nix develop`, then sync deps with `uv sync`
+Swagger UI @ http://127.0.0.1:8000/api/v1/docs
+OpenApi @ http://127.0.0.1:8000/api/v1/openapi.json
-You need to set services.pcscd.enable = true; for the smartcard reader to work +#### Config: -Issues: +Nixos config for the card reader: +``` +services.pcscd = { + enable = true; + plugins = [ pkgs.acsccid ]; #<-- Needed for the ACE1552U +}; +``` + +This application is configured using env vars. You can use `cp .env.example .env` and then edit `.env` to change the keys to something else. + + +### A note on keycard scanners +I have tried two scanners while developing this project, the TWN4 MultiTech 2 from elatec and the ACR1552U from acs.
+##### TWN4 +From the factory the TWN4 comes with firmware that emulates a HID and just inputs the serial of any scanned card. To be usable with pcscd it had to be flashed with the `TWN4_xPx520_S1SC161_Multi_CCID_1Slot_Standard.bix` firmware found in the `TWN4DevPack520` which can be downloaded under https://www.elatec-rfid.com/int/elatec-software (They send you a download link via email). +This software seems to not work under wine. I had to setup a win10 vm and pass the usb to be able to flash.
+Range: In my testing the TWN4 has a range of about 22mm when interfacing with our Mifare DESFire v2 cards. This is not enough for our idea of mounting the scanner on the inside of a glass window. + +#### ACR1552U +The ACR1552U comes preloaded with PC/SC firmware. You need to install the acsccid package with your package-manager of choice (Nixos user see above) for the scanner to work but after that I had no problems with the hardware interfacing.
+Range: The range of the ACR1552U was much better at over 60mm (almost 70mm if you take of the face plate) + + +#### Issues: - documentation missing - - `nix run` currently broken - raspberry pi image not working - no door state - no door operations