(3.4.110 was an unpublished release candidate of this feature; 3.4.111 is the
complete version.)
Added
- A display board for wall TVs. Open
/boardon any screen you want to
leave running — an FBO lounge, an office, a hangar — and Aerodrome becomes a
full-screen flight display: no menus, no buttons, big type readable from
across the room, and a live clock. Three layouts are available, and each
screen picks its own: Radar wall (a full-screen radar scope with every
contact labeled — callsign, altitude, heading, with the familiar red MIL and
blue WL tags), Flight board (classic airport-arrivals rows — flight,
aircraft type, route, altitude, speed, distance, climbing/descending — that
page through everything overhead and cycle live facts along the bottom), and
Hybrid (radar beside a closest-traffic list, plus a spotlight card that
rotates through the aircraft overhead showing a real photo of that airframe,
its registered owner, and where it's flying). The first visit shows a
one-time layout picker and remembers the choice on that device;
/board?mode=radar,?mode=board, or?mode=hybridskips the picker for
kiosk autostart setups, and?mode=pickbrings the picker back. There are
two more ways to manage layouts: Configuration → Display → Wallboard
layout sets the server-wide default for screens that haven't picked yet
(with an "Open display board" link right there), and a gear icon on the
board itself — invisible until the mouse moves or the screen is touched —
reopens the layout picker, so anyone standing at the TV can switch layouts
without Configuration access. A choice made on the screen always wins over
the server default. Designed for 1080p TVs and long unattended runs: if the receiver goes quiet the board
says so and keeps the last picture, it recovers on its own when data
returns, and it quietly refreshes itself once a day. The radar layouts need
a configured receiver location (Configuration → Receiver); the flight board
works regardless.
Behind the scenes
- The board is a single standalone template (
templates/board.html) on a new
chrome-less/boardroute, reusing the existing surfaces wholesale:
/api/livefor contacts,/api/ui-configfor range-ring distances and the
distance unit, and the photo / registered-owner / route enrichment endpoints
(including the current-leg inference for multi-leg flights) for the
spotlight and route columns. The radar layouts draw a pure SVG/CSS scope —
contacts are placed by bearing and distance from the receiver, so there are
no map tiles to fetch and nothing external to break on a kiosk. Enrichment
lookups are memoized per aircraft, polling backs off exponentially while the
server is unreachable, and a browser left running reloads itself during the
quiet hours each morning. The layout default is a newdisplay.wallboard_layout
config key ("ask" | "radar" | "board" | "hybrid", validated, live-reloadable)
served through/api/ui-config; the board resolves its layout as URL
?mode=→ this screen's saved pick → the config default → the picker.