-
Ruby 2.5, 2.6, 2.7 or 3.0, 3.1, 3.2
-
Electronic flight bag app (EFB) or other NMEA/FLARM/GDL90 receiver
The tool simulates the aircraft position flying east, 5 planes with full position/distance information flying south and one bearingless aircraft flying north, such that the EFB has a lot of traffic to announce.
Send GDL90 UDP packets to 10.1.1.1 port 4000:
ruby ./airtraffic.rb --gdl 10.1.1.1:4000
GDL90 does not support bearingless traffic, so the bearingless aircraft is shown as normal traffic.
Open NMEA listener on port 2000:
ruby ./airtraffic.rb --nmea 0.0.0.0:2000
The target IP is not configurable within the EFB app, so the network has to be set up such that the EFB can connect 192.168.1.1:2000. The network has to route to the listener via port forwarding, dedicated WLAN or other means.
The bearingless aircraft is presented in the NMEA PFLAA record with distance in "RelativeNorth" field and empty "RelativeEast". The only EFB supporting bearingless aircraft is SkyDemon in NMEA/FLARM mode.
Multiple connections are possible.
Tested with OpenWRT 22.03.2 on a device with 16M flash.
Connect to the LAN port of device and copy the script:
scp airtraffic.rb [email protected]: # OpenSSH < 9.0 scp -O airtraffic.rb [email protected]: # OpenSSH >= 9.0
Setup network access via web interface and connect with SSH to install prerequisites:
root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install ruby ruby-optparse ruby-socket ruby-yaml
Reconfigure the device’s wireless network to "Master" mode, assign an IP and enable DHCP. Connect the EFB to the new wireless network and start the script (you may need to adjust the GDL90 IP):
root@OpenWrt:~# ruby ./airtraffic.rb --nmea 0.0.0.0:2000 --gdl 10.1.1.1:4000
-
NMEA/FLARM
-
Enable the device: Setup → Third-Party Devices → FLARM Devices → Air Avionics AT-1
-
Start with: Fly → Use Air Avionics AT-1
-
SkyDemon will connect to TCP 192.168.1.1:2000
-
-
GDL90
-
Enable the device: Setup → GDL90 Compatible Device
-
Start with: Fly → Use GDL90 Compatible Device
-
Send GDL90 traffic to the IP of your mobile device, destination port 4000
-
-
NMEA/FLARM
-
ForeFlight automatically connects to TCP 192.168.1.1:2000 on startup
-
-
GDL90
-
ForeFlight automatically opens an UDP listener on port 4000 on startup
-
Send GDL90 traffic to the IP of your mobile device, destination port 4000
-
ForeFlight will try to connect back to the IP sending GDL90 on TCP port 2000 for NMEA and run both protocols at the same time when successful
-
-
2025-02-04: Added Stratux mode to include registration in NMEA/FLARM mode (--stratux)
-
2024-12-30: Added vertical speed option
-
2024-12-26: Accept altitudes in ft and m, speeds in kt, mph, km/h and m/s. Without a unit, altitudes are in meters and speeds in knots. See airtraffic.yaml for examples. Use SI units m and m/s internally. Fixed negative lat/lon values and make NMEA sentences more standard compliant.
-
2023-05-30: Added option to load traffic scene from YAML file
-
2023-05-28: Removed EventMachine dependency. Added OpenWRT instructions.