Fullscreen Ground Station display foundation #1

Closed
opened 2026-09-30 17:54:40 +02:00 by hermes · 1 comment
Collaborator

Goal

Create a dedicated fullscreen display process for Viture/X11. It must own the Ground Station visual lifecycle rather than relying on the terminal or a bare fpv-video window.

Scope

  • Start a fullscreen canvas on Viture before video is available.
  • Keep video as the rendering-priority background layer when it exists.
  • Keep the design ready for a later independent MIPI/touch display.
  • Do not alter WFB transport, UART parsing, or RC control.

Updated architecture decision

The display is a kiosk application and stays alive independently of WFB, the transmitter, and the video receiver state. The no-video black canvas is the future primary Ground Station menu.

The display layer must become a multi-target compositor model:

DisplayController
  ├─ Viture target: dedicated FPV template; video receives visual priority
  └─ MIPI/touch target: independent operator template; later telemetry/map/video widgets

For the first milestone there is only one Viture/X11 target. The interface must not assume one global layout or one physical display forever.

Acceptance

  • Ground Station can start/stop the display deterministically.
  • Canvas is fullscreen on DISPLAY=:0.
  • No crash/restart of the Ground Station supervisor when X11 is temporarily unavailable.
  • Canvas remains open while WFB/video is absent; it is not tied to the RC knob lifecycle.
## Goal Create a dedicated fullscreen display process for Viture/X11. It must own the Ground Station visual lifecycle rather than relying on the terminal or a bare `fpv-video` window. ## Scope - Start a fullscreen canvas on Viture before video is available. - Keep video as the rendering-priority background layer when it exists. - Keep the design ready for a later independent MIPI/touch display. - Do not alter WFB transport, UART parsing, or RC control. ## Updated architecture decision The display is a kiosk application and stays alive independently of WFB, the transmitter, and the video receiver state. The no-video black canvas is the future primary Ground Station menu. The display layer must become a multi-target compositor model: ```text DisplayController ├─ Viture target: dedicated FPV template; video receives visual priority └─ MIPI/touch target: independent operator template; later telemetry/map/video widgets ``` For the first milestone there is only one Viture/X11 target. The interface must not assume one global layout or one physical display forever. ## Acceptance - Ground Station can start/stop the display deterministically. - Canvas is fullscreen on DISPLAY=:0. - No crash/restart of the Ground Station supervisor when X11 is temporarily unavailable. - Canvas remains open while WFB/video is absent; it is not tied to the RC knob lifecycle.
grzesiu was assigned by piotr 2026-09-30 22:31:18 +02:00
Collaborator

Wdrożono fundament niezależnego fullscreen Ground Station display i wystawiono PR: #7

  • commit: 53ab05ce12a3dc750216b94c349562e5ce18a784
  • walidacja OpenCode: pełne go test ./..., testy procesu z -race (10 powtórzeń), go vet ./..., formatowanie, build ARM64 i git diff --check — OK
  • CI dla dokładnego SHA: run 178 — success
  • PR zweryfikowany: head issue-1-fullscreen-display, base main; issue pozostaje otwarte do merge.
Wdrożono fundament niezależnego fullscreen Ground Station display i wystawiono PR: https://git.piksar.eu/piotr/groundstation/pulls/7 - commit: `53ab05ce12a3dc750216b94c349562e5ce18a784` - walidacja OpenCode: pełne `go test ./...`, testy procesu z `-race` (10 powtórzeń), `go vet ./...`, formatowanie, build ARM64 i `git diff --check` — OK - CI dla dokładnego SHA: [run 178](https://git.piksar.eu/piotr/groundstation/actions/runs/178) — **success** - PR zweryfikowany: head `issue-1-fullscreen-display`, base `main`; issue pozostaje otwarte do merge.
piotr closed this issue 2026-10-01 14:08:50 +02:00
Sign in to join this conversation.
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: piotr/groundstation#1