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.
BIN
public/screenshots/tui-collage.png
Normal file
|
After Width: | Height: | Size: 360 KiB |
BIN
public/screenshots/tui-control.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
public/screenshots/tui-dashboard.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 86 KiB |
@ -12,6 +12,8 @@ import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
|
|||||||
|
|
||||||
Mission control for less than dinner for two.
|
Mission control for less than dinner for two.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Somewhere inside every Winegard Carryout G2 is a 2013-vintage NXP Cortex-M4 running firmware 02.02.48,
|
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
|
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
|
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
|
## 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,
|
The device status bar at the bottom persists across all screens — connection state,
|
||||||
serial port, firmware version, and current menu prompt are always visible.
|
serial port, firmware version, and current menu prompt are always visible.
|
||||||
|
|
||||||
### F1 — Position
|
### F1 — Dashboard
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The position screen is where you point the dish. A compass rose shows current azimuth
|
The launch pad. Four action cards — **Point Dish**, **Monitor Signal**, **Scan Sky**, and
|
||||||
with a bearing indicator, while AZ and EL sparklines track movement history over time.
|
**Stow** — each jump to the relevant screen with a single click. It's the screen you see
|
||||||
The numeric readout at top shows position to hundredths of a degree — the G2's stepper
|
on connect, and the one you come back to when you're done adjusting.
|
||||||
resolution is 0.009° azimuth (40,000 steps/rev) and 0.014° elevation (24,960 steps/rev).
|
|
||||||
|
|
||||||
The AZ and EL sparklines give you immediate visual feedback: flat lines mean the dish
|
### F2 — Control
|
||||||
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 — Signal
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Signal strength from two sources: the BCM4515 DVB tuner's RSSI (bounded, averaged)
|
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
|
and the raw ADC reading (single-shot). Three modes: **Monitor** (live gauges), **Sweep**
|
||||||
(▏▎▍▌▋▊▉█) for smooth visual resolution. Below the gauge, DVB RSSI and ADC RSSI
|
(automated peaking), and **Sky Map** (2D RSSI heatmap from `azscanwxp` scans).
|
||||||
sparklines show signal trends over time — useful for peaking during manual dish adjustment.
|
|
||||||
|
|
||||||
The sample counter and iteration display at bottom track measurement throughput. On a
|
In Monitor mode, the gauge uses sub-character Unicode block elements (▏▎▍▌▋▊▉█) for
|
||||||
live dish with the LNA enabled (`lnbdc odu`), you'll see the noise floor sit around
|
smooth visual resolution. The Receiver panel alongside shows tuner frequency, symbol rate,
|
||||||
RSSI 500 (ADC) or 230–490 (DVB, polarity-dependent).
|
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 230–490 (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>
|
|
||||||
|
|
||||||
### F4 — System
|
### F4 — System
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
The system dashboard. Top row shows the firmware identity banner: version 02.02.48,
|
The system dashboard with three tabs: **Hardware**, **Motors**, and **NVS Config**.
|
||||||
K60 MCU at 96 MHz, antenna ID "12-IN G2". Below that, two side-by-side panels:
|
|
||||||
|
|
||||||
- **A3981 Diagnostics** — fault pin status for both stepper drivers (AZ/EL DIAG: OK or FAULT),
|
The Hardware tab shows the firmware identity banner — version 02.02.48, K60 MCU at 96 MHz,
|
||||||
plus step size mode (AUTO means the driver handles microstepping transitions automatically).
|
antenna ID "12-IN G2" — and A3981 stepper driver diagnostics: fault pin status for both
|
||||||
- **Motor Dynamics** — max velocity and acceleration for each axis. The G2 defaults to
|
drivers (AZ/EL DIAG: OK or FAULT), step size mode (AUTO means the driver handles
|
||||||
65.0°/s azimuth, 45.0°/s elevation, with 400.0°/s² acceleration — fast enough to track
|
microstepping transitions automatically), and current control mode.
|
||||||
LEO satellites at medium altitudes.
|
|
||||||
|
|
||||||
The NVS Table at the bottom is a scrollable browser of all 134 non-volatile storage values.
|
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. The "Refresh NVS"
|
Current, saved, and default columns let you see what's been modified. Refresh and Export
|
||||||
and "Export NVS JSON" buttons at the bottom do what you'd expect.
|
buttons at the bottom do what you'd expect.
|
||||||
|
|
||||||
### F5 — Console
|
### F5 — Console
|
||||||
|
|
||||||
|
|||||||