Skip to content

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:

curl http://10.99.0.1/api/v1/device | grep serial

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:

  1. 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).
  2. Create an empty file named exactly factory-reset at the root of that FAT32 partition (no extension, no content — its mere presence is the trigger).
  3. 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.