The steam-panel KAP140 LCD decoded the same unreliable autopilot_state bitfield
as the G1000 panel, so its lateral/vertical annunciation could be wrong. Read the
*_status datarefs instead, consistent with AutopilotPanel and the PFD.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Key feedback came from decoding the autopilot_state bitfield, whose bit
positions don't reliably match X-Plane (e.g. bit 0 is auto-throttle, not the
flight director), so several keys (FD/NAV/APR/BC/VS/VNV/FLC) never lit even when
the mode was engaged. Read the dedicated *_status datarefs (off/armed/active) —
the same source the PFD AFCS bar uses — so every key and the lateral/vertical
annunciator reflect the real mode. NAV also lights on GPS-coupled (gpss) mode.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 3D terrain showed almost no sky — the horizon sat far above the attitude
horizon line. Base camera pitch was 72°, but with MapLibre's 36.87° vertical FOV
the flat horizon only reaches the attitude line (28% of the SVT box) at ~82°.
Invert the perspective to derive the camera pitch from aircraft pitch so the
synthetic horizon lands exactly on the attitude horizon and tracks it 1:1
(accounting for the 1.5× canvas scale). Raise maxPitch to 85.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
FlyWithLua auto-install: bridge drops fms-sync/ui-sync/terrain-probe into
X-Plane's FlyWithLua Scripts dir on startup and self-updates (content-compare).
Graceful when no X-Plane / no FlyWithLua. /api/lua/install + status in health.
Desktop app bundles the scripts and passes LUA_SRC_DIR to the sidecar.
Smoothing: shared useEased/useEasedAngle hook (api/ease.js) with render-bail on
settle. VFR steam gauges now interpolate to 60fps instead of stepping at the
~10Hz value stream. MFD ownship no longer vibrates — position/heading eased in a
single rAF loop, follow-pan without animated-panTo pile-up (pauses on range zoom).
Airspace overlay: server/airspace.js loads per-region GeoJSON, classifies
(B/C/D/TMA/CTR/MOA/Restricted/Prohibited/Danger), bbox query, and downloads
regions on demand — FAA (US, key-free) and OpenAIP (Europe, user key). New
AIRSPACE softkey draws chart-coloured boundaries (B blue, C magenta, D dashed),
non-interactive so map-clicks still drop waypoints. Launcher gains a "Lufträume"
section to pick/download regions via the running bridge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- electrical readout now shows M (main) and E (essential) bus volts from
bus_volts[0]/[1], M (alternator generator_amps) and S (battery_amps) separately,
and ENG hours from flight time — replacing the hardcoded duplicate volts / +0.0
amps / 0.0 HRS placeholders (manual S.54 C172 layout)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- PFD VNAV: magenta flight-plan target altitude on the alt scale (S.110), V DEV
deviation scale + chevron (left, shown in VNAV when not on an ILS), VS TGT
chevron on the VSI (S.113)
- GPS phase annunciation is now dynamic: APR (approach leg) / TERM (<30 nm to
destination) / ENR, instead of a fixed label
- flight-plan ALT can be toggled designated(blue) <-> reference(white) by clicking
the cell (S.106); only designated altitudes drive the VNAV profile
- setPlan now preserves the dsgn/appr waypoint flags across the shared plan
- AFCS vertical mode labelled VPTH (manual) instead of VNV
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CURRENT VNV PROFILE panel on the MFD flight-plan page: active VNV waypoint +
target altitude, VS TGT (−3° path), VS REQ, V DEV, FPA, TIME TO TOD (manual
S.64 / S.107)
- enriched the VNAV computation (vsTgt / vDev / FPA / time-to-TOD) shared by the
PFD VnavBox
- flight-plan ALT column now shows designated (VNAV) altitudes in blue (S.105)
- new Audio Panel + earlier manual-alignment batch already in this branch
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aligned to the official X-Plane 1000 manual:
- NAV radio: active RIGHT / standby LEFT (boxed) per S.12 (COM already correct)
- ALT UNIT softkey (IN / HPA) in the PFD submenu, baro readout converts (S.20)
- DCLTR cycles 3 levels (land / +NDB / flight-plan only) with DCLTR-n label (S.56)
- TOPO and TERRAIN are now independent toggles (relief vs awareness overlay) (S.57)
- Barometric MINIMUMS: BARO MIN bug + readout on the altimeter, amber "MINIMUMS"
annunciation at/below the decision altitude; set via TMR/REF (lifted to App)
- OBS mode: HSI course follows the CRS knob (magenta "OBS"), sequencing suspended
- New Audio Panel tab (COM mic/receive, MKR/DME/ADF, intercom, Display Backup) (S.91)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>