From FlightGear wiki
Jump to navigation Jump to search
ATC-pie logo
ATC-pie at the KSFO mess
ATC-pie at the KSFO mess
Developed by Michael Filhol
Written in Python3
Platform Qt5
Development status Active
Type ATC client
License GNU GPL v3

ATC-pie is a radar air traffic control simulation program for the FlightGear network protocol. It is comparable to OpenRadar, but essentially designed for realism. It has begun its beta-testing phase in January 2015.

It is programmed in Python3 for Qt5, so both must be installed, as well as the python3-qt5 bindings. That done, it is meant to work straight away, with no other resource to install or make/compile command to run. No need to install or update FlightGear, download scenery or fetch any external resource before it can run.


Features listed below are already implemented and supposedly stable. Also see the ATC-pie wish list.


  • Floatable/dockable GUI panes: strips, radios, text chat, etc.
  • General and airport-specific settings saved on close and restored on restart
  • Real METAR updates with selectable weather station
  • Real declination lookup and true/magnetic distinction
  • Data retrieved from the latest X-Plane file set
  • Notification system combining sounds and a time-tagged list
  • In-app announcement of ATC session on Lenny64's popular ATC event page

Transponder support

  • Realistic mode-dependant behaviour (modes 0, A, C, S)
  • Choice for default mode for the many FlightGear aircraft models still not equipped
  • Individual and general cheat modes to "see all" (override XPDR settings)

Radar scope

  • Variety of show/hide options: airport tarmac, runways and helipads, navigation points, aircraft info boxes and assignments...
  • Directly assign headings, altitudes/FLs and speeds by click&drag on radar contacts
  • All-in-one display of aircraft course, vector assignments and conflict warning
  • Radar identification assistant (unique squawk link between radar pick-up and strip assignment detection)
  • Measuring tool for quick point-to-point heading & distance checks
  • In-game custom text labels to annotate radar background (saved across sessions)


  • FGCom 3 integration
  • ATIS recording with information letter and pre-filled preparation notepad
  • Multiple radio management enabling simultaneous transmission on different frequencies
  • Frequency-specific sound level selection enabling efficient monitoring
  • Mouse and keyboard PTT
  • Integrated echo test

Strip management

  • User-defined strip racks
  • Strip drag&drop along and across racks
  • Link strips to flight plans and radar contacts to merge editable details
  • FPL and radar conflicts reported

Flight plans

  • Interface with Lenny64's flight plan data base including in-game FPL retrieval, filing and editing
  • Work with local FPL copies and manage sync with online publication

Working principles


You are the air traffic controller, and players will connect to the network with different types of aircraft and transponder equipment. As in real-life, the radar is SSR, hence will show you only (unless you cheat) what you pick up from on-board transponders in your range. That means:

  • If a transponder is off or on standby, you will not see the aircraft on your radar screen.
  • If a transponder is on, you will at least be able to see its position and read the transponder code, possibly its altitude and even its type and callsign, depending on the mode set by the pilot.


Your basic traffic flow and sequence working unit is the strip, each representing a controlled (or soon expected) aircraft. Strips are created, filled with details and moved along and across racks until handed over to a different controller or discarded. Details written on strips include:

  • most importantly, the aircraft's callsign, to be used on the radio;
  • details like aircraft type, airspeed, route... that can be specified by the pilots themselves when filing flight plans; and
  • transponder code and flight parameter assignments (or vectors: heading, altitude/FL, speed).

Linking strips

Double-clicking on a strip will open a strip detail sheet where those details can be manually edited, but each strip can also be linked to a flight plan and/or a visible radar contact on the scope screen — a strip can only be linked to one flight plan and to one radar contact. Linking to a strip will automatically:

  • make the strip display the missing elements made available by the linked aircraft transponder or flight plan;
  • label the radar contact dot with the more informed linked details (e.g. assigned altitude).

Any detail mismatch between a strip and its linked flight plan or radar contact will be reported for you to resolve.

To identify an aircraft and link the right radar contact to a strip, an ATC can rely on different things. He can read an aircraft's callsign straight away if it is visible (or cheated), tell from reported positions and altitudes, or use a transponder code. For instance, say a VFR traffic makes an initial radio contact giving his callsign and approximate position. ATC will typically pull out a new blank strip and give the pilot a unique transponder code to squawk, writing it on the strip alongside the announced callsign, then wait for it to appear on the radar. This allows for what ATC-pie calls soft links, in essence radar identification of an aircraft–strip pair such that:

  • the strip is assigned a transponder code;
  • no other strip is assigned the same code;
  • the aircraft is the only one squawking that code in radar range.

Soft links are reported to you so you can properly link the two and consider the aircraft identified, before getting back to the pilot with subsequent instructions.

Getting it to run

Section to come after beta-testing phase is over. Probably on Feb. 1, 2015.

If you are a regular or occasional controller with aviation background interested in trying it out, please contact the author at email(mickybadia, gmail, com).

Using ATC-pie

All sorts of possible things here: quick reference, keyboard shortcuts...