An always-on dashboard for the Samsung Galaxy Z Flip 3 cover screen — it turns a phone with a dead main display into a 1.9" monitor that never sleeps: phone sensors, server health, token prices, weather, and incoming notifications.
Everything is configured from a browser on another machine; you never have to arrange anything on the tiny screen itself — in Indonesian or English, page and phone together.
512 × 260 — shown at actual size, captured off the real panel with ./fd shot.
📚 Full documentation → — install, configuration, widgets, themes, HTTP API, and everything else.
Pages rotate on a timer; these are four of them, straight off the cover screen. All are 512 × 260 — the
whole panel — and all use the pixel style with the everforest palette, which is one of 4 × 12
combinations (see Themes).
![]() |
![]() |
zeroserver — a Linux box scraped over the network through node_exporter: CPU, RAM, SoC temperature, disk, uptime. See Monitoring other servers. |
dunia — weather from Open-Meteo, crypto prices, and a clock widget spanning two cells. |
![]() |
![]() |
pasar — the Jakarta Composite index from Yahoo as a candle widget. The timeframe in the corner (1j × 32 — 32 hourly candles) is derived from the data's own timestamps, not hand-written. |
token — the same widget pointed at a Binance pair on a 4-hour timeframe. Both were installed from the Chart token tab without writing any config. |
The dashboard is configured from a settings page the phone serves itself on port 8099 — screenshots of every tab.
This Z Flip 3's main screen is broken; all that's left is the 1.9" cover screen. The phone itself is
perfectly healthy — Snapdragon 888, rooted, and already earning its keep as a small server (AdGuard Home,
Uptime Kuma, Tailscale exit node). Rather than let it die, that little screen became an always-on
monitor — no dependencies (just Canvas, org.json and HttpURLConnection, ~2.9 MB APK), configured
entirely over the network.
| What you want | How |
|---|---|
| Monitor a home server | A shell/http source against node_exporter — see Monitoring other servers |
| Clock + weather + room temperature | A clock widget, an Open-Meteo source, and the light/pressure sensors |
| Crypto & stock ticker board | Token charts: Binance, Indodax (IDR), Bitget, Bybit, OKX, Yahoo |
| Service up/down board | An http source in prom format against Uptime Kuma + the status widget |
| A notification board | ntfy.sh — messages chime and take over the screen |
| The phone's own health | Built-in metrics: battery, CPU, RAM, network, storage, Wi-Fi, SoC temperature |
| Anything with an API | An http source plus a JSON path, or shell when the data needs massaging |
┌── Phone (Galaxy Z Flip 3) ───────────────────────────────┐
│ │
│ DashService ── Engine ── data sources ──► Store │
│ (foreground) │ (http/shell/ │
│ wakelock │ device/sensor) │
│ watchdog ▼ │
│ │ DashActivity ── DashView ──► cover screen │
│ │ (display 1) (Canvas) │
│ │ │
│ ConfigServer :8099 ◄────────── browser on another machine│
│ (settings page + API) │
└───────────────────────────────────────────────────────────┘
A single JSON file is the source of truth. The settings page only ever writes that file; the phone watches it for changes and redraws without restarting.
Needs a rooted Z Flip 3 (Android 12+), JDK 17 and the Android SDK — full list in Install.
git clone <repo> flipdash && cd flipdash
echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties # adjust to taste
cp .fdrc.example .fdrc # adb serial & phone IP, or leave both blank
./fd deploy # build + install + launch on the cover screen
./fd ui # open the settings page in a browser| Install | Requirements, deploy, autostart |
| Settings page | The browser UI, tab by tab |
| Configuration · Language | config.json, every top-level setting, Indonesian/English |
| Data sources · Widgets · Themes | Reference |
| Charts · ntfy · Alarms | Features |
| Screen modes · Behaviour | How it behaves on the phone |
fd & HTTP API · Development · Security |
Hacking on it |
FlipDash's code is MIT — see LICENSE.
Fonts are bundled under app/src/main/assets/fonts/, all under the SIL Open Font License 1.1 (the
license texts ship alongside them): Fira Sans & Fira Code (the settings page), Press Start 2P
(the pixel style), VT323 (the terminal style).
Palette colour values come from their respective theme projects (Catppuccin, Nord, Dracula, Gruvbox, Tokyo Night, Rosé Pine, Everforest, Solarized). Navigation icons follow the Lucide style (ISC), written inline as SVG.





