Close

Tap to book a room — powered by your phone's NFC field

A project log for Harvesting NFC Energy to Transmit Commands

Using NFC RF energy harvested from a phone tap to submit commands and start a microcontroller. No standby power.

casparcaspar 04/22/2026 at 16:250 Comments

Here's a real-world use case for this project: an ePaper room sign that you can book with a phone tap. No button, no active radio on the device side, the inki door sign does not need to be powered at all.

For this I put the NFC test circuit into an inki device (https://github.com/c0de111/inki). Used with seatsurfing (https://github.com/seatsurfing/seatsurfing) it shows automatically the current room status — free or booked, who has it, until when. Between automatic updates, the Pico W is completely off. The image stays on the ePaper without any power. For details also see https://hackaday.io/project/203726-inki-low-power-wireless-epaper-device

**What happens when you tap**

1. The ST25DV04KC NFC chip wakes powered from the phone's 13.56 MHz RF field — no current from battery
2. The Android app writes a 16-byte command to the chip's EEPROM: opcode 0x10 (Book Seat) + your user name
3. The chip's GPO pin fires — the P-channel MOSFET switches on — the Pico W boots
4. The Pico reads the command over I²C, extracts the user name
5. It connects to Wi-Fi and sends a booking request to the seatsurfing server
6. Booking confirmed → the Pico refreshes the ePaper with the new state: your name, booking duration
7. The Pico releases its power latch — the MOSFET cuts power — system is off

The ePaper holds the updated booking display without any power.

**Idle: Almost nothing**

The trigger and the energy for this entire transaction came from the phone's RF field. The device contributed no power to being "ready" for a tap — because there is no standby. Not sleeping, not polling — off. Apart from leakage and pull-up currents, the only quiescent draw is the RTC. With an RV-3028, that's 45 nA. A set of AA batteries sustains thousands of wakes.

Active cycle time: roughly 5–8 seconds (Wi-Fi connect + API call + ePaper refresh). Then off again — until the next tap, an RTC alarm, or another wake source.

Discussions