Flight Simulator GPS Integration (UDP Protocol)

Developers of flight simulators can integrate their GPS or traffic feed into ForeFlight Mobile.

The simulator will need to send GPS info packets on UDP port 49002 once per second in the form of a string message like this:

     XGPSMy Sim,-80.11,34.55,1200.1,359.05,55.6

The "words" are separated by a comma (no word may contain a comma). The required terms are:

- Longitude

- Latitude

- Altitude in meters MSL

- Track-along-ground from true north

- Groundspeed in meters/sec

XGPS messages arrive at 1Hz (once per second, evenly spaced in time). There is a maximum size limit for the message, so try to use shorter names as part of the XGPS word. 2-3 decimals of precision are appropriate for the lat/long and track values. Speed and altitude are fine with just one decimal of precision.

For traffic data, the simulator will need to send packets in the form of a string message like this:

XTRAFFICMy Sim,168,33.85397339,-118.32486725,3749.9,-213.0,1,68.2,126.0,KS6

The "words" are separated by a comma (no word may contain a comma). The required words are:

- XTRAFFIC followed by a name/ID of the simulator type sending the data (that might be "My Sim" without quotes)

- ICAO address, an integer ID

- Traffic latitude - float

- Traffic longitude - float

- Traffic geometric altitude - float (feet)

- Traffic vertical speed - float (ft/min)

- Airborne boolean flag - 1 or 0: 1=airborne; 0=surface

- Heading - float, degrees true

- Velocity knots - float

- Callsign - string

There is a maximum size limit for the message, so don't use a very long name as part of the XTRAFFIC word. 2-3 decimals of precision are appropriate for the lat/long and track values. Speed and altitude are fine with just one decimal of precision.

For attitude data, the simulator will need to send packets at a 4-10Hz rate, evenly spaced in time, in the form of a string message like this:

XATTMy Sim,180.2,0.1,0.2

The "words" are separated by a comma (no word may contain a comma). The required words are:

- XATT followed by a name/ID of the simulator type sending the data (that might be "My Sim" without quotes)

- True Heading - float

- Pitch - degrees, float, up is positive

- Roll - degrees, float, right is positive

Sending a broadcast packet, which all iPads will see on the network, is the preferred method to prevent the user from having to provide the IP address of their iPad. However, that transmission method is not appropriate for all simulator setups or network/firewall configurations.