Skip to content

Boot and shutdown splash

The device paints a branding image directly to the screen very early in boot (before the kiosk browser has even started), keeps showing it on shutdown, and reuses the same image as the waiting page's logo and as an image any displayed page can reference. This page covers uploading your own branding and toggling the splash on/off.

Upload a boot splash image

curl -X PUT http://10.99.0.1/api/v1/files/splash \
  --data-binary @logo.png \
  -H 'Content-Type: image/png'
  • PNG only, max 4 MB. The device sniffs the actual file bytes (not the filename or the Content-Type header) and rejects anything that isn't a valid PNG with 400 bad_request (oversize gets 413).
  • Takes effect immediately on the waiting page and on any page referencing the mcd: splash scheme (see below) — no reboot needed for that. It takes effect on the boot splash itself starting from the next boot (the boot painter reads the file from disk very early, before the API is even up).

Web UI: Files page → Splash image → upload.

Upload a shutdown splash image

curl -X PUT http://10.99.0.1/api/v1/files/splash/shutdown \
  --data-binary @shutdown-logo.png \
  -H 'Content-Type: image/png'

Same constraints (PNG, 4 MB). If no shutdown image is uploaded, the device falls back to the boot splash image, and if that's absent either, to the built-in default image — so there's always something sensible to show, never a blank frame during a controlled shutdown.

Web UI: Files page → Shutdown splash image → upload.

Check or download the current images

curl http://10.99.0.1/api/v1/files/splash          -o current-splash.png
curl http://10.99.0.1/api/v1/files/splash/shutdown  -o current-shutdown.png

Downloads the bytes currently in effect (falling back through the chain above), with Content-Type matching the actual stored image.

Revert to the built-in default

curl -X DELETE http://10.99.0.1/api/v1/files/splash
curl -X DELETE http://10.99.0.1/api/v1/files/splash/shutdown

Web UI: Files page → Reset to default.

Enable or disable the splash screens

By default both the boot and shutdown splash are enabled. Turn either off via configuration:

curl -X PATCH http://10.99.0.1/api/v1/config \
  -d '{"splash": {"boot": {"enabled": false}, "shutdown": {"enabled": true}}}'

Both fields are reboot_required (the boot splash step and the shutdown-splash step both run during the corresponding lifecycle transition, so a change only takes effect the next time that transition happens). When the boot splash is disabled, the screen simply stays black until the kiosk browser's first frame instead of showing the logo.

Referencing the splash image from a displayed page

Any page shown by the device — bundle or remote URL — can reference the same stored images through a special read-only URL scheme, without needing to know whether an image was actually uploaded:

<img src="mcd:splash.png">
<img src="mcd:shutdown.png">

or from JavaScript via the page channel helper:

window.mcd.splashUrl          // "mcd:splash.png"
window.mcd.shutdownSplashUrl  // "mcd:shutdown.png"

These always resolve to something (falling back through the same chain as the download endpoints above down to the built-in default), work from any origin without CORS or mixed-content issues, and update live — the waiting page, for instance, swaps its logo immediately (no reload) when a new image is uploaded, via the splash_changed event (see Events).

What "boot splash" actually looks like

On power-up, before Linux userspace has even started displayd, an early boot step paints the current splash image centered on a black background directly to the display (this is what makes boot-to-splash fast — it doesn't wait for the browser). The image stays on screen, without flicker, until the kiosk browser is ready to show its first frame (the waiting page, by default), at which point the browser takes over the display seamlessly. The shutdown splash works the other way: it's painted as the very last visible thing during a controlled shutdown and stays up until the device powers off.

See also