Electronic Conspicuity MonitorHow light aircraft show up on the network, measured live

Field notes

Building the Electronic Conspicuity Monitor meant reading the Open Glider Network feed one packet at a time. Most of it is aircraft saying where they are. The rest is collected here: things that claimed to be what they were not, positions in the wrong hemisphere, one aircraft under several names, and systems doing exactly what their design asks in ways that look like failure. Most of them changed a rule of the method, and each is dated. Nothing here identifies a pilot or a device.

Not what they claimed to be

A weather balloon flying as a paraglider. On the morning of 6 October a “paraglider” crossed the feed at 8,150 m and 157 km/h. A paraglider climbs to 5,000 m on a very good day and flies at 40 km/h. This was most likely a sounding balloon carried by the winds at altitude, with a tracker someone had set to the paraglider category. One such object is enough to fill the highest band of a chart by height with a pilot who is not there, so since 6 October free-flight positions above 6,000 m are left out.

A paraglider at 702 km/h. The same morning another one reported 702 km/h about twenty metres above the ground, while its positions covered 7.9 km in two minutes, which is 240 km/h. It is a faulty device or a badly decoded packet. Since the same day the method sets a speed limit for each kind of aircraft: 100 km/h for a paraglider, and 150 for a hang glider, which can really pass 100 with the wind behind it.

Weather stations that flew. FANET carries weather stations as well as aircraft, and a station puts the wind into the fields an aircraft uses for its course and speed. To a measure that calls anything moving faster than 10 km/h airborne, a station in a breeze was flying. By 5 October they had logged 203 hours of October’s flying time before they were recognised by their symbol and dropped.

Airliners typed as paragliders. OGN receivers also relay ADS-B, the airliners’ system, and write an aircraft type into each packet. In two hours on 6 October, 39 aircraft with the jet symbol, at over 100 km/h, carried the paraglider type, and about a sixth of the ADS-B traffic overall, airliners at 36,000 ft among it, is typed “powered aircraft” or “unknown”. The monitor leaves ADS-B out of its measures, so none of them reached a figure.

A radio for people on the ground. Meshtastic is a mesh for messaging, and some of its nodes forward positions to OGN. Of 1,007 Meshtastic nodes heard in early October, 990 declared no aircraft type at all. Only the 17 that declare one are counted.

Balloons that never left the bench. A search of the 21 hours recorded from the morning of 6 October found no sounding balloon at all, which is what one should expect: radiosondes transmit around 400 MHz and report to networks of their own, so OGN never hears them. Four devices did declare themselves balloons, and all four sat motionless at one spot for the whole day, beside two “drones” on ADS-L and on an OGN tracker, sending positions with no time and no stated accuracy. That is a developer’s test bench. Two more benches look much the same, each a cluster of systems at a single point declaring static objects, UFOs and ground vehicles. A tracker on one of them reported 26 km of altitude and, within the same ten minutes, 300 m: a corrupt altitude, since nothing climbs twenty kilometres in a few minutes.

The pilot on the ground as a “static object”. On 6 October, 609 FANET devices switched during the day from paraglider to “static object”, and 169 the other way. Across the whole of Europe, as static objects, they spent less than an hour in total more than 50 m above the ground. FANET has a ground-tracking message, which an instrument sends once its pilot has landed, to say that the pilot is walking, waiting for a retrieve or needs help, and that is almost certainly what reaches OGN as a static object. Static objects were already outside every measure of flying time.

Packets that change their mind. Now and then an aircraft on FLARM declares itself, for a single packet, something else: a Cessna that sent thousands of packets as a powered aircraft sends one as a drone, often with an impossible altitude or a jump of hundreds of kilometres in the same packet. On 7 October 11,065 FLARM packets, 0.17% of those from aircraft heard all day, declared a kind other than their aircraft’s usual one. Radio noise would be the obvious suspect, and the numbers rule it out. FLARM packets carry a checksum, OGN receivers report how many bits they had to correct, and 91% of these packets needed no correction at all, against 78% of the others. They come from a few stations instead: ten receivers out of 795 sent 82% of them, and at four of those between a fifth and almost half of all packets declared the wrong kind. The likely cause is a receiver that decrypts the packet wrongly, through an outdated decoder or a clock that is off, since FLARM sends the address in clear and encrypts the rest. The monitor gives each aircraft the kind it declares most often that day, so a stray packet changes nothing in the figures.

In the wrong place

An aircraft over Germany drawn in the Gulf of Guinea. To save airtime FLARM sends only the low-order part of its position, and the receiver supplies the rest from where it is itself. A receiver that does not know its own position completes it with zeros, and the aircraft lands near 0° N 0° E, off the coast of Africa. Positions within a degree of that point are now discarded.

Higher than the stratosphere. On a single day early in October, 1,620 FLARM and ICAO addresses reported altitudes above 200,000 ft, about 60 km, and 72 PilotAware packets gave a heading of 999 degrees. They are rejected and counted once an hour, field by field, so that a sudden rise shows.

One address, several aircraft. A few FLARM addresses are in use by more than one device at once, so one “aircraft” jumps hundreds of kilometres between two packets. Any stretch between two packets that would need more than 500 km/h is discarded.

One aircraft, several names

Half of free flight is heard twice. On 4 October, half of the paraglider and hang glider addresses were heard on two or more systems, and 1,031 of 1,049 ADS-L transmitters also sent FLARM or FANET under the same address. Adding up hours per system would have roughly doubled free flight, so flying time is counted per aircraft.

Two devices that fly together. On 6 October a FLARM and a FANET with different addresses moved together for half an hour and 35 km: one pilot carrying two instruments, almost certainly. Different addresses cannot be joined from the feed alone, so such a pilot counts twice. A spot check on 5 October found it rare among phone apps: 4 of 86 app devices had a radio of another address alongside.

PilotAware under another name. When PilotAware’s own ground stations forward a packet, it arrives under the generic APRS label. Counted by label, October had 585 PilotAware devices; counted by what they are, 1,188.

Working as designed, looking like failure

FANET slows down where it is crowded. Its specification asks a device to send its position every 5 seconds with fewer than ten FANET neighbours, every 10 seconds with ten to nineteen, every 15 with twenty to twenty-nine and longer still beyond, so that a busy launch does not saturate the channel. In the feed only 39% of FANET intervals in flight are under 8 seconds. A fixed 5-second rule counted that courtesy as lost signal at exactly the sites where most pilots fly; since 6 October FANET is judged by 15 seconds, the specification’s interval up to 29 neighbours.

An app that sends once a minute. Naviter forwards a position every 60 seconds. A glider covers two kilometres in that minute, so a map shows it well behind wherever coverage is perfect. This is why the monitor judges each source by the time without signal beyond its own interval, and leaves the interval to a separate question.

Phones on the ground. A phone app often stops sending once the aircraft is taxiing or the pilot has landed, and an aircraft rolling at 15 km/h looks airborne to a rule written for paragliders. Below 300 m, apps on powered aircraft seemed to be without signal a third of the time; replayed with a speed suited to each kind of aircraft, it fell to under 4%, and the time above 300 m barely moved. Since 6 October a stretch counts as flight only when both its ends exceed a speed suited to the kind of aircraft.

Airliners taxiing. On the ground, ADS-B sends surface positions with no altitude. At dawn on 6 October they were nearly half of the ADS-B traffic left once cruising airliners had been set aside.

A turn rate the aircraft never sent. Some ADS-L packets carry a turn rate that a ground receiver computed from successive positions. Only a turn rate the aircraft itself transmits is used in the measures.

On the frequency, not in the air

Weather stations of another kind. OGN receivers also decode Davis weather stations, whose outdoor unit transmits in the same 868 MHz band as FLARM and FANET. On 6 October 241 of them sent wind, temperature in Fahrenheit, humidity, sunshine and rain, close to 900,000 lines in a day. They arrive as status lines and never reached a measure.

Meshtastic at home. Of the Meshtastic nodes heard on 6 October, 242 moved less than 300 m in hours of sending, 3,820 hours between them, which is sixteen hours each: base stations in houses and on roofs. Only the nodes that declare an aircraft type are counted.

Drones announcing themselves. Five drones reached the OGN feed on 6 October through their Remote ID, the broadcast identification European rules require of drones, under a label the monitor did not yet know.

The feed itself

A sixteen-bit ceiling. The altitudes the monitor rejects every hour as higher than 200,000 ft are not scattered at random. Almost all of them sit just below 65,536 m, which is 216 metres or about 215,000 ft: a sixteen-bit field has run over its top. It happens in aircraft packets and in receivers announcing their own position alike.

Receivers that wander. Eight of the 2,392 receivers heard on 6 October changed position during the day, one of them across 385 km, and another announced that it stands at 6,530 m. The monitor uses a receiver’s position to measure how far its packets travel, so a receiver in the wrong place credits it with ranges it never achieved.

Who flies at night. Between 19:00 and 04:00 UTC, once weather stations are set aside, the crewed aircraft in the feed were mostly helicopters: about ninety of them flew some twenty hours that night, most likely air ambulances, against about fifteen aeroplanes (airliners, which carry ADS-B only, are not in these figures).

A name that broke a terminal. Devices may broadcast a free-text name, and one FANET device’s name contained a Shift Out character, a control code from the teleprinter era. Shown in a terminal, it switches the screen to the line-drawing character set until someone types reset, which is how it was found.

Privacy written into the packet. A device can ask not to be tracked, in the OGN device database or with a flag inside every packet it sends. The monitor honoured only the database until 5 October, when the flag in the packet was found and honoured too.