PingStation 3
ICD
Rev B
UAV-1005951-001
User Manual
Overview
ping station is an environmentally protected, networked dual-link ADS-B receiver.
It can be configured for use in both internet-connected and disconnected environments and provides an extensible platform for collecting and processing surveillance data.
A single Ethernet port provides data connectivity and power to the device using Power-over-Ethernet (PoE). The device contains a DHCP client and accepts DHCP leases based on the existing network policy. To determine the assigned device address please consult your network administrator.
Surveillance data may be consumed using the methods detailed here.
Data Class
Data is received by pingStation and undergoes processing. The received aircraft data is parsed and assembled, it may contain information derived from a number of packets. This information may be JSON, CompressedVRS, or ASTERIX CAT021 formatted and is stateless and fully self-describing.
2.1 JSON Traffic object
The pingStation delivers fields in the traffic table that is valid where field validity can be determined. This includes coordinates, altitude, heading, velocity, callsign, squawk, vertical velocity, and barometer difference. The JSON array of fields is dynamic.
The JSON document consists of an array of aircraft containing the following fields:
| Field Name | Data Type | Description |
| ICAO address | %02X%02X%02X | ICAO of the aircraft |
| trafficSource | %d | 0 = 1090ES 1 = UAT |
| add | %f | Latitude expressed as decimal degrees |
| London | %f | Longitude expressed as decimal degrees |
| altitude | %ld | Geometric altitude or barometric pressure altitude in millimeters |
| headingDE2 | %d | Course over the ground in centi-degrees |
| horVelocityCMS | %lu | Horizontal velocity in centimeters/sec |
| verVelocityCMS | %ld | Vertical velocity in centimeters/sec with positive being up |
| squawk | %d | Squawk code |
| altitudeType | %d | Altitude Source 0 = Pressure 1 = Geometric |
| emitter type | %d | Category type of the emitter 0 = No aircraft type information 1 = Light (ICAO) < 15,500 lbs 2 = Small – 15,500 to 75,000 lbs 3 = Large – 75,000 to 300,000 lbs 4 = High Vortex Large (e.g., B757) 5 = Heavy (ICAO) – > 300,000 lbs 6 = Highly Maneuverable > 5G acceleration and high speed 7 = Rotorcraft 8 = (Unassigned) 9 = Glider/sailplane 10 = Lighter than air 11 = Parachutist/sky diver 12 = Ultralight/hang glider/paraglider 13 = (Unassigned) 14 = Unmanned aerial vehicle 15 = Space/trans-atmospheric vehicle 16 = (Unassigned) 17 = Surface vehicle-emergency vehicle 18 = Surface vehicle-service vehicle 19 = Point Obstacle (includes tethered balloons) 20 = Cluster Obstacle 21 = Line Obstacle 22-39 = (Reserved) |
| sequenceNumber | %d | Auto incrementing packet sequence number |
| pingStationGuid | %02x%02x%02x%02x %02x%02x%02x%02x | Unique pingStation identifier |
| utcSync | %d | UTC time flag |
| timeStamp | %s | The timing packet was processed on the pingStation ISO 8601 format: YYYY-MM-DDTHH:mm:ss:ffffffffZ |
| time receptions | %lu | Raw GPS second counter that the pingStation was in when the ADSB packet was delivered. |
| timeOfReceptionNS | %lu | The number of nanoseconds into the current GPS PPS pulse that the packet received. |
A field called “detail” may be present containing the following data:
| Field Name | Data Type | Description |
| Common Fields to 1090ES and UAT | ||
| navIntegrity | %d | Navigation integrity category (NIC) 0 = RC >=37.04 km (20 NM) Unknown Integrity 1 = RC < 37.04 km (20 NM) RNP-10 containment radius 2 = RC < 14.816 km (8 NM) RNP-4 containment radius 3 = RC < 7.408 km (4 NM) RNP-2 containment radius 4 = RC < 3.704 km (2 NM) RNP-1 containment radius 5 = RC < 1852 m (1 NM) RNP-0.5 containment radius 6 = RC < 1111.2 m (0.6 NM) RNP-0.3 containment radius 7 = RC < 370.4 m (0.2 NM) RNP-0.1 containment radius 8 = RC < 185.2 m (0.1 NM) RNP-0.05 containment radius 9 = RC < 75 m and VPL < 112 m e.g., SBAS, HPL, VPL 10 = RC < 25 m and VPL < 37.5 m e.g., SBAS, HPL, VPL 11 = RC < 7.5 m and VPL < 11 m e.g., GBAS, HPL, VPL 12 = (Reserved) (Reserved) 13 = (Reserved) (Reserved) 14 = (Reserved) (Reserved) 15 = (Reserved) (Reserved) |
| accuracy | %d | Navigation accuracy category (NAC) 0 = Unknown or >= 10 m/s Unknown >= 50 feet (15.24 m) per second 1 = < 10 m/s < 50 feet (15.24 m) per second 2 = < 3 m/s < 15 feet (4.57 m) per second 3 = < 1 m/s < 5 feet (1.52 m) per second 4 = < 0.3 m/s < 1.5 feet (0.46 m) per second 5 = (Reserved) (Reserved) 6 = (Reserved) (Reserved) 7 = (Reserved) (Reserved) |
| verVelocitySrc | %d | Vertical velocity source 0 = Pressure 1 = Geometric |
| emergency status | %d | Emergency status 0 = No-Emergency 1 = General Emergency 2 = Lifeguard/Medical 3 = Min Fuel 4 = No Comm 5 = Unlawful Interference 6 = Downed Aircraft |
| sysIntegrityLevel | %d | Source Integrity Level (SIL) – indicates the probability of the reported horizontal position exceeding the containment radius defined by the NIC |
| sysDesignAssurance | %d | System Design Assurance (SDA) – indicated the probability of an ADS-B system malfunction causing false or misleading position |
| airGroundState | %d | Airborne or ground 0 = Airborne subsonic condition 1 = Airborne supersonic condition 2 = On ground condition |
| svHeadingType | %d | Track angle from heading 0 = Data Not Available 1 = True Track Angle 2 = Magnetic Heading 3 = True Heading |
| verticalVelType | %d | Vertical rate information 0 = Pressure 1 = Geometric |
| navPositionAccuracy | %d | The reported State Vector has sufficient position accuracy for the intended use (NACp) 0 = EPU >= 18.52 km (10 NM) 1 = EPU < 18.52 km (10 NM) 2 = EPU < 7.408 km (4 NM) 3 = EPU < 3.704 km (2 NM) 4 = EPU < 1852 m (1NM) 5 = EPU < 926 m (0.5 NM) 6 = EPU < 555.6 m (0.3 NM) 7 = EPU < 185.2 m (0.1 NM) 8 = EPU < 92.6 m (0.05 NM) 9 = EPU < 30 m and VEPU < 45 10 = EPU < 10 m and VEPU < 15 11 = EPU < 3 m and VEPU < 4 m 12 = (Reserved) 13 = (Reserved) 14 = (Reserved) 15 = (Reserved) |
| navVelocityAccuracy | %d | The least accurate velocity component being transmitted (NAC) 0 = Unknown or >= 10 m/s Unknown or >= 50 feet (15.24 m) per second 1 = < 10 m/s < 50 feet (15.24 m) per second 2 = < 3 m/s < 15 feet (4.57 m) per second 3 = < 1 m/s < 5 feet (1.52 m) per second 4 = < 0.3 m/s < 1.5 feet (0.46 m) per second 5 = (Reserved) (Reserved) 6 = (Reserved) (Reserved) 7 = (Reserved) (Reserved) |
| navIntegrityBaro | %d | Barometer checked (NICbaro) 0 = Barometric Pressure Altitude has NOT been cross-checked 1 = Barometric Pressure Altitude has been cross-checked |
| geoVerticalAccuracy | %d | Geometric Vertical Accuracy (GVA) 0 Unknown or > 150 meters 1 ≤ 150 meters 2 ≤ 45 meter |
| tcasAcasOperating | %d | The aircraft is fitted with a TCAS (ACAS) computer and the computer is turned on and operating in a mode that can generate Resolution Advisory (RA) alerts |
| tcasAcasAdvisory | %d | TCAS II or ACAS computer is currently issuing a Resolution Advisory |
| identSwActive | %d | The ident switch is activated |
| atcServicesRecvd | %d | ATC pilot message mode setting 0 = Not receiving ATC messages 1 = Receiving ATC messages |
| magHeading | %d | True north or magnetic north 0 = True north 1 = Magnetic north |
| utcCoupledCondition | %d | Represents if the Ground Station is UTC-Coupled 0 = Ground Station is not UTC coupled 1 = Ground Station is UTC coupled |
| 1090ES Specific Fields | ||
| surveilStatus | %d | Surveillance status 0 = No Condition 1 = permanent alert 2 = temp alert 3 = SPI |
| baroaltDiffMM | %ld | Difference between the pressure altitude and the GNSS altitude in mm |
| 1090esMopsVersion | %d | 1 = DO-260A 2 = DO-260B |
| UAT Specific Fields | ||
| secondaryAltType | %d | Altitude source 0 = Pressure 1 = Geometric |
| secondaryAltitudeMM | %ld | Geometric altitude or barometric pressure altitude in millimeters |
| tisBSiteId | %d | The tisBSiteId is unit-less and is from the transmitted TISb UAT message signifies which uplink tower transmitted the TISb frame |
| transmitMSO | &d | the transmitMSO is the 6bit field from the transmitted UAT message which should signify which MSO the message was transmitted in. MSOs can range from 0 to 3951 but only transmit the 6 LSBs of the actual MSO if transmitted. The received range is from 0 – 63. |
| address qualifier | %d | Defines the type of target that delivered the data 0 = ADS-B target with ICAO 24-bit 1 = Reserved for National use 2 = TIS-B target with ICAO 24-bit address 3 = TIS-B target with track file identifier 4 = Surface Vehicle 5 = Fixed ADS-B Beacon 6 = (Reserved) 7 = (Reserved |
| uatMopsVersion | %d | 1 = DO-282A 2 = DO-282B |
| call signed | %d | 0 = Flightplan 1 = CallSign |
2.2 JSON Status object
Periodic health and status JSON.
| Field Name | Data Type | Description |
| pingStationGuid | %02x%02x%02x%02x %02x%02x%02x%02x | Unique pingStation identifier |
| pingStationVersionMajor | %d | PINGSTATION_MAJOR_VERSION |
| pingStationVersionMinor | %d | PINGSTATION_MINOR_VERSION |
| pingStationVersionBuild | %d | PINGSTATION_BUILD_VERSION |
| timeStamp | %s | Time packet was received at the pingStation ISO 8601 format |
| pingStationLatDD | %f | Fixed station latitude expressed as decimal degrees |
| pingStationLonDD | %f | Fixed station longitude expressed as decimal degrees |
| pingStationAltType | %d | 0 = Barometric Altitude 1 = GNSS Altitude |
| pingStationAltMM | %d | Altitude in mm |
| gpsStatus | %d | The communication and health status of the pingStation GPS 0 = GPS not present or functioning 1 = Not locked 2 = 2D fix 3 = 3D fix 4 = DGPS fix |
| receiver status | %d | The communication and health status of the pingStation receiver 0 = functioning normally 1 = excessive communication errors 2 = device not transmitting |
2.3 CompressedVRS
pingStation3 supports ADS-B Target Reports encoded in the CompressedVRS Feed Format. The full specifications of this format can be found on The Virtual Radar Server website.
2.4 ASTERIX CAT021 ADS-B Report
pingStation3 supports ADS-B Target Reports via ASTERIX Category 021 (CAT021), whose full specification can be found on the EUROCONTROL website. Reports are composed of Data Items assembled in the order defined by the Field Reference Number (FRN) in the associated User Application Profile (UAP) and transmitted in the following layout within the Data Block:
| CAT = 021 | LEN | FSPEC | Items of the first record | FSPEC | Items of the last record |
where:
- “CAT = 021,” or the Data Category, is a one-octet field indicating that the Data Block contains ADS-B reports;
- “LEN,” or the Length Indicator, is a two-octet field indicating the total length in octets of the Data Block, including the CAT and LEN fields;
- and “FSPEC” is the Field Specification, which is a field of up to seven octets that indicates which Data Items are to be transmitted in a record, with the presence of a Data
Item indicated by having its corresponding FSPEC bit set to ‘1’.
Of the fields specified by CAT021, pingStation3 uses the subset defined below.
The transmission of each field depends on the availability of valid data to populate that field as received by the pingStation3.
| FRN | Data Item | Information |
| 1 | I021/010 | Data Source Identification |
| 2 | I021/040 | Target Report Descriptor |
| 6 | I021/130 | Position in WGS-84 coordinates |
| 7 | I021/131 | Position in WGS-84 coordinates, high res. |
| 9 | I021/150 | Air Speed |
| 10 | I021/151 | True Air Speed |
| 11 | I021/080 | Target Address |
| 12 | I021/073 | Time of Message Reception of Position |
| 14 | I021/075 | Time of Message Reception of Velocity |
| 16 | I021/140 | Geometric Height |
| 17 | I021/090 | Quality Indicators |
| 18 | I021/210 | MOPS Version |
| 19 | I021/070 | Mode 3/A Code |
| 21 | I021/145 | Flight Level |
| 22 | I021/152 | Magnetic Heading |
| 23 | I021/200 | Target Status |
| 24 | I021/155 | Barometric Vertical Rate |
| 25 | I021/157 | Geometric Vertical Rate |
| 26 | I021/160 | Airborne Ground Vector |
| 28 | I021/077 | Time of Report Transmission |
| 29 | I021/170 | Target Identification |
| 30 | I021/020 | Emitter Category |
| 36 | I021/008 | Aircraft Operational Status |
Protocols
3.1 UDP
The pingStation JSON and ASTERIX CAT021 data can be delivered as UDP to a specified host IP address and port number. The UDP destination and port number can be entered using the webpage interface at http://nnn.nnn.nnn.nnn/. As aircraft data is received into the pingStation, it is timestamped and formatted before being pushed to the UDP listener. Each UDP datagram contains a single aircraft update. The aircraft JSON data will contain the optional “detail” object.
Data will be continually streamed out to the UDP listener as aircraft updates arrive. Every 30 seconds a JSON status object will be delivered if the ping station is configured to send JSON over UDP. The data is dynamic in that only valid fields will be formatted and sent on to the UDP host.
To disable UDP send functionality, enter an IP address of 0.0.0.0 on the configuration webpage at http://nnn.nnn.nnn.nnn/.
3.2 TCP
The pingStation CompressedVRS and ASTERIX CAT021 data can be delivered as TCP to a specified host IP address and port number. The TCP destination and port number can be entered using the webpage interface at http://nnn.nnn.nnn.nnn/.
As aircraft data is received into the pingStation, it is timestamped and formatted before being pushed to the TCP listener. Each TCP payload contains a single aircraft update.
To disable TCP send functionality, enter an IP address of 0.0.0.0 on the configuration webpage at http://nnn.nnn.nnn.nnn/.
3.3 REST
The pingStation data can be accessed in a basic pull model using the REST protocol which will return the JSON formatted data. Data can be accessed by using the GET method to the pingStation URL (nnn.nnn.nnn.nnn).
The pingStation base URL is: http://nnn.nnn.nnn.nnn/api/v1/
Example resource paths are:
http://nnn.nnn.nnn.nnn/api/v1/traffic
http://nnn.nnn.nnn.nnn/api/v1/status
No GET query strings are currently supported to limit returned data sets.
JSON Example Sentences
4.1 Traffic Object


4.2 Status Object


ASTERIX CAT021 Example Packet




















