# Ecosystem: LK8000

## System overview

- **Version(s) examined:** 7.6.4 (beta); `master` @ commit `755ca28` (2026-07-03). Internal identifiers: `LKVERSION "7"`, `LKRELEASE "6.4"`, task format `LKTASKVERSION '4'`.
- **Date(s) examined:** 2026-07-06
- **Platform(s):** Windows (PC 32/64-bit), Windows CE / Windows Mobile (PNA, PPC2003), Linux desktop (OpenGL or SDL/memory rendering), Kobo e-ink readers (greyscale/dithered), Raspberry Pi, Android. iOS is referenced in older (v6.0) docs but there is no active build target in the current Makefile/CMake.
- **License:** GPL-2.0-only (fork lineage from XCSoar; ships bundled shapelib, poco, glutess, rapidxml, etc.).
- **Offline behavior:** Fully offline for all navigation. Terrain, topology, airspace, waypoints, polars, tasks and IGC logs are local files. Network is used only for optional features: live tracking upload, LiveTrack24 "radar" friend positions, and the Android LKMAPS in-app downloader.
- **Configuration model:** Text-based profile files (`.prf`, a registry-emulation key/value store). Three separable profile scopes — **System**, **Aircraft**, **Pilot** — plus a global runtime state. Deep menu-driven config (System pages 1–22+, plus a hidden Engineering menu), configurable custom keys and a custom menu (up to 10 assignable buttons).

## Feature inventory

**Status legend:**

- `●` **full** — present and works as a first-class capability
- `◐` **partial** — present but limited, awkward, or incomplete
- `○` **absent** — not present
- `?` **unknown** — could not be determined from available sources

### Map display & interaction

- `●` Vector / topographic map rendering: Topology engine on shapelib (`XShape`, polygon/line/point/special renderers), decluttering engine.
- `●` Terrain shading / elevation: `RasterTerrain` + `DrawTerrain`; multiple colour schemes (incl. LiteAlps, Low Hills), `AutoContrast`, greyscale/dither path for e-ink.
- `●` Map orientation (track / north / target up): TRACKUP, NORTHUP, NORTHCIRCLE, NORTHTRACK, NORTHSMART, TARGETUP.
- `●` Auto-zoom & circling zoom (mode-dependent): `AutoZoom` plus a distinct `CircleZoom` locked while circling.
- `●` Manual pan & zoom: gesture/drag + zoom controls (`MapWindowZoom`).
- `●` Snail trail / flight trail: `LKDrawTrail`, `LKDrawLongTrail`, `LKSnailTrail`; trail drift option; short/long trail modes.
- `●` Glide range ("reachability") line: `CalculateWaypointReachable`, `DrawGlideThroughTerrain`, terrain footprint / glide "amoeba".
- `●` Thermal markers on map: thermal history + `DrawThermalEstimate`; user markers via `MarkLocation`.
- `●` Markers / pilot events on map: `MarkLocation` drops on-map markers (also written to the log).
- `●` Waypoint & landable symbology / labels: `LKDrawWaypoints`, `DrawRunway`, `TextInBox`, declutter; landable/airfield symbology.
- `●` "What's here" query: `dlgMultiSelectList` returns all objects (waypoints, airspaces, traffic, own position, team, oracle) under a map point.

### Waypoints & navigation

- `●` Waypoint database: multiple formats loaded together (CUP, CUPX, DAT/WinPilot, OZI, CompeGPS, OpenAIP); up to 9 files across regions.
- `●` Landable vs non-landable distinction: landable/airfield flags drive symbology, reachability and alternates.
- `●` Nearest (waypoint / landable / airfield): `DoNearest` + nearest list pages (2.x / 3.x), airfield ICAO-code search.
- `●` Go-to / direct navigation: `FlyDirectTo`.
- `●` Waypoint details (info, image, runway, freq): `dlgWayPointDetails` with multi-image pages, runway data, in-comment frequency extraction (tap to tune radio), additional airfield frequencies.
- `●` Alternates / safety-landing selection: `DoAlternates`, `BestAlternate`; Alternate 1/2 + best-alternate GR/arrival/bearing infoboxes.

### Cross-country tasks

- `●` Racing tasks: standard racing task with start/turnpoints/finish.
- `●` Assign Area Tasks (AAT): `AATDistance`/`AATStats`, iso-lines, AAT target optimisation, delta-time/target infoboxes.
- `●` Cross-country task types (FAI triangle, out-and-return, DMSt, etc.): generic task builder plus contest engine covering FAI triangle, OLC classic/league/3-TP; FAI Assistant; handicap value for DMSt-style scoring.
- `●` Observation zones & start/finish/turnpoint rules: sector types CIRCLE, SECTOR (FAI), DAe (German 90°), LINE, ESS_CIRCLE (PG cone), experimental SGP start; configurable start/finish types and time gates.
- `●` Task manager (build / edit): `dlgTaskOverview`, `dlgTaskWaypoint`, `dlgStartPoint`, `dlgTaskRules`, `dlgTimeGates`.
- `●` Task calculator (in-flight required speeds etc.): `dlgTaskCalculator`, `TaskSpeed`; required speed to make start gate.
- `●` In-flight task edit: task points editable during flight.
- `◐` FAI badge / record support: FAI finish-height and FAI sector geometry exist, but there is no dedicated badge/record declaration wizard; declaration is delegated to an approved logger.
- `●` Task import / export / declaration to logger: import CUP/GPX/XCTrack tasks, save native `.tsk` (XML); declaration to many loggers (CAI302, EW/EW-MicroRecorder, IMI, Volkslogger, LX Nano/Nano3/EOS-ERA/V7, FLARM, etc.).

### Glide computer

- `●` Flight modes + auto display switching (cruise/circling/final): mode detection drives `DrawFlightMode` and auto bottom-bar/overlay switching.
- `●` MacCready setting (manual): `dlgMacCready`.
- `●` Auto MacCready (modes): `AutoMcMode` (final-glide / average-climb style modes).
- `●` Glide polar (library + custom): ~150 built-in polars (gliders + paraglider EN classes + hang-gliders), plus custom WinPilot-format `.plr`.
- `●` Ballast / bugs / weight setup: `BALLAST`, `BUGS`, wing loading, ballast-dump timer (`BallastSecsToEmpty`).
- `●` Speed to fly / speed command / risk factor: `SpeedToFly`, dolphin speed, max-efficiency speed; Pirker risk/final-glide handling.
- `●` Safety heights / safety MacCready: `SafetyAltitudeMode` (arrival / terrain clearance), safety MC.
- `●` Final glide calculator (wind, altitude required): `AltitudeRequired`, `FinalGlideThroughTerrain`, `DrawFinalGlideBar`.
- `●` Task speed estimation: task-speed calc + average/instant/achieved task-speed infoboxes.
- `●` Optimal cruise track: `DrawBestCruiseTrack`, `OptimizedTargetPos`.

### Atmosphere & instruments

- `●` Variometer display: `LKDrawVario` / `DrawVario`.
- `●` Average climb: `AverageClimbRate`; current/last/all-thermal averages.
- `◐` Audio variometer: full synthesised climb/sink tone engine on Android (`VarioPlayer`, tone ramps); other platforms depend largely on external instruments/beeps.
- `●` Air-data inputs (external sensors): parsed baro altitude (with source-priority arbitration), OAT, humidity, TAS/IAS, G-load, gyroscope, magnetic heading, heart rate from device streams.
- `●` Wind estimation (circling / zigzag / compass / external): `AutoWindMode` = manual / circling / ZigZag / both; EKF & Kalman estimators; external-wind ingest.
- `●` Wind display & manual override: `DrawWind`, `dlgWindSettings` (manual wind entry).
- `●` Thermal locator / assistant / centering aid: `ThermalLocator`, `Orbiter` centering assistant, `DrawThermalEstimate`.
- `●` Thermal profile: thermal band (`ThermalBand` / `DrawThermalBand`).
- `◐` Convection forecast (cloud base etc.): CuSonde-style temperature-trace analysis (`Atmosphere`, `RenderTemperature`) estimates convection/cloudbase from an entered temp trace; not an external forecast product.

### Weather

- `○` METAR / TAF: not present.
- `○` Forecast overlays (SkySight / TopMeteo / RASP): not present.
- `◐` Wind aloft / weather-station data: FANET weather-station beacons are received and shown (`dlgWeatherStDetails`); no wind-aloft forecast product.
- `◐` In-flight weather updates: only via received FANET weather beacons; no dedicated weather feed.

### Airspace

- `●` Airspace display (classes, filtering): OpenAir (v1/v2) + OpenAIP; class filtering, multi-file, "outside terrain" exclusion filter.
- `●` Proximity / incursion warnings + acknowledgement: `Sonar` proximity engine, warning dialog, per-airspace and **group** acknowledge.
- `●` Airspace query / details: airspace lookup/management dialog with pictorial shapes, details page, multiselect query.
- `◐` NOTAM handling: dedicated "Notam" airspace class + free-text details, fed from externally downloaded OpenAir NOTAM files (e.g. notaminfo.com); no live NOTAM feed.

### Traffic & collision awareness (FLARM)

- `●` FLARM Traffic on map: `LKDrawFLARMTraffic` (icon + track arrow + 30 s vario colour).
- `○` OGN Traffic on map: no direct OGN/APRS client. (Adjacent: LiveTrack24 "radar" shows friends' server positions, and FANET shows radio traffic — neither is OGN.)
- `○` FLARM and OGN Traffic deduplication: not applicable (no OGN ingest).
- `●` FLARM radar view: `DrawFlarmRadar` + `dlgLKTraffic` list/radar.
- `◐` FLARM traffic dead reckoning: track/speed shown as a rotated direction arrow; no evidence of client-side forward position extrapolation between fixes.
- `●` Collision / proximity warnings: FLARM alarm levels handled and surfaced.
- `●` Traffic details dialogue: `dlgLKTraffic`, FLARM target multiselect entry.
- `●` Traffic ID / registration lookup: `FlarmIdFile` (FlarmNet DB) + `FlarmTools`; name/competition-ID display.
- `●` Team flying / buddy codes: `TeamCodeCalculation`, `dlgTeamCode`.

### Avionics & airframe

- `●` Battery / voltage monitoring: internal `SupplyBatteryVoltage` + external `ExtBatt1/2_Voltage`, bank; battery infoboxes.
- `●` GPS status / connection / altitude source: `DrawGPSStatus`, satellites-used, baro-source priority arbitration, geoid handling.
- `◐` Engine / powered flight (ENL, MoP, engine hours): ENL parsed from some loggers (LX Nano3, EOS/ERA) and passed through to IGC; no first-class engine-hours/MoP tracking or dedicated powered-flight page.
- `●` Radio frequency management / control: `dlgRadioSettings` + drivers (KRT2, ATR833, AR620x, XCOM760, AirControlDisplay, PVCOM); active/standby swap, volume, squelch, tune-from-waypoint.
- `◐` Transponder (XPDR) control / squawk: XPDR parsing via AirControlDisplay (`$PAAVS,XPDR`); limited/partial.
- `◐` Switch inputs (gear / flap warnings etc.): AGL-triggered gear-warning reminder (`GearWarningMode`/`Altitude`) and flap logic (`Flaps`); not a general external hardware-switch input framework.
- `●` Multiple external devices / slave mode: `NUMDEV` device slots with NMEA pass-through (pipe one device's stream to another).

### Data fields (InfoBox system)

- `●` Configurable data-field grid: overlays, bottom bar and nav-boxes drawing from ~130 selectable values (`LK_*`).
- `●` Multiple data-field pages / layouts: multiple info pages (`Numpages`), AUX pages.
- `●` Per-flight-mode auto layout: auto bottom bar switches to thermal / cruise / final-glide stripes by detected mode.
- `●` Altitude / altimetry values (QNH, pressure alt, FL, AGL): HNAV, HBARO, HAGL, HGND, FL, QNH, QNE, QFE, AGL variants.
- `●` Speed values (GS / TAS / IAS / optimal): ground speed, TAS, IAS, MC/dolphin/max-efficiency speed-to-fly, average GS.
- `●` Direction values (track / bearing / heading): track, bearing, bearing-difference; magnetic heading available.
- `●` Time values (UTC / local / ETA / ETE / sunset / flight time): UTC, local (with seconds), ETA/ETE (next & task), flight time; sunset via condition monitor.
- `●` Touch / gesture interaction with data fields: tap overlays/infoboxes to change value or trigger actions.

### Analysis & review

- `●` Barograph / altitude trace: `RenderBarograph`.
- `●` Climb history / thermal analysis: `RenderClimb` + thermal history.
- `●` Wind analysis: `RenderWind`.
- `●` Glide polar analysis: `RenderGlidePolar`.
- `●` Task analysis: `RenderTask` (+ `RenderSpeed` task-speed page).
- `●` OLC / contest analysis: `RenderContest`, `ContestMgr` (OLC classic/FAI/league/3-TP/plus, XC FAI triangle).
- `●` Airspace cross-section: `Sideview` / `RenderNearAirspace` airspace cross-section multimap.

### Contest / WeGlide optimization (live)

- `◐` Live WeGlide optimization in-flight: live contest optimisation runs in-flight (OLC/FAI/XContest-style), but it is not WeGlide-branded/integrated.
- `●` Flight trace maintenance: `Trace` buffer + contest-manager trace maintenance.
- `●` Live scoring / achieved distance: live OLC/XC distances, scores and predicted values exposed as infoboxes.

### Live tracking

- `●` Live tracking upload (OGN / SkyLines / cloud): LiveTrack24 (v1 & v2), SkyLines, FFVL, PureTrack, OsmAnd, Traccar.
- `◐` Retrieve / crew comms / position sharing: LiveTrack24 "radar" shows friends' positions on map/FLARM pages; no dedicated retrieve/crew-comms module.

### Instrument & device connectivity (I/O)

- `●` Bluetooth: `BthPort` / Android `BluetoothPort` (SPP).
- `●` BLE: Android `BluetoothLeScanner`, GATT characteristic reads, `BluetoothSensor` (e.g. HR/vario sensors).
- `●` Serial: `SerialPort` / `TTYPort`.
- `●` USB: Android `UsbSerialPort`/`UsbSerialHelper`; desktop serial-over-USB.
- `●` TCP/IP / network: `TCPPort`, `SocketPort`.
- `●` NMEA input parsing: `Parser` / `UtilsParser`, per-device parsers.
- `●` NMEA / data output (drive other devices): `devNmeaOut` + inter-device NMEA pipe.
- `●` Positioning source selection (internal / external): device A/B slots, baro-source priority, internal GPS on Android.
- `●` Vendor protocols (LXNav / FLARM / …): 51 device drivers (LX family, Flarm, CAI, Zander, Westerboer, Digifly, Flymaster, Flytec/Compeo, IMI, Volkslogger, XCVario, OpenVario, Vaulter, FANET, GDL90, …).

### Data & file management

- `●` Waypoint files (CUP / …): CUP, CUPX, DAT (WinPilot/Cambridge), OZI, CompeGPS, OpenAIP.
- `◐` Airspace files (OpenAir / CUB / …): OpenAir (v1/v2) and OpenAIP supported; no CUB.
- `●` Terrain / topology / map data: raster terrain (`RasterMap`), topology shapefiles, LKM map packages.
- `◐` In-app data download & updates: Android LKMAPS downloader for maps/airspace/waypoints; other platforms are manual file management.
- `●` Aircraft / plane profiles (polar, ballast, reg, comp ID): Aircraft profiles storing polar, ballast, registration, competition ID/class.
- `◐` Handicap / polar lists: large built-in polar library (incl. handicap-class gliders and PG EN classes) + a single handicap value for scoring; no interactive handicap-index list picker.

### Logging & recording

- `●` IGC flight log recording: `Logger` + `igc_file_writer`.
- `◐` Approved / signed logger (badge / record): writes a 4×MD5 tamper-evident G-record, but LK8000 is not an IGC-certified/approved flight recorder.
- `●` Flight replay: `ReplayLogger` + `dlgLoggerReplay` (IGC) and `dlgNMEAReplay` (raw NMEA).
- `●` Pilot events / markers logging: `MarkLocation` markers and takeoff/landing/event records written to the log.

### Configuration & UI

- `●` Configuration profiles (per user / per aircraft / global): separable System / Aircraft / Pilot profiles.
- `●` Screen layout / data-field geometry: per-item font scaling (−10…+10, live), overlay positioning, multimap layouts, portrait/landscape parity.
- `●` Day / night / high-contrast modes: inverse/black-screen mode, terrain auto-contrast, greyscale/dither for e-ink; sunset condition monitor.
- `●` Units: configurable via `Units` (metric/imperial/aviation mixes).
- `●` Input / gestures / hardware buttons: gestures, hardware buttons, configurable custom keys and custom menu (up to 10 buttons).
- `●` Language / localization: many languages via Weblate translations (`language.json` / translation files).

### Additional features (outside the shared taxonomy)

- `●` Bottom bar with multi-mode nav-boxes (LK8000's signature stripe UI: NAV/TSK/AUX/TRM/CRU/FIN pages).
- `●` Multimaps: split-screen views combining the moving map with terrain, airspace, sideview, or Visual Glide.
- `●` Visual Glide: horizontal strip showing glide bars to nearby landables.
- `●` Oracle: "what's useful near me" assistant (nearest useful waypoints/landables from current situation).
- `●` FANET support: paraglider radio network — traffic, weather beacons and device naming.
- `●` FLARM/logger IGC download: pull IGC files from FLARM, LX and EOS/ERA devices (`dlgFlarmIGCDownload`, `dlgLXIGCDownload`, `dlgEOSIGCDownload`).
- `●` Paragliding mode: PG-specific tasks (ESS conical turnpoint), PG polars, PG-oriented contest rules.
- `●` Approach assistant: direct-approach planning and runway selection for landable waypoints (traffic-circuit UI still WIP).
- `●` Terminal / COM-port monitor: live device I/O monitor with byte counters for debugging.
- `●` Integrated simulator: replay/simulate flight, including netto-vario parameter.
- `●` Checklist: user checklist page (`dlgChecklist`).
- `●` Multi-target ("X>") / alternate arrival: multi-target selection with QNH-arrival and bearing-difference readouts.
