Answer a few questions and this generates one install script for your Raspberry Pi Zero W — Wi-Fi, display driver, station, and refresh timing all baked in.
Station
Enter the NOAA station ID for your tide station — find yours at tidesandcurrents.noaa.gov/map. Defaults below are just a generic example (San Francisco, CA); change them to your own station.
Display hardware
Pick your panel if you know it. If not, choose "Decide later" — the script will run in preview mode (saves a PNG instead of drawing to a screen) until you rerun it with a driver selected.
Picking the wrong model here is the single most common cause of a garbled or partial-looking display — the code will run without any error, since it has no way to know it's talking to different hardware than expected. If your panel has 4 physical buttons on it, that's the 2.7" — none of the other four sizes have onboard buttons.
The 2.7" specifically ships as two genuinely different hardware revisions that need different drivers — check the panel's own circuit board for a small "Rev" label (e.g. "Rev 2.2" is the V2 revision). If you're not sure, or there's no visible label: try V1 first, and if the display never updates at all despite the service running with no errors, that specific symptom is the signature of this exact mismatch — switch to V2 and it should start working immediately, no other changes needed.
"Both" needs real room to keep each half legible — it automatically falls back to just the tide curve on the 2.13" and 2.9" panels regardless of this setting.
Show sunrise/sunset marks on the tide curve
Wi-Fi networks
Add every network the Pi should be able to join — home, a mobile hotspot, wherever it might travel. Listed first = highest priority.
Disable Wi-Fi power-save (recommended — the Pi Zero W's Wi-Fi chip is known to intermittently drop connections when its power-save mode kicks in during idle moments; this trades a small amount of extra power draw for a much more reliable connection)
Refresh interval
Tide predictions change slowly — there's no benefit to refreshing more than every 10–20 minutes, and it adds wear to the e-ink panel.
10 min
20 min
30 min
60 min
Device
If you're setting up more than one of these, give each one a different hostname (e.g. "tidewatch2") — this defaults to the same value every time, so two devices left at the default will both show up on your network with the same name, and things like SSH and .local addresses will unpredictably land on whichever one happens to answer first.
Web config
Installs a small page at http://<hostname>.local:8080 where you can change settings (station, refresh interval, flip, PiSugar) from a browser instead of SSH. Logging in requires physical access to the device: clicking "Show PIN on display" generates a fresh, single-use PIN and shows it on the actual e-ink panel — there's nothing to configure here, and no fixed password sitting in a file to worry about.
Wi-Fi fallback hotspot
If none of the Wi-Fi networks you configured are reachable — the device gets moved, a router changes — this makes the Pi broadcast its own network so it's still reachable, rather than going dark. It checks periodically and switches back on its own once a known network is available again.
Enable fallback hotspot
No password to set here — one is randomly generated and shown on the device's own display each time the hotspot actually activates, so it's only ever knowable by looking at the device. Once connected, reach it at http://10.42.0.1:8080.
If you're setting up more than one of these, give each one a different name here too — otherwise, if two devices both lose Wi-Fi around the same time, they'll broadcast identical, indistinguishable networks. The address you connect to afterward (10.42.0.1) is also the same on every device, so a unique name here is the only way to know which physical device you're actually about to configure.
Battery
If you've got a PiSugar battery HAT attached, the install script will set up pisugar-server and the display will show a battery icon and percentage next to the last-updated time.
I have a PiSugar battery HAT attached
PiSugar's installer normally stops to ask which model you have — pasting the whole script at once means that prompt never gets a chance to be answered. For the four listed models, the script answers it for you automatically. For S/S Plus/3 Plus, PiSugar doesn't document a non-interactive answer, so the installer runs as a separate step at the end instead, where its prompt can actually reach you.
Your script is ready
Flash Raspberry Pi OS Lite to your SD card, boot the Pi Zero W, and SSH in.
Copy the script below and paste it into your SSH session (or download the file instead).
Run chmod +x install.sh && ./install.sh and let it finish.
Reboot — the display service starts automatically from then on.