• A $10 NFC Lock For Hackerspaces

    b.sverdlyuk08/08/2026 at 14:37 0 comments

    Prismo is a small board that does one simple thing: tap a card, and a door unlocks or a machine powers on. It also leaves a record of who used what and when.

    You can build one for about $10 in parts. Everything is open — schematics, PCB, firmware, web interface — under the MIT license.

    Where the problem came from

    NU31 is a hackerspace in Kyiv. A hackerspace, in plain terms, is a room where people come to make things with their hands: solder, print on a 3D printer, cut on a machine. Shared space, shared tools.

    That brings some very ordinary problems:

    • The door needs a lock, but cutting a key for everyone does not scale.
    • It would be good to know who was in the room and when.
    • A machine can hurt someone. It makes sense to grant access only to people who went through the safety briefing, not to everyone who walks in.

    Commercial solutions exist, but they either have no network management at all — adding a person means walking over and reprogramming the reader by hand — or they cost more than a hackerspace wants to spend on a toilet door. That is where Prismo came from.

    How it works

    There are two main parts inside.

    ESP32-C3 Super Mini — a microcontroller with Wi-Fi, about $3. This is the brain.

    PN532 — an off-the-shelf NFC module. NFC is the same technology used in bank cards and phone payments. The module reads a card's unique ID (UID) and hands it to the microcontroller.

    The logic is straightforward from there. The device gets a UID, checks whether that card is on the allowed list, and if it is, switches a relay. The relay closes a contact — an electric strike on a door, or mains power on a machine. At the same time an RGB LED shows the result by color and a buzzer confirms it by sound.

    The device keeps its own list of allowed cards in local cache. That is deliberate: if the network drops or the server goes down, the lock keeps working. The server holds the master list and the event log, and the two stay in sync over MQTT — a lightweight messaging protocol that is the de facto standard in home automation. The same connection is what lets Prismo talk to Home Assistant.

    One thing worth stating plainly: there is no cloud. The server runs on your own hardware, the data goes nowhere, and no vendor can switch the device off one day.

    What is in the box

    The PCB is single-layer. That is a deliberate choice: it can be etched at home with the toner-transfer method, or milled on a CNC. Ordering from a fab house is optional.

    Components were picked so the device works as someone's first soldering project. No fine-pitch packages, no special tools, no hot air. A soldering iron, some solder, a bit of patience.

    The enclosure is 3D-printed. Those files sit in the repository along with the KiCad project, ready-to-order gerbers, and a BOM with links to the parts.

    Getting it running

    Three steps, none of them intimidating.

    1. Build the firmware. On the project site, type in your Wi-Fi name and password and hit Build Firmware. The credentials are baked into the image, so there is no captive portal to fight with on first boot. One caveat: the ESP32-C3 is 2.4 GHz only — it will not join a 5 GHz network.

    2. Flash it. Plug the board in over USB-C in Chrome or Edge and click the button. The firmware goes in straight from the browser over Web Serial. No IDE, no toolchain, no drivers to install. Plug the board directly into the computer — USB hubs and extension cables tend to break flashing.

    3. Add a card. Register the card's UID in the web interface, and it is ready to tap.

    The firmware is written in MicroPython — the same Python, but for microcontrollers. That was a deliberate pick: plenty of people already know it, and reading someone else's code in it is easy.

    About reliability

    A lock is the kind of thing that is not allowed to hang. If the device stops responding at two in the morning, somebody is standing outside a locked door.

    So the project has a test rig. A Raspberry Pi acts as...

    Read more »