Never run for the again.

Zügli sits in your home and watches the departures you care about. One line, a few, or your whole stop. It counts them down on a glowing LED panel, so you can see from across the room exactly when to leave. Live Swiss transit data, no app, built by you.

A single 64×64 panel, the same one Zügli lights up on your shelf.

Real Swiss times,
refreshed every 30 seconds.

Zügli polls the official transport.opendata.ch API for your stop and keeps the next three departures you're tracking. When one is running late, it counts down to the delayed time, not the timetable. The number glowing on the shelf by your door is the number on the platform.

This is what ships.

Two views come built in, shown here rendering the same three departures. These aren't mockups: both panels below draw the exact layout the firmware puts on the real 64×64 matrix, glyph for glyph.

The departure board.

Your stop up top, the next three departures under it: line, destination, and a live countdown. When one hits 0, a little tram rolls up in place of the minutes.

Focus view.

One connection, one big number. The whole panel counts down the departure you actually ride, with the one after it tucked into the footer.

Design the board,
dot by dot.

Not sold on the default? Open the visual layout builder right in your browser and lay out the panel exactly how you want it: drag things around, size them, colour them, and watch the real panel keep up as you go.

The layout builder open on a blank board, prompting to tap plus to add the first element.

Start from a blank board.

Tap + to drop in text, a live departure, a clock, the date, an icon or a divider.

A finished custom layout showing a station name, an icon and destination text on the 64 by 64 board.

Arrange it your way.

Drag every element around the 64×64 grid and resize it by the corners. The preview mirrors the panel live.

An element selected in the builder with a properties sheet for colour, alignment, font and scale.

Tune every element.

Tap any element to set its colour, alignment, font and scale. Hit Save and the board switches over on the spot.

Drag to explore

Three steps to the shelf.

1

Connect

Join the Zügli-Setup hotspot and hand it your home WiFi password. It joins, then reboots onto your network.

2

Choose

Open zugli.local, search your stop, and pick the connections you ride: one, a few, or the whole stop. Hit Save and the panel switches over live.

3

Watch

Set it on a shelf by the door. From now on it counts down your next departures, and you leave at the right minute, every time.

Set up from your phone in two minutes. No app, no account.

The config page is a plain website served by the board itself, so there's nothing to install and nothing to sign up for. Come back to zugli.local whenever you like to switch stops, change the connections you follow, or set the brightness and let it auto-dim at night. Every change goes live on the panel the moment you hit Save, no reboot needed.

The Zügli config page open in a phone browser at zugli.local, searching for a stop and picking the connections to track.

What's inside.

Five off-the-shelf parts. No custom boards and no soldering, just Dupont wires and a screwdriver.

ESP32-S3-DevKitC

The brain. WiFi, Rust firmware, drives the panel.

64×64 HUB75 panel

The display. A bright copper-on-black LED matrix.

5 V / 5 A power supply

Feeds the panel directly, with headroom for full brightness.

PSU adapter

Screw-terminal pigtail from supply to panel lugs.

Dupont cables

14 signal lines + ground, ESP32 to panel header.

That's the whole list.

Five parts, no custom hardware, nothing exotic.

What does it cost? ↓

Open source, top to bottom.

An ESP32-S3 driving a single 64×64 HUB75 panel, firmware written in Rust (no_std, Embassy). Every wire, pin and line of code is published. Build it exactly as documented, or change whatever you like. It's yours.

The back of the HUB75 LED panel with the ESP32-S3 microcontroller wired to it by a ribbon of jumper wires.

It all started with
a price tag.

The Tramli is lovely, and it's also the reason Zügli exists. It felt too expensive for what it does, so I set out to build the same idea for less. Here's how it shakes out.

Tramli
129CHF
Bought, ready-made.
vs
Zügli
85.50CHF
Built by you, in parts.
Save CHF 43.50, about a third cheaper

And you end up knowing exactly how it works, with firmware you can change whenever you want.

ESP32-S3-DevKitC19.90
64×64 HUB75 LED panel35.90
5 V / 5 A power supply18.90
PSU adapter1.90
Dupont cables8.90
Total partsCHF 85.50

All parts bought at Bastelgarage. Your shop and shipping may vary. The savings are in the parts, the rest is your time.

Build your own Zügli.

The full brief, wiring guide, firmware and config page are on GitHub. Gather the five parts, wire it up, flash it, and never sprint for the tram again.