Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"ignoreFiles": ["lib/**/*"],
"ignoreFiles": [
"lib/**/*"
],
"rules": {
"color-no-invalid-hex": true,
"declaration-block-no-duplicate-properties": true,
Expand Down
5 changes: 3 additions & 2 deletions _data/nav.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Main navbar: order preserved. `type: download_dropdown` renders _includes/nav-download-dropdown.html.
# Main navbar: order preserved. `type: download_dropdown` / `docs_dropdown` are rendered in nav-main-items.html.
main:
- id: home
home: true
Expand All @@ -11,7 +11,8 @@ main:
href: /news.html
title: XCSoar news and updates
menu: news
- id: docs
- type: docs_dropdown
id: docs
label: Docs
href: /docs/
title: XCSoar documentation
Expand Down
6 changes: 4 additions & 2 deletions _includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ <h1 class="navbar-page-title text-truncate mb-0 min-w-0">{{ page.title }}</h1>

<main id="main-content">
{% if page.tagline %}
<div id="title" class="home-page-title-row text-center">
<h1 class="home-page-title mb-0">{{ page.title }}</h1>
<div class="container">
<div id="title" class="home-page-title-row text-center">
<h1 class="home-page-title mb-0">{{ page.title }}</h1>
</div>
</div>
{% endif %}
8 changes: 8 additions & 0 deletions _includes/nav-main-items.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@
<li><a class="dropdown-item{% if nav_url contains '/download/maps/' %} active{% endif %}" href="/download/maps/"{% if nav_url contains '/download/maps/' %} aria-current="page"{% endif %}>Maps</a></li>
</ul>
</li>
{% elsif item.type == 'docs_dropdown' %}
<li class="nav-item dropdown {{ item.id }}{% if page.menu == item.menu or page.menu == 'hardware' %} current{% endif %}">
<a class="nav-link dropdown-toggle{% if page.menu == item.menu or page.menu == 'hardware' %} active{% endif %}" href="{{ item.href }}" id="navbarDocs" role="button" data-bs-toggle="dropdown" aria-expanded="false" title="{{ item.title }}">{{ item.label }}</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDocs">
<li><a class="dropdown-item" href="/docs/#manual">Manual</a></li>
<li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li>
Comment on lines +15 to +16
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Manual submenu item should expose active/aria-current state.

On docs pages, the dropdown toggle is active, but the “Manual” submenu item never reflects current location (unlike “Hardware”).

Suggested fix
-                  <li><a class="dropdown-item" href="/docs/#manual">Manual</a></li>
+                  <li><a class="dropdown-item{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} active{% endif %}" href="/docs/#manual"{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} aria-current="page"{% endif %}>Manual</a></li>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<li><a class="dropdown-item" href="/docs/#manual">Manual</a></li>
<li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li>
<li><a class="dropdown-item{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} active{% endif %}" href="/docs/#manual"{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} aria-current="page"{% endif %}>Manual</a></li>
<li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li>
🧰 Tools
🪛 HTMLHint (1.9.2)

[error] 16-16: Special characters must be escaped : [ < ].

(spec-char-escape)


[error] 16-16: Special characters must be escaped : [ > ].

(spec-char-escape)


[error] 16-16: Tag must be paired, no start tag: [ ]

(tag-pair)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@_includes/nav-main-items.html` around lines 15 - 16, The "Manual" submenu
anchor in _includes/nav-main-items.html doesn't set active/aria-current; update
the <a> for "Manual" to mirror the "Hardware" logic by adding the same Liquid
conditionals that append " active" to class when nav_url contains '/docs/' and
add aria-current="page" when that condition is true so the submenu item reflects
the current page.

</ul>
</li>
{% elsif item.icon %}
<li class="nav-item {{ item.li_class }}">
<a class="nav-link" href="{{ item.href }}" title="{{ item.title }}" target="_blank" rel="noopener noreferrer">
Expand Down
2 changes: 1 addition & 1 deletion _posts/2026-03-22-xcsoar-7-dot-44-released.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ Tobias Bieniek, Tobias Schulte, and Vesko.
- [LX Navigation](https://www.lxnavigation.com/) Eos/Era variometers
- [Stratux](https://github.com/stratux/stratux)
- [Larus](https://www.larus.com/) protocol update to version 0.1.4
- [OpenVario](https://www.openvario.org/) protocol extended for onboard IMU
- [OpenVario](https://www.openvario.de/) protocol extended for onboard IMU
gyroscope/acceleration data
- [AIR Control Display](https://www.air-avionics.com/comm-and-transponders/)
driver upgrades, including radio frequency exchange and transponder mode
Expand Down
5 changes: 3 additions & 2 deletions css/xcsoar.css
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ blockquote {

.home-page-title-row {
padding: 0.35rem 0 0.85rem;
margin-bottom: 0.15rem;
margin-bottom: 1.75rem;
border-bottom: 1px dotted #9f9c99;
}

.home-page-title {
Expand Down Expand Up @@ -160,7 +161,7 @@ a#logo.navbar-brand__mark-link {
flex-shrink: 0;
}
.navbar-brand--split .navbar-brand__mark {
height: 1.2em;
height: 2.4em;
width: auto;
flex-shrink: 0;
vertical-align: middle;
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "XCSoar documentation — manuals, quick guides, hardware compatibi
menu: docs
---

## Manual
## Manual {#manual}

Manuals of the stable version {{ site.xcsoar_stable_version }}:

Expand Down
205 changes: 95 additions & 110 deletions hardware/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,153 +2,138 @@
layout: simple
color: green
title: Hardware
description: "Platforms, embedded flight hardware, and XCSoar device drivers — Android, Kobo, OpenVario, varios, loggers, and community-tested setups."
menu: hardware
---

XCSoar runs on a wide variety of hardware: desktop computers
(Windows, Linux), Android (smartphones, tablets, car GPS), and embedded Linux.
E-ink readers such as the Kobo are very good platforms aswell.
XCSoar runs on many kinds of hardware: **desktop** (Windows, Linux), **Android** (phones, tablets, and car GPS units), **iOS**, and **embedded Linux**. **E-ink** devices such as Kobo e-readers are popular: the screen is monochrome but stays readable in bright sunlight.

XCSoar is compatible with many peripheral hardware such as varios and
loggers. Consult [the manual](/docs/) for an extensive
list.
XCSoar works with a wide range of **peripherals** (varios, loggers, FLARM, and more). For wiring, protocols, and manuals, see [the documentation](/docs/). The **built-in device drivers** are listed first; further down are **community-reported** Android and Kobo setups.

Many users ask us what hardware they shall buy for running XCSoar. This
section describes setups that have been verified to work well. Please note
that screen readabillity in direct sunlight is a key feature when choosing a
device.
Those examples are **not product endorsements**. XCSoar’s needs change over time—check the current [download](/download/) page for **minimum OS versions** before you buy. For cockpits, **sunlight readability** matters as much as raw specs.

# Android
## Dedicated embedded hardware {#dedicated-embedded-hardware}

XCSoar has been reported to work on many android products, whether they are
smartphones, tablets or car GPS. Note that XCSoar requires Android 5.0 or up.
Besides consumer phones and tablets, XCSoar is often used with **purpose-built embedded systems**: panel displays, single-board flight computers, and sensor boxes designed for gliders (custom Linux images, embedded Android stacks, or avionics that stream data to XCSoar over serial or Bluetooth).

Android devices known to work well with XCSoar are:
- Google Pixel 8
- Google Pixel 8 Pro
- Galaxy S22 Ultra
- Google Pixel 6
- Google Pixel 2
- Cat S61
- **[OpenVario](https://www.openvario.de/)** — open flight computer stack; build your own or source an assembled unit via the project site.
- **[SteFly](https://www.stefly.aero/)** (stefly.aero) — **Larus** gliding sensor hardware and related avionics; works with OpenVario, tablets, or other displays running XCSoar.
- **[XCNav](https://xcnav.de/)** — Android-based embedded navigation hardware for gliding and ultralight flying.
- **[XCVario](https://xcvario.com/)** — stand-alone variometer family that exports sensor data to XCSoar (OpenVario, Borgelt, Cambridge-style protocols, Bluetooth/Wi‑Fi/serial).

Android devices known to have issues with XCSoar are:
- Xiaomi * , due to a [Bluetooth issue](https://github.com/XCSoar/XCSoar/issues/1279)
## Built-in device drivers {#built-in-device-drivers}

These are the **instrument and simulator drivers** shipped with XCSoar (the labels you pick in *System → Devices*). They are defined in [`src/Device/Register.cpp`](https://github.com/XCSoar/XCSoar/blob/master/src/Device/Register.cpp) in the [XCSoar source tree](https://github.com/XCSoar/XCSoar/tree/master/src/Device/Driver). Use **Generic** for standard NMEA when your hardware does not have a dedicated entry.

## Built-in GPS
### Variometers and glide computers {#variometers-and-glide-computers}

Most Android devices have built-in GPS. It is good enough for many pilots,
but there are reasons to connect to other devices: better accuracy,
MacCready synchronization, task declaration, IGC file download...
- [BlueFly Vario](https://www.blueflyvario.com/)
- [Borgelt B50/B800](http://www.borgeltinstruments.com/)
- [Cambridge CAI302](https://cambridge-aero.com/)
- [Cambridge CAI GPS-NAV](https://cambridge-aero.com/)
- [Cambridge L-Nav](https://cambridge-aero.com/)
- [Digifly Leonardo](https://www.digifly.it/en/)
- [Flymaster F1](https://www.flymaster.net/)
- [FlyNet Vario](http://www.asinstrument.ch/) — ASI
- [Flytec 5030 / Brauniger](https://www.flytec.com/) — Flytec / Bräuniger (Volirium)
- [ILEC SN10](https://www.ilec.de/)
- [Larus](https://www.stefly.aero/en/product/larus_glider_sensor/) — [SteFly](https://www.stefly.aero/) (stefly.aero), Larus open sensor project
- [LöFGREN Variometer](https://www.lofgren-electronics.fr/)
- [Lx Eos / Era](https://www.lxnavigation.com/) — LX Navigation
- [LXNAV](https://gliding.lxnav.com/) — variometer and instrument line (S-series, V7, Nano, …)
- [OpenVario](https://www.openvario.de/)
- [Thermal Express](https://github.com/XCSoar/XCSoar/tree/master/src/Device/Driver/ThermalExpress) — *protocol-only driver in tree; unknown OEM link—use **Generic** if needed*
- [Vega](https://cambridge-aero.com/) — Cambridge
- [Westerboer VW1150](https://www.westerboer.de/)
- [XC-Tracer Vario](https://www.xctracer.com/en/)
- [XCVario](https://xcvario.com/)
- [Zander / SDI](https://github.com/XCSoar/XCSoar/blob/master/src/Device/Driver/Zander.cpp) — Zander instruments with SDI-family data (related to PosiGraph / SDI; see driver notes)

## Bluetooth or IOIO
### Sensors only {#sensors-only}

Android devices do not have a serial port. There are two ways to
connect peripherals:
- [Altair Recording Unit](https://cambridge-aero.com/) — Cambridge
- [Compass C-Probe](https://www.compass-italy.com/)
- [EYE sensor-box](https://github.com/XCSoar/XCSoar/tree/master/src/Device/Driver/Eye.cpp) (experimental) — *no stable OEM page; use **Generic** if needed*
- [EW Logger](https://www.ew.aero/)
- [EW microRecorder](https://www.ew.aero/)
- [FLARM](https://flarm.com/)
- [IMI ERIXX](http://www.imi-gliding.com/)
- [Levil AHRS](https://levil.com/)
- PosiGraph Logger — Streamline Digital Instruments (SDI); legacy hardware often documented alongside [LX Navigation](https://www.lxnavigation.com/) / [LXNAV](https://gliding.lxnav.com/) support
- [Stratux](https://github.com/cyoung/stratux)
- [Volkslogger](http://www.volkslogger.org/) — Garrecht / Volkslogger
- [WSI Vaulter](https://github.com/XCSoar/XCSoar/tree/master/src/Device/Driver/Vaulter) — WSI (*upstream site not linked in XCSoar*)

- *Bluetooth*: the wireless solution; you can connect up to 7
Bluetooth adapters to your Android
- *IOIO*: the wired solution; one IOIO adapter has up to 4 serial
ports and charges your Android at the same time
### Transponders and radios
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add an explicit anchor to the radios section heading.

Line 67 is the only peer subsection without a {#...} anchor, which makes intra-page linking inconsistent.

Suggested fix
-### Transponders and radios
+### Transponders and radios {`#transponders-and-radios`}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Transponders and radios
### Transponders and radios {`#transponders-and-radios`}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hardware/index.md` at line 67, Add an explicit anchor to the "Transponders
and radios" subsection heading by updating the heading text "Transponders and
radios" to include a consistent anchor (e.g., "### Transponders and radios
{`#transponders-and-radios`}" or "{`#radios`}") so it matches the other peer
subsections and enables intra-page linking; locate the "Transponders and radios"
heading and append the chosen {#...} anchor immediately after the heading text.


Examples for Bluetooth adapters:
- [Air Control Display](https://www.air-avionics.com/) — AIR Avionics
- [ATR833](https://www.funkwerk.com/) — Funkwerk Avionics
- [KRT2](https://www.tqaviation.com/) — TQ Avionics
- [XCOM760](http://www.xcom760.com/) — XCOM Avionics

- [SoarTronic's bluetooth adapter](http://www.soartronic.net/products)
BT1 (only compatible with FLARM) and BT2
- [K6-Team K6 BT Mux 2](https://www.k6-team.de/K6-Bt-Mux-2-NMEA-Multiplexer-mit-Bluetooth)
a solution that allows baud rate switching
**Desktop flight simulators** (not panel hardware): [Condor Soaring Simulator](https://www.condorsoaring.com/) (incl. Condor 3). **Generic I/O:** **Generic** (plain NMEA fallback), **NMEA output** (send-only to other equipment).

Examples for IOIO adapters:
Driver sets and behaviour change by release; see upstream **[NEWS.txt](https://github.com/XCSoar/XCSoar/blob/master/NEWS.txt)**.

- [SoarTronic](http://www.soartronic.net/products) has a Do-It-Yourself kit
(without the actual IOIO board)
- you can [build your own](https://github.com/ytai/ioio/wiki)
## Android {#android}

# Kobo
XCSoar runs on many Android devices (phones, tablets, car GPS). **Android 5.0 or newer** is required.

XCSoar supports multiple Kobo e-book readers. These device have an e-ink screen.
It is black and white, but is perfectly readable in direct sunlight.
For **phones** used in the cockpit, prefer a **high-nit** display (high peak brightness) so the map stays readable in direct sun on the canopy. Units that are **tested or rated to [MIL-STD-810](https://en.wikipedia.org/wiki/MIL-STD-810)** are often a good fit: that family of tests covers environmental stress, including **pressure altitude** and **temperature** (heat and cold), which matches sailplane use better than typical consumer-only ratings.

The following Kobo models are supported:
### Devices reported to work well {#android-devices-reported}

- Kobo Mini
- Kobo Glo
- Kobo Touch 2.0
- Kobo Glo HD
- Kobo Aura Edition 2

# Peripherals

## BarOn

The [BarOn](http://aero--tech.ru/en/#BARON) provides atmospheric pressure
changes to XCSoar through bluetooth.

## BlueFlyVario

The [BlueFlyVario](https://www.blueflyvario.com/) provides atmospheric pressure
changes (and, optionally, GPS coordinates) to XCSoar.

## Borgelt B800

The [Borgelt B800](http://www.borgeltinstruments.com/?page_id=48)
is fully supported by XCSoar.
The [Borgelt Bluetooth Blade](http://www.borgeltinstruments.com/?page_id=156)
is the dedicated bluetooth adapter.
- Google Pixel 8
- Google Pixel 8 Pro
- Galaxy S22 Ultra
- Google Pixel 6
- Google Pixel 2
- Cat S61

## Cambridge CAI302
### Devices with known issues {#android-devices-known-issues}

The CAI302 is fully supported by XCSoar, thanks to Cambridge's
complete protocol documentation. To allow fast IGC file download, it
is recommended to use the
[K6-Team Bluetooth adapter](https://www.k6-team.de/K6-Bt-Mux-2-NMEA-Multiplexer-mit-Bluetooth).
- **Xiaomi** models (various), due to a [Bluetooth issue](https://github.com/XCSoar/XCSoar/issues/1279)

## EW microRecorder
### Built-in GPS {#android-built-in-gps}

The EW microRecorder is fully supported by XCSoar.
Most Android devices include GPS that is adequate for many flights. External units are still useful for higher accuracy, MacCready sync, task declaration, faster IGC download, and other features.

## FLARM
### Barometer and accelerometer {#android-barometer-accelerometer}

Connecting to a [FLARM](https://flarm.com) gives you barometric height and information
about nearby traffic (FLARM radar). XCSoar can send task declarations
to an IGC FLARM and can read valid IGC files from it.
Many Android phones and tablets also ship with an internal **barometer** (pressure sensor) and **accelerometer**. XCSoar can use these for pressure altitude, vario-related behaviour, and motion data where the platform exposes them—**sensor quality and sampling differ widely by device**, so a dedicated vario or external GPS/pressure source is still preferable when you need consistent, high-rate data in turbulence or competitions.

[SoarTronic's bluetooth adapter](http://www.soartronic.net/products) is a
cheap way to connect a FLARM.
### Bluetooth and IOIO {#android-bluetooth-ioio}

## IMI ERIXX
Android has no built-in serial port. Typical options:

The [IMI ERIXX](http://www.imi-gliding.com/products/erixx-flight-recorder.html)
is fully supported by XCSoar.
- **Bluetooth** — wireless; you can connect multiple Bluetooth adapters (up to seven in many configurations).
- **IOIO** — wired; one IOIO board can expose several serial ports and charge the device.

LX navigation
-------------
**Bluetooth adapters**

Era 80 is not working with XCSoar due to a [bug in the device](https://github.com/XCSoar/XCSoar/issues/415).
- [SoarTronic Bluetooth adapters](http://www.soartronic.net/products) — BT1 (FLARM-oriented) and BT2
- [K6-Team K6 BT Mux 2](https://www.k6-team.de/K6-Bt-Mux-2-NMEA-Multiplexer-mit-Bluetooth) — NMEA multiplexer with baud rate switching

Era 57 is not supported [at the moment](https://github.com/XCSoar/XCSoar/issues/389).
**IOIO**

## LXNAV S7/S8/S100/Nano
- [SoarTronic](http://www.soartronic.net/products) — DIY kit (IOIO board not included)
- [Build your own](https://github.com/ytai/ioio/wiki) — IOIO project wiki

LXNAV [S7](https://gliding.lxnav.com/products/s7/), [S8](https://gliding.lxnav.com/products/s8/),
[S100](https://gliding.lxnav.com/products/s100/) and [Nano](https://gliding.lxnav.com/products/nano/)
are fully supported by XCSoar, thanks to LXNAV's hardware donations.
## Kobo e-readers {#kobo-e-readers}

LXNAV S8, S100 and Nano have built-in Bluetooth.
LXNAV sells [a Bluetooth adapter for the S7](https://gliding.lxnav.com/products/s7-s8-s80-bluetooth-module/).
XCSoar supports several Kobo models. The **e-ink** display is black and white but easy to read in direct sun.

LXNAV Nano [does not support reception of external commands to trigger PEV](https://github.com/XCSoar/XCSoar/issues/1242)
Models recognised in software (by internal hardware ID) are listed in [`src/Kobo/Model.cpp`](https://github.com/XCSoar/XCSoar/blob/master/src/Kobo/Model.cpp) in the XCSoar source. They include:


## OpenVario

XCSoar is at the heart of the [OpenVario flight computer](https://www.openvario.org/doku.php).
While OpenVario can be home-built, it can also be assembled for you by a [builder](https://www.openvario.org/doku.php?id=builders:top).

## XCVario

The [XCVario](https://xcvario.com) is an innovative electronic variometer based on both open hard and software.

## XCNav

THe [XCNav](https://xcnav.de/) XCNav edition is a new Android-based multi-platform navigation system for gliding and ultralight flight.
- Kobo Aura
- Kobo Aura Edition 2
- Kobo Clara 2E
- Kobo Clara HD
- Kobo Glo (incl. refurbished variants covered by the same IDs)
- Kobo Glo HD
- Kobo Libra 2
- Kobo Libra H2O
- Kobo Mini
- Kobo Nia
- Kobo Touch (original)
- Kobo Touch 2.0
6 changes: 5 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<p>
XCSoar is a tactical glide computer for glider pilots.
</p>
<p>Notable features include:</p>
<ul>
<li><strong>Moving map</strong> with terrain, topography, and airspace from worldwide databases, including <a href="https://openaip.net/" target="_blank" rel="noopener noreferrer">OpenAIP</a></li>
<li><strong>Real-time calculations</strong> and navigation</li>
Expand All @@ -23,13 +24,16 @@
<li><strong>Contest scoring</strong> with automatic <a href="https://weglide.org" target="_blank" rel="noopener noreferrer">WeGlide</a> integration and <a href="https://skylines.aero" target="_blank" rel="noopener noreferrer">SkyLines</a> tracking</li>
<li><strong>Weather integration</strong> with <a href="https://www.aviationweather.gov/metar" target="_blank" rel="noopener noreferrer">METAR</a>, <a href="https://www.drjack.info/RASP/" target="_blank" rel="noopener noreferrer">RASP</a> forecasts, satellite imagery, and automatic thermals from <a href="https://thermalmap.info" target="_blank" rel="noopener noreferrer">TIM</a></li>
<li><strong>Airspace warnings</strong> with real-time alerts and filtering</li>
<li><strong>Device integration</strong> supporting many manufacturers</li>
<li><strong><a href="/hardware/">Device integration</a></strong> supporting many manufacturers</li>
<li><strong>Flight analysis</strong> with barograms and performance metrics</li>
<li><strong>Multi-platform</strong> - Linux, Android, iOS, and Windows</li>
</ul>
<p>
For cross-country, competitions, or training, XCSoar provides the tools for informed decisions in flight.
</p>
<p>
XCSoar is built with privacy in mind and released as <a href="https://en.wikipedia.org/wiki/Free_software" target="_blank" rel="noopener noreferrer">software libre</a>, so you may run, study, share, and <a href="https://xcsoar.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer">improve</a> it on your own terms.
</p>
</section>

<section id="screenshots" class="col-md-7 order-1 order-md-2">
Expand Down
Loading