FinalCallATC - working open source AI ATC

  • So, I have created an AI ATC for Aerofly :). It integrates with avionics panel in Cessna 172 and Baron 58 (for now, can be used in other planes with less functionality), works both in VR and flatscreen, on Windows and Mac (wihout some functionalities). It is available at https://github.com/max8938/FinalCallATC

    Functionalities:

    - AI ATC (all services), working on actual airport frequencies (origin and destination airports from the active navigation plan).
    - Communicating with ATC using voice and hearing their replies.
    - Push to talk either by holding top button of the left VR controller (e.g. triangle on PSVR2 controller. OpenVR needed) or activating AUX switch/button on audio panel or holding PTT button in app's window.
    - AI can calculate heading and distance to the start of the final approach for the destination runway.
    - Working audio panel, radios & transponder controls on Cessna 172 and Baron 58. For other planes, radio panel cannot be controlled at the moment.
    - Individual radio volume controls.
    - You can hear ATC only if tuned to the correct frequency and radio is active on the audio panel.
    - ATC can hear you only if you are tuned correctly and the correct mic output is selected.
    - Random chatter between ATC and other airplanes (configurable how often messages are heard) on origin, destination, Center (134.00) and Guard (121.50).
    - Station distance taken into account, you cannot connect to the ones too far away (Guard and Center are always reachable).
    - Transponder code (and optionally the altitude) sent to ATC, depending on the selected transponder mode.
    - Plane telemetry sent to ATC with each message (location, heading, ground speed).
    - 10+ different voices.
    - Radio log & more detailed logs saved as PDF files, can be displayed in cockpit using 3rd-party tools.
    - Flight plan summary displayed on top of radio log (origin, destination, runways, altitudes, radio frequencies).
    - ATIS generated looping messages for origin and destination (if ATIS is available there).


    Requirements:
    - Windows for full functionalities. Most work on Mac as well, except radio panel controls; ATC can be controlled via its app window.
    - Python (v3.13 works fine for me) + all needed libraries installed
    - Deep Seek or OpenAI AI API access (Deep Seek gives a bit better responses, in my experience, but might be a bit slower)
    - Azure voice services API access
    - (optional) OpenVR for PTT control via VR controller
    - (optional) OpenKneeboard (or similar overlay app) for displaying radio log files in flatscreen and VR

    AI and Azure API access is not hard to set up. Costs: max couple of dozen cents per hour (if it is talking all the time).

    Support for more planes can be added, but this is not easy (need to find values in game memory for each one separately. This needs to be updated after each game update.). IPACS, please add state of all audio panel, radio and transponder controls to the integration dll to make this much easier.

    Wishlist for IPACS to make this better:
    - Add following to the integration dll: radio volumes, active frequencies, audio panel controls, transponder code/mode/ident button press, navigation plan, plane model, weather info (wind, visibility, clouds). Also would be nice: nearby airports.
    - Send traffic with UDP telemetry (XTRAFFIC object)

    Let me know what you think if you try it. Attached are sample chatter between other stations and radio logs from one flight.