Factory reset¶
A factory reset wipes the device's persistent data partition — configuration, uploaded content
bundles, custom splash images, certificates, logs — back to defaults and reboots. The system
partitions (the OS itself, and whichever OTA slot is active) are not touched: a factory reset
doesn't undo an OTA update, it only resets what's on /data.
Reset via the API¶
curl -X POST http://10.99.0.1/api/v1/device/factory-reset \
-H 'Content-Type: application/json' \
-d '{"confirm": "<device serial>"}'
The confirm field must be the device's own serial number (from GET /api/v1/device) — this is
a deliberate speed bump so a factory reset can't happen from a stray/misdirected API call. Get
the serial first if you don't already have it:
The device wipes /data and reboots immediately once the request is accepted.
Web UI: System page → Factory reset — the UI prompts for confirmation before sending the
call (which is itself served from /data-independent state, so it works right up until the
reset happens).
Reset manually (no network/API access needed)¶
If the device is unreachable over USB (misconfigured network settings, broken proxy, etc.), you can trigger the same reset by hand:
- Power off the device and remove the SD card (or otherwise get the boot partition mounted on a PC — the boot partition is a plain FAT32 volume readable on Windows, macOS or Linux).
- Create an empty file named exactly
factory-resetat the root of that FAT32 partition (no extension, no content — its mere presence is the trigger). - Re-insert the SD card and power the device back on.
On the next boot, before mounting the data partition, the device detects the marker file, wipes
and reformats /data back to defaults, deletes the marker, and continues booting normally — you
don't need to remove the file yourself, and you don't need to touch it again after this one
reset.
What gets reset¶
| Reset to default | Not touched |
|---|---|
Device configuration (/data/config.json) — name, rotation, audio, proxy, NFC/Wi-Fi/Bluetooth settings, everything covered in Configuration |
The active OS/OTA slot and its version |
| Uploaded content bundles — all deleted | The other (inactive) OTA slot, if one exists |
Custom splash/boot/shutdown images — reverted to the built-in default; both splash.boot.enabled and splash.shutdown.enabled reset to their default of true |
The device's serial number and hardware identity |
| Uploaded certificates (CA chain, HTTPS server cert) | |
| Persistent logs | |
Wi-Fi/Bluetooth pairing state (/data/wireless/) |
After a factory reset, the device behaves exactly as a freshly flashed one: boots to the waiting page, no bundles, default splash, both radios off, management UI enabled.
See also¶
- Configuration — what a fresh/reset config document looks like.
- Updates (OTA) — the OTA slots that a factory reset does not affect.