← Tim Vasil

Features

This is a personal hardware + software project, inspired by TheFlightWall, with the goal of pulling as much interesting live data from the internet as possible to showcase on a wide LED display over my living room fireplace. It started with a simple question, “What’s that ship passing by in San Diego Bay?,” but now answers all sorts of questions including “What’s the best time to walk the dog today?” and “What are the trending streaming shows?”

I built the display from seven 64 × 64 LED panels, driven by a Raspberry Pi. That gives me 448 × 64 pixels to work with, which is an interesting constraint (and aspect ratio) for 40+ apps! Nonetheless, I was able to take advantage of a 30 fps frame rate (on a 100+ Hz panel refresh) with full 24-bit color to craft some pretty slick visuals and animations, including map imagery that zooms and pictures of baseball players during live games.

The intro splash screen as LumiBridge boots, with sound.
The Home launcher in icon mode: a row of app icons with names beneathThe Home launcher in live mode: Autoplay, a ship, drive times, site visitors, Chats, CPI, and the grid mix
The Home screen alternates between app icons and a dashboard of live updates.

Photos

The LumiBridge display in its frame on a sideboard beneath an abstract painting, showing a baseball line score with the diamond and the pitcher and batter
LumiBridge framed and ready for mounting, showing the play-by-play of a Padres game along with real-time prediction market odds of victory.
The seven panels laid face down in a row on a glass dining table, ribbon cables and red and black power leads between them, with the power supply, fuse block and a laptop at the far end
Early assembly on the dining table: daisy-chaining displays and contemplating power hookups.
The back of the frame during the build: panels on a rail, red and black power pairs and grey ribbon cables, the power supply at the top
From behind, near the end of the build: panels secured to steel rails, and the rails secured to the frame.
Looking along the back of the frame: ribbon cables zip-tied along the rail down to the Raspberry Pi
Lumi’s close up close to finished: all parts secured inside the frame.

Apps

Select an app for screenshots, capabilities, configurability, and data sources. Home and Autoplay come first; the rest are alphabetical. Use the arrow keys to browse between apps.

Home

Browse apps or see their latest updates at a glance.

Home on the display, view 1

Capabilities

  • The launcher shows seven apps per page. Use the arrows to browse and OK to open an app; Home returns here from anywhere.
  • Back switches between app icons and a dashboard of live snapshots, refreshed every minute.
  • Hold OK to move an icon. Pause adds or removes the selected app from Autoplay.

Settings and setup

  • Live dashboard on or off; the selection is remembered
  • Icon order, set by moving tiles with the remote and saved to config
  • Apps included in Autoplay, selected with Pause on Home or in the Auto tab
  • Intro splash on boot (config.yaml)

Autoplay

Let the display decide what’s worth showing next.

Autoplay on the display, view 1

Capabilities

  • Apps report a priority from 0 to 1. An approaching trolley or a ship entering the bay can take precedence over less timely content.
  • Urgent content can interrupt after the current app has had its minimum screen time. Red flashes at the edges draw attention to imminent events.
  • Start Autoplay from Home or by holding Home. It can also start at boot or after the remote has been idle; apps without timely updates take turns between higher-priority content.

Settings and setup

  • Apps included in the rotation
  • Default and maximum time per app
  • Minimum seconds before an urgent app may interrupt, and the interrupt threshold (0-1)
  • Fade between apps, in seconds (0 for a hard cut)
  • Idle minutes before autoplay starts on its own (0 = never)
  • Whether to enter autoplay automatically when the server starts
  • Current app priorities and display history

Birds

Recent bird sightings nearby, including the unusual ones.

Birds on the display, view 1

Capabilities

  • Each sighting includes a photo, species name, count, time and location, with up to four species per page.
  • Rare sightings are labeled, with unconfirmed reports marked separately. Show them first or limit the display to rarities.
  • Search near the display or another location. Each species appears once, even when it has several reports.

Settings and setup

  • Search location: the display, a place name or a US ZIP code
  • Search radius in km and how many days back
  • Columns per page: one full-width card, or two to four per page
  • Time per page
  • Minutes between refreshes
  • Show photos, rarities first, or rarities only
  • Font
  • eBird API key via environment or config.yaml

Data sources

  • Cornell Lab eBirdAPI Nearby sightings and rarity reports; requires an API key.
  • WikipediaAPI Species photos from Wikipedia articles.

Books

Best sellers and new releases from the New York Times and Apple Books.

Books on the display, view 1

Capabilities

  • Browse fiction, nonfiction, audiobooks and free books, with covers and chart positions.
  • Open a book’s details for its author, genres, ratings and summary. Books on both charts appear as one entry.
  • Press Pause for a QR code linking to the book.

Settings and setup

  • Which cards run and in what order (listings, top and new per kind)
  • Region for Apple’s charts
  • Books per list
  • Age limit for new releases
  • Time per view
  • Minutes between refreshes
  • Font
  • NYT Books API key via environment or config.yaml

Data sources

  • Apple Books chartsRSS Charts for paid books, free books and audiobooks.
  • iTunes lookup and searchAPI Book details and search results.
  • NYT BooksAPI Best-seller lists; requires an API key. Apple charts provide a fallback without one.

Cameras

Snapshots from Ring cameras, one at a time or in a grid.

Screenshot coming soon

Capabilities

  • Rotate through cameras with a slow pan and fade, or show several together.
  • Snapshots refresh while the app is on screen. Cameras reported offline are omitted.
  • These are still images, not a live video feed.

Settings and setup

  • Which cameras to show, or all of them
  • Layout: rotate full screen one at a time, or grid with all cameras at once
  • Snapshot refresh interval in seconds
  • Show or hide the camera name
  • Seconds per camera, fade style (cross-fade, through black, through white) and fade seconds
  • Ring Partner API credentials and a guided account-linking command
  • Diagnostics listing each camera’s status and last snapshot

Data source

  • Ring Partner APIAPI Camera snapshots through a linked Ring account.

Cars

Battery, range and charging status for Teslas.

Screenshot coming soon

Capabilities

  • Each vehicle shows its battery level, range, location and whether it’s charging, driving or parked.
  • Additional details include temperature, mileage, lock status and Sentry Mode.
  • Sleeping cars retain their last reading, labeled as asleep. Waking them for fresh data is optional, since doing so uses battery.

Settings and setup

  • Link or unlink a Tesla account
  • Discover vehicles and check which to show
  • Units: miles or kilometers
  • Seconds per vehicle when cards page
  • Poll interval in seconds
  • Wake sleeping vehicles for fresher data (off by default)
  • Home location and home radius in miles
  • Diagnostics: status, battery and last poll per vehicle

Data sources

  • Tesla Fleet APIAPI Vehicle readings through a linked Tesla account.
  • Tesla compositorUnofficial Vehicle images from the undocumented service used by Tesla’s configurator.

Chats

Ask a question or tell LumiBridge what to show.

Chats on the display

Capabilities

  • Speak through a microphone and hear the answer through the speaker, with a transcript on the display.
  • Voice commands can switch apps and adjust display settings. The microphone stays open briefly after switching apps so you can follow up.
  • Hold Pause to open Chats; Back returns to the previous app. Chats is excluded from Autoplay, and idle conversations go to sleep.

Settings and setup

  • Gemini Live model
  • Voice, or the model default
  • Allow interruptions while Lumi speaks, for use with a headset or echo-canceling microphone
  • Persona: a paragraph about the household, neighborhood, or tone of voice
  • How long the microphone stays open after a voice command switches apps
  • Idle time before the conversation goes to sleep
  • Type a line into the live conversation, copy or clear the transcript
  • Gemini API key via environment or config.yaml

Data sources

  • Google Gemini LiveAPI Voice conversations and display commands; requires a Gemini API key.
  • Microphone and speakerDevice Audio input and output on the Pi, connected to the Gemini voice session.

Clocks

World clocks and a map of where it’s day or night.

Clocks on the display, view 1

Capabilities

  • Show saved locations as analog or digital clocks, with sunrise, sunset and local sky colors.
  • The world map labels each city with its time and pans to include locations that don’t fit together.
  • Time zones account for daylight saving time. Sunrise and sunset are calculated locally.

Settings and setup

  • Locations: search a city to add, drag to reorder, and edit each title
  • Look: classic clocks side by side, or world map
  • Style: analog, digital (12-hour), or 24-hour
  • Show seconds (sweeping hand or seconds digits)
  • Font

Data sources

  • Local computationLocal System time, time-zone data and locally calculated sunrise and sunset, with a bundled world map.
  • Open-Meteo geocodingAPI Coordinates for place-name searches, without an API key.

Commits

GitHub contributions and recent repository activity.

Commits on the display

Capabilities

  • Browse contribution graphs by year, with totals and current and longest streaks.
  • An activity feed includes commits, pull requests, issues, comments and releases, along with activity from followed users and watched repositories.
  • Show your own account or another user’s public activity.

Settings and setup

  • GitHub username, or blank for the token’s own account
  • GitHub personal access token in the environment or config
  • Choose and reorder cards (heatmap, activity)
  • Seconds per card
  • Refresh interval in minutes
  • Display font
  • Diagnostics showing fetch status

Data sources

  • GitHub GraphQLAPI Contribution history; requires a personal access token.
  • GitHub REST eventsAPI Repository and user activity, using the same token.

Crafts

The ships and aircraft around San Diego Bay.

Crafts on the display, view 1

Capabilities

  • Ship cards show the name, flag, heading, speed and vessel type. Aircraft cards add altitude, aircraft type and route.
  • A map shows the surrounding traffic, then zooms in on individual ships and planes.
  • Local AIS reception can be combined with an online ship feed. Aircraft positions come from an online ADS-B feed; configured alert zones identify traffic worth interrupting for.

Settings and setup

  • Ships, aircraft, or both
  • Mode: cards, map overview, or mix (alternate), plus the map style
  • Time per ship or aircraft, with a separate duration for alerts
  • Center point and radius for aircraft; minimum altitude; minimum knots for a ship to count as moving
  • Alert zones for ships and aircraft
  • Overview, closeup and mix-switch seconds, and the closeup map zoom
  • Refresh interval and age limit for ship and aircraft readings
  • Ship tracking bounds and API keys in config.yaml; feed and source health shown on the tab

Data sources

  • AIS-CatcherRadio Ship positions decoded from the radio and VHF antenna.
  • aisstream.ioAPI Optional AIS data from other receivers; requires an API key.
  • adsb.lolAPI Aircraft positions from a community ADS-B network.
  • Route and aircraft lookupsUnofficial Route information from adsb.lol’s VRS data and aircraft types from adsbdb.com.
  • Map tilesUnofficial Esri World Imagery, CARTO, OpenStreetMap or OpenTopoMap, depending on the selected style.

Currents

California’s electricity supply, demand and prices.

Currents on the display

Capabilities

  • See the generation mix, including how much comes from renewables, alongside power flowing to batteries or out of state.
  • Charts show demand and generation through the day, plus forecasts and electricity prices for the selected pricing location.
  • Grid alerts appear across the views, and older data is marked as stale.

Settings and setup

  • Which cards show (mix, today, price) and their order, with drag to reorder
  • Pricing node: NP15, ZP26 or SP15 hub, or the PG&E, SCE or SDG&E load area
  • Seconds per card
  • Refresh interval in minutes
  • Font
  • Diagnostics showing the latest reading, demand, renewable share and price

Data sources

  • CAISO Today’s OutlookUnofficial Generation, demand and grid status from the files behind CAISO’s website.
  • CAISO OASISAPI Electricity prices for the selected pricing location.

Drives

Drive times to saved destinations and waits at nearby border crossings.

Drives on the display, view 1

Capabilities

  • See travel times in both directions, with congestion compared to a typical trip at that hour.
  • Check later departure times to see how historical traffic might affect the drive.
  • Nearby US border crossings show vehicle and pedestrian waits. Autoplay can prioritize drives that are taking longer than usual.

Settings and setup

  • Destinations by address or place name, dragged into order, each with a label and its own origin
  • Departure times to forecast, and how long a forecast holds before snapping back to now
  • Rows per page and seconds per page
  • Refresh minutes on screen, idle, and for forecasts, plus the daily request budget
  • Minutes worse than usual before joining autoplay, or always join
  • Border waits on or off, the radius in miles, and refresh minutes
  • Font
  • TomTom API key

Data sources

  • TomTom RoutingAPI Current and forecast drive times; requires an API key. Requests are limited by a configurable daily budget.
  • CBP Border Wait TimesUnofficial Vehicle and pedestrian waits from the feed behind CBP’s website.

ETAs

Upcoming departures from saved transit stops.

Screenshot coming soon

Capabilities

  • Combine related stops into one board, with a countdown to the next departure and a list of those that follow.
  • Separate columns keep buses, trolleys and other transit modes easy to scan. Live estimates and delays are marked.
  • Departures approaching the warning window are highlighted. The app leaves Autoplay when there are no more departures to show.

Settings and setup

  • Data provider, server, and API key
  • Find stops around a location (with radius) or by the stop code on the sign
  • Cards that combine stops, with labels and optional route filters
  • Transit modes to show as columns: light rail, subway, rail, bus, ferry, cable, monorail
  • Approach warning minutes and departure horizon minutes
  • Seconds per card and display font
  • Refresh seconds on screen and refresh minutes off screen

Data sources

  • OneBusAway (San Diego MTS)API Live arrivals for MTS stops; requires an API key.
  • TransitlandAPI An alternative transit provider; requires an API key and refresh settings appropriate to its request allowance.

Events

Upcoming calendar events, as individual cards or a list.

Events on the display

Capabilities

  • Event cards include the title, time, location and description, with dates marked on a month calendar.
  • The list view lets you browse by event or date and open details with OK.
  • Connect iCloud calendars, including accepted shared calendars, or add iCal feeds from Google Calendar and other providers.

Settings and setup

  • Layout: cards (one event at a time) or table (chronological list)
  • Seconds per event, days ahead to show, and minutes between refreshes
  • Which discovered Apple calendars to show
  • iCal feeds to add or remove, each with an optional display name
  • A display name and color per calendar
  • Font
  • Apple ID and app-specific password in config.yaml
  • Per-calendar fetch status and upcoming counts in diagnostics

Data sources

  • iCloud CalDAVAPI iCloud calendars, using an Apple ID and app-specific password.
  • ICS feedsiCal Calendar feeds, including Google Calendar’s private iCal links.

Fires

Nearby wildfires, mapped with containment and acreage.

Fires on the display, view 1

Capabilities

  • Browse individual fires, a regional map or a list ordered by distance, with reported containment and available incident details.
  • Larger fires include mapped perimeters. Optional satellite hotspots show recent detections.
  • An activity chart shows how hotspot detections have changed over time.

Settings and setup

  • Home location to center on (search a place or US zip)
  • Nearby radius and region radius in km
  • Minimum acres to show and whether to include prescribed burns
  • Hotspot days window for satellite detections
  • Optional NASA FIRMS map key for hotspots
  • Choose, reorder and hide cards (local, region, list, activity)
  • Map style, units (miles or km), seconds per view, refresh minutes and font
  • Diagnostics table listing each fire with containment, distance and start time

Data sources

  • NIFC WFIGSAPI Reported wildfire incidents and perimeters from the National Interagency Fire Center.
  • NASA FIRMSAPI Optional satellite hotspot detections; requires a map key.
  • Map tilesUnofficial OpenStreetMap for the background map.

Flicks

Trending movies and shows, new releases and where to stream them.

Flicks on the display, view 1

Capabilities

  • Browse trending titles and recent releases available in the selected region.
  • Each title includes artwork, a synopsis, ratings and streaming services. Optional OMDb data adds IMDb, Rotten Tomatoes and Metacritic scores.
  • Press Pause for a QR code to the title’s TMDB page.

Settings and setup

  • Which cards run and in what order (movies, TV, trending, new)
  • Region for streaming availability, from the countries TMDB covers
  • Titles per list (up to TMDB’s page of 20)
  • Age limit for new releases
  • Time per view
  • Minutes between refreshes
  • Font
  • TMDB key (required) and OMDb key (optional) via environment or config.yaml

Data sources

  • TMDBAPI Titles, artwork and streaming availability; requires an API key. Streaming-provider data is credited to JustWatch.
  • OMDbAPI Optional IMDb, Rotten Tomatoes and Metacritic ratings; requires an API key.

Forecasts

Weather forecasts, rain radar and the best hours for a walk.

Forecasts on the display, view 1

Capabilities

  • Show a seven-day forecast and hourly conditions for up to eight locations.
  • A walkability score combines feels-like temperature, rain, wind, air quality, UV and dew point. Press OK to see how each factor contributes.
  • Hourly views also cover temperature, wind, UV, air quality, humidity and pressure. Animated radar joins the rotation when rain is nearby.

Settings and setup

  • Up to 8 locations: the display’s own, a 5-digit US zip, or a city by name
  • Optional label per location that overrides the place name
  • Drag locations into the order the display cycles through
  • Seconds per view
  • Forecast refresh minutes
  • Display font
  • Radar map style
  • Diagnostics per location

Data sources

  • Open-MeteoAPI Weather forecasts and air-quality data, without an API key.
  • Zippopotam.usAPI Coordinates for US ZIP codes.
  • RainViewerAPI Recent rain radar imagery.
  • Map tilesUnofficial OpenTopoMap for the background map.

Games

Games adapted to a very wide screen and a small remote.

Games on the display, view 1

Capabilities

  • Play Dr. Lumi, Snake, Breakout, Pong, Lum-Man, Hermie’s Adventure, Sudoku, Tic-Tac-Toe, Connect 4 and, yes, DOOM.
  • The menu shows AI-played demos. Opponent and difficulty options vary by game, with some supporting two people sharing the remote.
  • High scores and records are saved. Leave a game and it pauses until you return.

Settings and setup

  • Choose games and their order
  • Opponent or difficulty per game, including two-player mode for the board games
  • Pong’s winning score and Hermie’s maze generator
  • Dr. Lumi starting level and music choice
  • DOOM gamma and music volume
  • Seconds per demo card on the menu
  • View and reset high scores, plays and time played per game or all at once

Data sources

  • doomgenericLocal DOOM runs on the Pi through this portable port of Chocolate Doom, with a LumiBridge platform layer for the display, remote and sound.
  • FreedoomLocal The free game data DOOM plays by default, downloaded once at setup. An original DOOM WAD can be dropped in instead.

Goals

Apple Fitness activity for each person in the household.

Goals on the display

Capabilities

  • Move, Exercise and Stand rings appear beside hourly activity, steps and workout details.
  • Several people can appear side by side, each with their own goals.
  • Health Auto Export sends updates from each phone. The display keeps the latest data through restarts and flags phones that haven’t reported for a day.

Settings and setup

  • People to include, with an ID and display name
  • Move goal in calories, exercise goal in minutes and stand goal in hours per person
  • Display font
  • Web-sized view of today’s rings, chart and workouts per person
  • Freshness indicator showing how recently each person’s phone reported

Data source

  • Health Auto ExportPhone Apple Health data sent by an automation on each person’s phone to the display over the local network.

Locks

Door lock status, battery levels and remote control.

Locks on the display

Capabilities

  • Schlage WiFi and Tuya or Smart Life locks share one display, with distinct states for locked, unlocked and jammed.
  • Select a door with Left/right and press OK to lock or unlock it. The indicator animates while awaiting confirmation.
  • Battery warnings flag low charge, and stale readings turn gray.

Settings and setup

  • Schlage account email and password
  • Tuya cloud project credentials, device ids and regional API base
  • Rename any door for the screen
  • Seconds per page
  • Refresh interval in minutes
  • Display font
  • Diagnostics table of each door’s source, state, battery and last change

Data sources

  • SchlageUnofficial Lock readings and commands through an unofficial client, using the account’s email and password.
  • Tuya CloudAPI Smart Life locks through Tuya’s API; requires cloud-project credentials.

News

Headlines from selected outlets and RSS feeds.

News on the display, view 1

Capabilities

  • Use up to four rows, each with its own sources, colors and animation.
  • Headlines can scroll, slide up, appear as captions or use individual cards, with the outlet identified alongside.
  • Filter out older stories. In card mode, pausing can show a QR code to the article.

Settings and setup

  • Add, remove and reorder news rows
  • News sources for each row, including custom RSS feeds
  • Animation, text color, background color, scroll speed and seconds per page per row
  • QR code to the article when paused, for card rows
  • Font, with anti-aliased or crisp pixel text
  • Refresh minutes, headlines per source and maximum story age in hours
  • Add your own fonts by dropping files into the app’s fonts folder

Data sources

  • Publisher RSS and Atom feedsRSS Headlines from selected publishers and custom feed URLs.
  • Google News RSSRSS Feeds for AP, CNN and the Desert Sun.
  • Favicons and lead imagesUnofficial Outlet icons from Google’s favicon service and article images from news feeds.

Odds

Prediction market odds and how they’ve changed.

Odds on the display, view 1

Capabilities

  • Follow markets from Polymarket, Kalshi and Manifold, with labels distinguishing real-money and play-money markets.
  • See a single probability or compare the leading outcomes of an event, with history charts.
  • Combine matching questions from different markets to compare their odds. Use Left/right to change the chart’s time range.

Settings and setup

  • Search Polymarket and Kalshi together, or paste a market link, to add a market or event
  • Add a whole event or just one of its outcomes as its own card
  • Drag the market list to set the rotation order
  • Tick two to four entries to merge them into one card with an optional label
  • Seconds per view and refresh interval in minutes
  • Default chart zoom
  • Font

Data sources

  • PolymarketAPI Market odds from the Gamma API and, where used, price history from the CLOB API.
  • KalshiAPI Market odds and available history from public API endpoints.
  • ManifoldAPI Market probabilities from its public API.

Photos

A slideshow of uploaded photos.

Photos on the display

Capabilities

  • Photos fill the display, panning across images that don’t fit its proportions.
  • Choose the order and time per image, with crossfades or transitions through black or white.
  • Uploads are resized for the display and kept across deployments.

Settings and setup

  • Upload images
  • Reorder images
  • Delete images
  • Seconds per image
  • Fade style (cross-fade, through black, through white)
  • Fade duration in seconds

Polls

Compare election forecasts by race or forecaster.

Polls on the display, view 1

Capabilities

  • Seat bars show ratings from safe seats through toss-ups, with party totals and a majority marker.
  • Group the display by forecaster to compare chambers, or by race to compare forecasters.
  • Views cover Senate, House, governor and presidential races, with animated transitions between forecasts.

Settings and setup

  • Card layout: one forecaster per card or one race per card
  • Which races appear (Senate, House, Governor, President) and their order
  • Which forecasters to include, chosen from those found on the enabled races
  • Time per card and transition duration
  • Refresh interval in minutes
  • Font

Data sources

  • 270toWinUnofficial Forecast data read from election pages; depends on their page structure.
  • Polymarket gatewayUnofficial Market data used by 270toWin’s Polymarket view.

Pumps

Gas and EV charging prices across the US.

Pumps on the display, view 1

Capabilities

  • Maps compare state prices, with historical gas-price snapshots and the least and most expensive states.
  • Track gas prices by grade for selected metro areas or states, including changes and record highs.
  • The display can automatically select the nearest metro area.

Settings and setup

  • Choose and reorder cards (map, ev, metros)
  • Add metro areas or whole states to track, or the one nearest the display
  • Which grades to chart (regular, mid-grade, premium, diesel)
  • Seconds per card
  • Refresh interval in minutes
  • Display font
  • Diagnostics table of today’s prices by place

Data sources

  • AAA Gas PricesUnofficial Gas and EV charging prices read from AAA’s website; depends on its page structure.
  • Open-Meteo geocodingAPI Coordinates for place-name searches, without an API key.

Quakes

Recent earthquakes near saved locations and around the world.

Quakes on the display, view 1

Capabilities

  • Local views show magnitude, time, depth and distance, with markers sized by magnitude and colored by age.
  • Compare nearby activity with significant earthquakes worldwide, or chart activity over the selected period.
  • USGS tsunami messages, PAGER alerts and felt reports appear when available.

Settings and setup

  • Places of interest, each a searched place or US zip, or the display’s own location
  • Search radius, minimum magnitude and days to look back
  • Worldwide feed: significant quakes this month or magnitude 4.5+ this week
  • Which cards show (local, world, activity, list) and their order
  • Map style and distance units in miles or kilometers
  • Seconds per view and refresh interval in minutes
  • Font

Data sources

  • USGS FDSN event serviceAPI Earthquakes around saved locations.
  • USGS summary feedsAPI Worldwide earthquake reports.
  • Map tilesUnofficial OpenTopoMap for the background map.

Rates

Economic indicators with enough history to put them in context.

Rates on the display

Capabilities

  • Follow inflation, interest rates, mortgages, unemployment, Treasury yields, gas and home prices.
  • Individual charts and a summary dashboard show the latest readings and changes, with ranges from one year to the full available history.
  • Reference lines show targets and rate ranges. Optional release dates and Fed-decision market odds add context to what’s coming next.

Settings and setup

  • Which indicators show and their order, with gas and home prices off by default
  • Starting chart range
  • Seconds per card and refresh interval in minutes
  • Font
  • Toggle the next Fed meeting’s odds on the fed funds card
  • Optional FRED API key so monthly indicators show their next release date

Data sources

  • FRED graph CSVUnofficial Historical economic data from the St. Louis Fed’s chart exports.
  • FRED APIAPI Optional release dates; requires an API key.
  • KalshiAPI Market odds and available history from public API endpoints.

Scores

Baseball scores, play-by-play and prediction market odds.

Scores on the display, view 1

Capabilities

  • Follow selected MLB teams, with recent and upcoming games and live play-by-play.
  • Live views include pitcher and batter photos, along with game-win odds when a Polymarket market is available.
  • Division standings provide context beyond the current game.

Coming soon: Scores for additional sports

Settings and setup

  • Up to 12 MLB teams to follow, dragged into the order they cycle
  • Hours before and after now that define the recent and upcoming game window
  • Seconds per card
  • Refresh minutes, live refresh seconds and standings refresh minutes
  • Show or hide division standings
  • Font
  • Diagnostics for each feed with status, size and last fetch

Data sources

  • MLB Stats APIAPI Schedules, scores, standings and play-by-play from MLB’s undocumented API.
  • MLB headshotsUnofficial Pitcher and batter photos from MLB.
  • PolymarketAPI Market odds from the Gamma API and, where used, price history from the CLOB API.

Settings

Brightness, audio, fonts and map styles.

Settings on the display

Capabilities

  • Use Left/right to select a setting and Up/down to adjust it. Changes apply immediately.
  • Set brightness, speaker volume and microphone gain, plus the default font and map style used by apps.
  • Audio device selections and volume are saved for the next startup.

Settings and setup

  • Brightness, volume and mic gain sliders
  • Speaker and microphone, which can be different devices
  • Volume control backend: automatic, macOS or ALSA
  • ALSA mixer control, automatic or a specific one
  • System default font
  • System default map style

Stars

Track the ISS and see what’s above the horizon.

Stars on the display, view 1

Capabilities

  • An ISS map shows its position and ground track, with altitude, speed and upcoming passes for the selected location.
  • During a pass, the display shows its direction and elevation. Predictions indicate whether a pass should be visible.
  • A sky view includes planets, the Moon, bright stars and constellations. ISS positions are calculated locally from saved orbital data.

Settings and setup

  • Observer location, defaulting to the display’s own
  • Mode: ISS, Sky or Mix
  • Seconds per view and font
  • Map style for the ISS map
  • Minimum pass elevation, so horizon-hugging passes are skipped
  • Constellations on or off, sky field of view and starting azimuth
  • A list of upcoming ISS passes with local times

Data sources

  • Where The ISS AtAPI Orbital data used to calculate ISS positions and passes locally.
  • CelesTrakUnofficial A fallback source for ISS orbital data.
  • Map tilesUnofficial Esri World Imagery for the world map.

Stats

The Pi’s health and a view of the local network.

Stats on the display, view 1

Capabilities

  • Gauges show CPU load, temperature, memory, disk use and network traffic.
  • Ping charts track latency and packet loss for selected hosts, with history from five minutes to 24 hours.
  • A network view lists discovered devices. History builds while the app runs, including outages overnight.

Settings and setup

  • Which of the three cards show and in what order, with drag to reorder
  • Ping targets as host or IP plus a label, with Cloudflare, Google, HackerNews and the BBC preset
  • Seconds per card and the default ping history window
  • Ping interval and how many minutes of history to keep
  • Device discovery interval and age limit for saved readings
  • Full-scale Mbps for the network gauge and the temperature gauge’s min and max
  • Font, plus a diagnostics table of per-target latency, loss and the devices last seen

Data sources

  • The Pi itselfLocal CPU, temperature, memory, disk and network readings through psutil.
  • PingDevice Latency and packet-loss measurements for selected hosts.
  • LAN scanDevice Local device discovery using the network neighbor table and name lookups.

Stocks

Stock prices, historical charts and a market-cap heatmap.

Stocks on the display, view 1

Capabilities

  • Browse saved stocks and indices, with price changes and highs and lows over the selected period.
  • Use Left/right to move between chart ranges, from one day to five years.
  • The heatmap sizes companies by market cap and colors them by price change.

Settings and setup

  • Up to 12 symbols, typed as a ticker or company name and picked from search suggestions
  • View: cards, heatmap, or both (heatmap first, then the cards)
  • Default time range the cards open on
  • Seconds per view
  • Refresh minutes while the market is open
  • Display font
  • Fetch diagnostics: request counts, failures, rate limits, and per-range data recency

Data sources

  • Yahoo FinanceUnofficial Historical prices from Yahoo’s undocumented chart service.
  • Yahoo quoteUnofficial Market capitalization for the heatmap, also from an undocumented service.

Takeoffs

An airport arrivals and departures board, complete with split-flap animation.

Takeoffs on the display, view 1

Capabilities

  • Flight rows show the airline, destination or origin, gate, time and status. Delays and cancellations are highlighted.
  • Arrivals can include baggage claim information. A separate security board shows TSA waits and PreCheck status.
  • Choose which boards and airlines appear. The current data source is San Diego International Airport.

Settings and setup

  • Airport (provider) picker
  • Which boards to show and in what order: departures, arrivals, security
  • Limit to specific airlines by two-letter code
  • Hours ahead to include and minutes to keep departed/landed flights
  • Seconds per board
  • Refresh rate on screen (seconds) and off screen (minutes)
  • Flip animation on or off
  • Display font

Data sources

  • San Diego airport flight boardUnofficial The feed behind San Diego International Airport’s arrivals and departures widget; undocumented and subject to change.
  • TakeoffTimerUnofficial TSA wait estimates from its widget feed.

Temps

Thermostat readings and temperature control.

Temps on the display

Capabilities

  • Nest and Cielo thermostats appear together, with current and target temperatures, humidity and operating mode.
  • Use Left/right to select a thermostat and Up/down to adjust its target.
  • The display reflects the adjustment immediately, then checks it against the next reading.

Settings and setup

  • Link or unlink a Nest account and a Cielo account
  • Discover thermostats, then check which to show and drag them into order
  • Rename each thermostat for the display
  • Units: Fahrenheit or Celsius
  • Temperature step per remote press
  • Poll interval in seconds
  • Gauge minimum and maximum temperature
  • Diagnostics: mode, ambient, setpoint, humidity and last poll per thermostat

Data sources

  • Google NestAPI Thermostat readings and controls through Google’s Smart Device Management API; requires a Device Access project.
  • CieloUnofficial Thermostat readings and controls through an unofficial account integration.

Tests

Check panel layout, brightness and remote controls.

Tests on the display, view 1

Capabilities

  • A labeled grid shows each panel’s logical position, making mapping mistakes easier to spot.
  • A brightness ramp helps reveal uneven response or clipping.
  • Other views show the remote controls and replay the startup animation with sound.

Settings and setup

  • Panel layout and chain mapping in config.yaml, which these cards verify
  • Display driver, frame rate and brightness schedule in config.yaml
  • Open from Home or the web interface; excluded from Autoplay

Tickets

Upcoming events near saved locations.

Tickets on the display, view 1

Capabilities

  • Browse Ticketmaster events by date, with artwork, venue and event details.
  • Combine several locations, each with its own search radius, and choose how far ahead to look.
  • Press Pause for a QR code to the ticket page.

Settings and setup

  • Add, label and remove Ticketmaster locations (address, city or US zip)
  • Search radius in miles for each location
  • Days ahead to look for events
  • Seconds per event
  • Refresh interval in minutes
  • Display font
  • Toggle the QR code to the ticket page when paused
  • Diagnostics table showing each location’s fetch status

Data source

  • Ticketmaster DiscoveryAPI Events near saved locations; requires an API key.

Timers

Alarms, countdowns and stopwatches controlled with the remote.

Timers on the display

Capabilities

  • Add items on the display, then use the remote to set times, reset or remove them, and change their colors.
  • Timers keep running and alarms remain set when another app is showing. Finished timers and alarms flash until cleared.
  • Pause stops timers and stopwatches; alarms still fire at their scheduled time.

Settings and setup

  • Display font (config.yaml)
  • Include in or leave out of the autoplay rotation
  • Position in the launcher grid
  • Alarms, timers and stopwatches themselves are created on the display with the remote

Tunes

Popular music, new releases and podcasts.

Tunes on the display, view 1

Capabilities

  • Browse Apple’s album, song and podcast charts, with artwork, chart positions and available release details.
  • New chart entries are marked. Optional Last.fm data adds listener counts, tags and summaries.
  • Press Pause for a QR code to Apple Music or Apple Podcasts.

Settings and setup

  • Choose and reorder cards for albums, songs and podcasts
  • Region whose Apple Music and Apple Podcasts charts are shown
  • Items per card
  • Age limit for new releases
  • Seconds per item
  • Refresh interval in minutes
  • Display font
  • Optional Last.fm key for popularity details

Data sources

  • Apple Music and Podcasts chartsRSS Album, song and podcast charts from Apple’s feeds.
  • iTunes lookupAPI Track counts, labels and runtimes.
  • DeezerAPI Additional music details when unavailable from iTunes.
  • Last.fmAPI Optional listener counts, tags and summaries; requires an API key.

Visitors

Website traffic from Google Analytics.

Visitors on the display, view 1

Capabilities

  • See recent active users, longer-term trends, top pages and traffic sources.
  • Each site gets its own set of views. Use Left/right to change the period and Up/down to move between cards.
  • Connect GA4 properties using a service account with Viewer access.

Settings and setup

  • Upload or paste the service account key, and see the email to grant Viewer access in GA4
  • Properties to show, each a GA4 property ID and label, up to 12
  • Which cards run and in what order (realtime, trend, pages, sources)
  • Opening horizon: today, yesterday, 7 days, 30 days or a year
  • Time per card
  • Seconds between realtime refreshes
  • Font

Data source

  • Google Analytics Data APIAPI GA4 reports using a service account with Viewer access to each property.

Waves

Tides, swell and beach conditions.

Waves on the display, view 1

Capabilities

  • For each saved spot, see tide predictions and swell forecasts on a shared time axis.
  • High and low tides are labeled with times and heights, alongside water temperature and available water-quality grades and advisories.
  • Sunrise, sunset and Moon phase add context, with wind direction and wave period on the swell view.

Settings and setup

  • Up to 8 coastline spots: the display’s own location or a beach/city by name
  • Optional label per spot that overrides the place name on the display
  • Drag spots into the order the display cycles through
  • Seconds per view
  • Refresh minutes
  • Display font
  • Diagnostics: tide station, water-quality grade and last fetch per spot

Data sources

  • NOAA Tides and CurrentsAPI Tide predictions and water temperature from nearby stations.
  • Open-Meteo MarineAPI Swell, wave period and wind for saved locations.
  • Heal the BayUnofficial Beach water-quality grades from the feed behind the Beach Report Card map.

Wikis

A little Wikipedia, one article at a time.

Wikis on the display, view 1

Capabilities

  • Browse the featured article, On This Day and Did You Know, with random articles mixed in.
  • Each card includes an image when available and introductory text. Press Pause for a QR code to keep reading.
  • Unseen daily items come first; Autoplay skips the app once its daily items have been shown.

Settings and setup

  • Toggle the featured article, On this day, and Did you know sections
  • Frequency of random articles (0 disables them)
  • Which language Wikipedia to read
  • Seconds per article
  • Display font
  • Diagnostics: today’s items, their images, and which have been shown

Data source

  • Wikimedia RESTAPI Daily Wikipedia features and random article summaries.

Remote control

I use an ordinary 2.4 GHz media remote for everyday control. The buttons follow a common pattern across apps, with a few shortcuts for Home, Autoplay and voice chat.

  • Power
    Display on / off

    Turns the display off or returns to the app that was showing.

  • Home
    Home screenHold: autoplay

    Returns to Home from any app; press again for the first page. Hold to start Autoplay.

  • Up and down
    Next / prev card

    Usually moves between cards or pages. Some apps use these buttons to adjust a selected value, such as a thermostat’s target temperature.

  • Left and right
    Scroll / zoom

    Changes the selection or view within an app, such as a chart’s time range or the selected thermostat.

  • OK
    ConfirmHold on Home: move an icon

    Opens an app or confirms an action. On Home, hold OK and use the arrows to move an icon.

  • Back
    Cancel / close

    Closes the current view or returns to the first card. On Home, switches between icons and the live dashboard.

  • Menu
    Pause displayHold: ask by voice

    Pauses the display, indicated by a glow at the edges. On Home, adds or removes an app from Autoplay. Hold to open Chats.

  • Volume downVolume up
    Adjust settingVolume by default

    Opens Settings and adjusts the last-used control. Use left/right to select another setting and BACK to return to the app.

Schematics

These diagrams show the frame dimensions, panel layout, and connections for power, data and the Pi’s peripherals.

The display: seven P3 panels edge to edge inside a custom-ordered wooden frame. 1234567 55 in frame, outside 10 in 53¼ in opening, inside 8¼ in 192 mm per panel, 64 × 64 LEDs at 3 mm 1344 × 192 mm 448 × 64 LEDs
The display: seven P3 panels edge to edge inside a custom-ordered wooden frame.

Back side: power

The 5 V supply (heaviest part) is in the middle, driving 7 panels through four 15 A runs protected with fuses. The Pi is on one side. Its USB-C brick and the power supply's cord plug into a single flat-plug extension cord. 1234567 MeanWell LRS-350-55 V · 300 W Fuse block4 × 15 A Raspberry Pi 4Triple matrix bonnet USB-C, 5.1 V single extension cord 5 V, four fused runs at 15 A120 V mains
The 5 V supply (heaviest part) is in the middle, driving 7 panels through four 15 A runs protected with fuses. The Pi is on one side. Its USB-C brick and the power supply's cord plug into a single flat-plug extension cord.

Back side: data

Three HUB75 chains from the triple bonnet. Each ribbon runs up the left margin and along the rail to the chain’s first panel, the one nearest the Pi, and short ribbons daisy-chain from there away from the Pi: 7 to 6, 5 to 4, and 3 to 2 to 1. 1234567 Raspberry Pi 4Triple matrix bonnetthree HUB75 outputs chain: 7 → 6chain: 5 → 4chain: 3 → 2 → 1 One 16-pin ribbon per chain from the bonnet to the chain’s first panel, the one nearest the Pi, then short ribbons daisy-chain away from it, HUB75 out to HUB75 in. Chains of 2, 2 and 3: panels 7–6, 5–4, and 3–2–1. HUB75 ribbon, data
Three HUB75 chains from the triple bonnet. Each ribbon runs up the left margin and along the rail to the chain’s first panel, the one nearest the Pi, and short ribbons daisy-chain from there away from the Pi: 7 to 6, 5 to 4, and 3 to 2 to 1.

Back side: compute

The Pi at the far left with what hangs off it: the USB sound card with its speakers and microphone, and the remote’s 2.4 GHz receiver. The software-defined radio and its VHF antenna sit outside the frame on a USB extension, away from the LEDs’ interference. The antenna decides what the radio hears: this VHF whip for ships by AIS, or an ADS-B antenna at 1090 MHz for aircraft instead, on the same dongle; a second dongle would hear both. 1234567 Raspberry Pi 41 GB · 64 GB microSDTriple matrix bonnet USB-C brick, 5.1 V USB sound cardspeaker out · mic in 2.4 GHz receiverfor the remote Speaker Speaker voice Remote 2.4 GHz USB 3.0 extension, 3 m, out through the frame Outside the frame, clear of the LEDs ships · AIS, 162 MHz VHF antenna,136–174 MHz Nooelec RTL-SDR v5100 kHz–1.75 GHz or an ADS-B antenna, 1090 MHz, for aircraft instead of ships USBcoax, SMA to PL-259speaker wireover the air
The Pi connects to the USB audio hardware and the remote’s receiver. A USB extension places the radio and VHF antenna outside the frame, away from LED interference. This setup receives ship broadcasts locally and gets aircraft positions online.

Bill of materials

Here are the parts I used, with their purchase prices in mid-2026. Honestly the build turned out to be much more expensive than I anticipated, but I like to tell myself it was overbuilt for quality and safety!

Total
$793.13