ForeFlight Integration¶
ForeFlight is the most-used Electronic Flight Bag (EFB) in general aviation. AZSuite imports flight tracks from ForeFlight via KML or GPX export — your flights logged on ForeFlight become attached tracks on your AZSuite logbook entries.
What's supported¶
| Direction | Supported | How |
|---|---|---|
| ForeFlight track → AZSuite | ✅ | KML or GPX export, manual upload OR foreflight_sync.php |
| AZSuite logbook → ForeFlight | ❌ | Not currently supported |
| ForeFlight logbook → AZSuite | ❌ | Not currently supported |
| Live data feed (in-flight) | ❌ | ForeFlight uses Stratus 3 protocol; not compatible |
If you log flights primarily in ForeFlight, the typical workflow is: fly with ForeFlight tracking → land → export the track → upload to AZSuite to attach to your AZSuite logbook entry.
Exporting from ForeFlight¶
In the ForeFlight app:
- More → Track Logs (or Flights in some versions)
- Find the flight you want to export
- Tap the share icon
- Choose Export → KML (preferred) or GPX
- Send via email / AirDrop / Files app
The exported KML contains:
- GPS positions every few seconds
- Altitude (sometimes — depends on ForeFlight version)
- Ground speed (sometimes — depends)
- Timestamps
Importing into AZSuite¶
Method 1: Via the pilot logbook entry¶
- Go to Pilot Logbook on the web
- Open the entry the track belongs to (or create it first)
- Click Attach Track (or Save and Log Track when creating a new entry)
- Drop the KML file onto the upload zone, or click to browse
- AZSuite parses the KML, normalizes the track, and saves
Method 2: Bulk import via foreflight_sync.php¶
If you have many ForeFlight tracks at once:
- Open
foreflight_sync.phpon the web - Select multiple KML files (drag-and-drop or shift-click)
- AZSuite attempts to match each track to an existing logbook entry by date / route / aircraft
- Confirm matches; AZSuite saves each track to its matched entry
- Tracks that didn't match are listed as "unmatched" — you can manually pick a logbook entry for each
Method 3: From the mobile app¶
Mobile doesn't ingest ForeFlight KMLs directly; it has its own live track recorder. If you want a flight recorded by ForeFlight, use the web import flow.
Track normalization¶
ForeFlight's tracks can be noisy:
- Airspeed and ground-speed sometimes contain large spikes
- Altitude occasionally jumps when the GPS solution is degraded
- The first / last few seconds may have no fix at all
AZSuite normalizes incoming ForeFlight tracks more aggressively than other sources to clean these up:
- Spike detection on speed (anything > 2× the median for that time window is smoothed)
- Altitude smoothing on the same principle
- Trim leading / trailing samples without a valid fix
The result is a smoother, more visually reasonable replay. If you want the raw track as-is, there's a "raw" view in the flight replay.
Why ForeFlight specifically
Other sources (Garmin G5, Stratux ADS-B) send cleaner data — instrument-grade rates and high-fidelity GPS. ForeFlight is iOS-app GPS plus user input. The aggressive normalization is to compensate for ForeFlight's source quality, not to second-guess the others.
Re-importing after a parser fix¶
If an old ForeFlight track had alt/speed data that wasn't being captured correctly, AZSuite might have missed it the first time. After a parser fix, you can re-parse the stored track without re-uploading:
This downloads the original file from object storage, runs it through the
current parser, and replaces the rows in flight_track_points (the original
KML stays untouched).
This is mostly an admin / support tool — it's why we keep the original upload in object storage even after parsing.
Aspect ratio: KML vs GPX¶
If your ForeFlight version supports both formats, prefer KML — it tends to include more metadata (timestamps, altitude) than GPX in the default export. GPX from ForeFlight often lacks altitude entirely.
Where the file goes¶
After upload, the original KML is stored in the appropriate object-storage
bucket (typically adsb-tracks on Wasabi). Parsed track points go into the
flight_track_points table. The link from logbook entry to track is via
flight_entries.adsb_flight_id.
The original file is preserved so we can re-parse if the parser improves.