2.4 KiB
Ground Station
Orange Pi Zero 3W supervisor and kiosk display for the custom OpenIPC/WFB ground station.
Components
The ARM64 artifact intentionally contains two executables:
groundstation-linux-arm64— the long-running root supervisor. It owns the GX12 UART, logging, RC state, video lifecycle, and starts the display process.groundstation-display-linux-arm64— the unprivileged X11 kiosk renderer. It runs asorangepionDISPLAY=:0; the supervisor owns it during normal use.
Current capabilities:
- receives framed GX12 RC channel data at 115200 8N1;
- validates protocol version, frame length and CRC-16;
- logs channel changes instead of every frame;
- starts/stops
fpv-videofrom the configured CH6 power/lifecycle control; - starts an independent kiosk display before video, tolerates temporary X11 downtime without restarting the supervisor, and stops deterministically on shutdown;
- keeps the fallback canvas below
fpv-video, withBrak połączenia WFBwhile video is absent.
Future MIPI/touch targets use their own template rather than sharing one global layout. Flight OSD will use a separate transparent layer above video, preserving the pilot stream's priority.
Installation on Orange Pi
Extract the artifact and install both files:
sudo install -m 0755 groundstation-linux-arm64 /usr/local/bin/groundstation
sudo install -m 0755 groundstation-display-linux-arm64 /usr/local/bin/groundstation-display
sudo systemctl restart groundstation
Check logs:
systemctl status groundstation --no-pager
journalctl -u groundstation -b --no-pager -n 80
Do not run groundstation-display by hand during normal operation. It needs the X11 user/session environment and is managed by the supervisor. For isolated renderer debugging it supports:
groundstation-display -target x11
Configuration
The service reads /etc/groundstation/config.yml. For the verified permanent GX12 connection, use:
serial:
path: /dev/ttyS2
/dev/ttyS0 is the Orange Pi boot/debug UART and must not be used for the permanently connected GX12.
Runtime dependencies
- X11 session on
:0owned byorangepi; the kiosk waits for X11 and reconnects after display-manager restarts; wmctrlfor fullscreen/below kiosk state; without it the canvas maps as a normal window and the condition is logged;runuserfrom util-linux for the unprivileged kiosk launch.