Skip to content

snstac/gdltak

Repository files navigation

GDLTAK: Display TAK Air Pictures in ForeFlight — CoT to GDL90 Gateway

GDLTAK broadcasts the local Cursor on Target (CoT) air picture as GDL90 over UDP, so Electronic Flight Bag (EFB) apps — ForeFlight, FlyQ EFB, Garmin Pilot — display the same traffic that TAK sees. It is the reverse of adsbcot: CoT in, GDL90 out.

GDLTAK subscribes to CoT (by default the AryaOS / ATAK Mesh SA multicast group), keeps a table of air tracks, and once a second emits GDL90 Heartbeat, Ownship and Traffic Report datagrams the way a stratux or GDL 90 receiver would. Any traffic feeding your TAK network — ADS-B via adsbcot, drone Remote ID via dronecot, tracks from a TAK Server — shows up in the cockpit.

ForeFlight setup

  1. Put the iPad/iPhone on the same Wi-Fi network as the device running GDLTAK (e.g. join the AryaOS hotspot).
  2. That's it — ForeFlight auto-detects GDL90 traffic on UDP port 4000 and lists it under More → Devices. FlyQ and Garmin Pilot behave the same.

Installation

On AryaOS / Debian, from the snstac package repo:

sudo apt install gdltak
sudo systemctl enable --now gdltak

Or from source:

python3 -m pip install gdltak

The Debian package installs:

  • /usr/bin/gdltak
  • /etc/default/gdltak
  • /lib/systemd/system/gdltak.service (ships disabled; enable as above)

Configuration

PyTAK-style, via /etc/default/gdltak (systemd EnvironmentFile), the environment, or an INI file with a [gdltak] section:

Key Default Description
COT_URL udp+ro://239.2.3.1:6969 CoT source (PyTAK URL). Default is the Mesh SA multicast group.
GDL90_URL udp+broadcast://255.255.255.255:4000 GDL90 egress. Broadcast is the stratux/ForeFlight convention; unicast udp://host:port also works.
STALE_SECS 60 Drop tracks not updated within this many seconds.
UPDATE_HZ 1 GDL90 update rate (heartbeat convention is 1 Hz).
OWNSHIP_UID CoT UID whose track becomes the Ownship Report (e.g. this device's gpstak/lincot UID).
OWNSHIP_LAT / OWNSHIP_LON / OWNSHIP_ALT_FT Static ownship position fallback. If no ownship is configured, GDLTAK sends heartbeat + traffic only.
CALLSIGN GDLTAK Ownship callsign shown in the EFB.

PYTAK_* options (TLS client certs, etc.) are passed through to PyTAK, so any PyTAK-supported CoT source works, including TAK Server over TLS.

Notes:

  • CoT carries geometric altitude (HAE); GDLTAK uses it for both the pressure-altitude field of Traffic Reports and the Ownship Geometric Altitude message. EFBs treat it as advisory traffic, not certified ADS-B In.
  • Tracks with UIDs like ICAO-A1B2C3 (adsbcot convention) keep their real 24-bit ICAO address; other tracks get a stable self-assigned address hashed from the UID.

Software Suite

GDLTAK is part of the snstac TAK gateway family, built on PyTAK and pre-installed on AryaOS: adsbcot (aircraft via ADS-B), aiscot (ships via AIS), dronecot (drone Remote ID), lincot / gpstak (own position via GNSS), aprscot (APRS amateur radio), windtak (weather stations) and charontak (CoT routing).

Development

make editable install_test_requirements
make pytest
make package   # Debian package via stdeb

License

Copyright Sensors & Signals LLC — Apache License, Version 2.0.

About

Display TAK air pictures in ForeFlight — Cursor on Target (CoT) to GDL90 gateway

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors