Draw a boundary on a map. When the node crosses it, a relay fires — the gate opens, the lights come on, the alarm disarms. The node carries its own GPS and decides on its own: once you've synced your zones, the phone can be switched off, out of range or uninstalled and it keeps working.
No account, no server, no cloud. Nothing in the trigger path but GPS and a GPIO.
Sideload it: you'll need to allow installs from your browser or file manager the first time. After that the app updates itself — Settings → Updates.
Plug the board in by USB and pick its serial port. This writes the bootloader, the 16 MB partition table and the app in one go — no esptool, no command line.
First flash over USB uses the full image — it writes the
bootloader, the 16 MB partition table and the app together:
esptool.py --chip esp32s3 write_flash 0x0 tripwire-node-factory.bin
A new board still carries the vendor's 4 MB layout, so writing only the
app would leave the partition table wrong. After the first flash the app
pushes updates over the node's own WiFi — no cable — and those use the
app-only image.