Add collage hero and update TUI guide screen layout

Collage of all 5 screens as hero image below the intro.
Updated screen names and descriptions to match the current
4-tab layout (Dashboard, Control, Signal, System + Console).
Fresh screenshots from demo mode replace the originals.
This commit is contained in:
Ryan Malloy 2026-02-15 14:56:14 -07:00
parent 7803d2220c
commit 3ede7d7eb6
6 changed files with 41 additions and 40 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -12,6 +12,8 @@ import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
Mission control for less than dinner for two.
![Birdcage TUI — all screens shown in demo mode](/screenshots/tui-collage.png)
Somewhere inside every Winegard Carryout G2 is a 2013-vintage NXP Cortex-M4 running firmware 02.02.48,
driving two Allegro A3981 stepper motors and a Broadcom BCM4515 DVB-S2 tuner through 12 submenus
and over 100 undocumented commands. In 2026, it takes commands from a Python TUI built on
@ -54,64 +56,63 @@ does something. You don't need a dish on the roof to try it.
## Five Screens
Navigate between screens with **F1****F5** keys or click the sidebar buttons.
Navigate between screens with **F1****F5** keys or click the tab bar at the top.
The device status bar at the bottom persists across all screens — connection state,
serial port, firmware version, and current menu prompt are always visible.
### F1 — Position
### F1 — Dashboard
![Birdcage TUI Position screen showing compass rose, AZ/EL readout, and sparkline history](/screenshots/tui-position.png)
![Birdcage TUI Dashboard screen showing action cards for dish operations](/screenshots/tui-dashboard.png)
The position screen is where you point the dish. A compass rose shows current azimuth
with a bearing indicator, while AZ and EL sparklines track movement history over time.
The numeric readout at top shows position to hundredths of a degree — the G2's stepper
resolution is 0.009° azimuth (40,000 steps/rev) and 0.014° elevation (24,960 steps/rev).
The launch pad. Four action cards — **Point Dish**, **Monitor Signal**, **Scan Sky**, and
**Stow** — each jump to the relevant screen with a single click. It's the screen you see
on connect, and the one you come back to when you're done adjusting.
The AZ and EL sparklines give you immediate visual feedback: flat lines mean the dish
is parked, slopes mean it's slewing, and the amplitude of the noise floor after arrival
tells you how much stepper backlash you're dealing with.
### F2 — Control
### F2 — Signal
![Birdcage TUI Control screen showing compass rose, step size selector, and manual controls](/screenshots/tui-control.png)
Where you actually point the dish. Three modes across the top: **Manual**, **Presets**, and **Track**.
In Manual mode, a compass rose shows current azimuth with a bearing indicator. AZ and EL
readouts update live — the G2's stepper resolution is 0.009° azimuth (40,000 steps/rev)
and 0.014° elevation (24,960 steps/rev). Arrow keys nudge the dish, with a step size
selector (0.1° to 10°) that multiplies each keypress. AZ and EL sparklines give immediate
visual feedback: flat lines mean the dish is parked, slopes mean it's slewing, and the noise
floor after arrival tells you how much stepper backlash you're dealing with.
Below the sparklines, velocity controls let you tune motor speed on the fly — set AZ and EL
max velocity in °/s and hit Apply. The firmware stores these in STEP> as microsteps/sec,
but the TUI handles the conversion. Home AZ, Home EL, and E/R (engage/release motors)
round out the bottom toolbar.
### F3 — Signal
![Birdcage TUI Signal screen showing RSSI gauge, DVB and ADC sparklines](/screenshots/tui-signal.png)
Signal strength from two sources: the BCM4515 DVB tuner's RSSI (bounded, averaged)
and the raw ADC reading (single-shot). The gauge uses sub-character Unicode block elements
(▏▎▍▌▋▊▉█) for smooth visual resolution. Below the gauge, DVB RSSI and ADC RSSI
sparklines show signal trends over time — useful for peaking during manual dish adjustment.
and the raw ADC reading (single-shot). Three modes: **Monitor** (live gauges), **Sweep**
(automated peaking), and **Sky Map** (2D RSSI heatmap from `azscanwxp` scans).
The sample counter and iteration display at bottom track measurement throughput. On a
live dish with the LNA enabled (`lnbdc odu`), you'll see the noise floor sit around
RSSI 500 (ADC) or 230490 (DVB, polarity-dependent).
### F3 — Scan
The scan screen wraps the firmware's `azscanwxp` command — Davidson's radio telescope
mode. Define an AZ×EL grid, set the step resolution, and watch the sky heatmap fill
in with RSSI-colored cells as the dish sweeps. Results export to CSV for post-processing
into proper sky maps.
<Aside>
No screenshot for this one yet — the scan screen needs a live dish or a long-running demo
sweep to produce interesting output. It exists, it works, and it's waiting for first light.
</Aside>
In Monitor mode, the gauge uses sub-character Unicode block elements (▏▎▍▌▋▊▉█) for
smooth visual resolution. The Receiver panel alongside shows tuner frequency, symbol rate,
LNB voltage/polarity, lock status, and SNR. On a live dish with the LNA enabled
(`lnbdc odu`), the noise floor sits around RSSI 500 (ADC) or 230490 (DVB, polarity-dependent).
### F4 — System
![Birdcage TUI System screen showing firmware ID, A3981 diagnostics, motor dynamics, and NVS table](/screenshots/tui-system.png)
![Birdcage TUI System screen showing firmware ID, A3981 diagnostics, and motor dynamics](/screenshots/tui-system.png)
The system dashboard. Top row shows the firmware identity banner: version 02.02.48,
K60 MCU at 96 MHz, antenna ID "12-IN G2". Below that, two side-by-side panels:
The system dashboard with three tabs: **Hardware**, **Motors**, and **NVS Config**.
- **A3981 Diagnostics** — fault pin status for both stepper drivers (AZ/EL DIAG: OK or FAULT),
plus step size mode (AUTO means the driver handles microstepping transitions automatically).
- **Motor Dynamics** — max velocity and acceleration for each axis. The G2 defaults to
65.0°/s azimuth, 45.0°/s elevation, with 400.0°/s² acceleration — fast enough to track
LEO satellites at medium altitudes.
The Hardware tab shows the firmware identity banner — version 02.02.48, K60 MCU at 96 MHz,
antenna ID "12-IN G2" — and A3981 stepper driver diagnostics: fault pin status for both
drivers (AZ/EL DIAG: OK or FAULT), step size mode (AUTO means the driver handles
microstepping transitions automatically), and current control mode.
The NVS Table at the bottom is a scrollable browser of all 134 non-volatile storage values.
Current, saved, and default columns let you see what's been modified. The "Refresh NVS"
and "Export NVS JSON" buttons at the bottom do what you'd expect.
The NVS Config tab provides a scrollable browser of all 134 non-volatile storage values.
Current, saved, and default columns let you see what's been modified. Refresh and Export
buttons at the bottom do what you'd expect.
### F5 — Console