# microsoft/msfs-avionics-mirror architecture

> Architecture diagram of the GitHub repository microsoft/msfs-avionics-mirror, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/microsoft/msfs-avionics-mirror
- Repository: https://github.com/microsoft/msfs-avionics-mirror
- Video tour (about a minute): https://gitdiagram.com/microsoft/msfs-avionics-mirror/video

## Overview

This repository is a suite of Microsoft Flight Simulator avionics products plus a reusable TypeScript avionics framework. The pilot-facing workflow is to view and operate navigation, guidance, map, and aircraft-system instruments; the README names multiple Garmin and other avionics families. The tree and excerpts support the framework’s major capability areas and a specific SR22T engine-data path, but do not establish wiring among most product subsystems, so those links are omitted.

Main entry points: [`src/workingtitle-aircraft-sr22t/src/MFD/Sr22tEcu/Sr22tEngineComputer.ts`](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/MFD/Sr22tEcu/Sr22tEngineComputer.ts) (SR22T Engine Computer), [`src/workingtitle-aircraft-sr22t/src/Shared/Data/Sr22tEngineTemperatureDataInstrument.ts`](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/Shared/Data/Sr22tEngineTemperatureDataInstrument.ts) (Engine Temp Simulator), [`src/sdk/instruments/EngineData.ts`](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/sdk/instruments/EngineData.ts) (Engine Data Publisher), [`src/garminsdk/components/map/GarminMapBuilder.tsx`](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/map/GarminMapBuilder.tsx) (Map Displays)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_flight["Flight Guidance"]
  node_garmin_ap["Autopilot<br/>[GarminAutopilot.ts]"]
  node_vnav["VNAV"]
  node_navtonav["Nav-to-Nav"]
  node_esp["Stability Protection<br/>[Esp.ts]"]
end

subgraph group_navigation["Navigation Services"]
  node_fms["Flight Management<br/>[Fms.ts]"]
  node_route["Route Sync"]
  node_navdata["Navigation Data<br/>[NavdataComputer.ts]"]
end

subgraph group_display["Flight Displays"]
  node_map["Map Displays"]
  node_pfd["PFD Instruments<br/>[index.ts]"]
  node_charts["Charts"]
  node_alerts["Baro Alerts"]
end

subgraph group_aircraft["Aircraft Systems"]
  node_engine_page["SR22T Engine Page"]
  node_engine_computer["SR22T Engine Computer"]
  node_temp_instrument["Engine Temp Simulator"]
end

subgraph group_framework["Shared Framework"]
  node_engine_publisher["Engine Data Publisher<br/>[EngineData.ts]"]
  node_event_bus(("Event Bus"))
end

node_pilot(("Pilot"))
node_sim(("Flight Simulator"))

node_pilot -->|"operates"| node_map
node_pilot -->|"views"| node_pfd
node_sim -->|"provides SimVars"| node_engine_publisher
node_engine_publisher -->|"publishes engine data"| node_event_bus
node_event_bus -->|"supplies engine events"| node_engine_computer
node_event_bus -->|"supplies display data"| node_engine_page
node_event_bus -->|"supplies engine averages"| node_temp_instrument
node_temp_instrument -->|"writes temperature SimVars"| node_sim
node_engine_computer -->|"sets mixture controls"| node_sim

click node_garmin_ap "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/GarminAutopilot.ts"
click node_vnav "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/vnav/GarminVNavManager2.ts"
click node_navtonav "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/navtonav/GarminNavToNavManager2.ts"
click node_esp "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/esp/Esp.ts"
click node_fms "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/flightplan/Fms.ts"
click node_route "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/flightplan/GarminFlightPlanRouteSyncManager.ts"
click node_navdata "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/navigation/NavdataComputer.ts"
click node_map "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/map/GarminMapBuilder.tsx"
click node_pfd "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/nextgenpfd/index.ts"
click node_charts "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/charts/GarminChartDisplay.tsx"
click node_alerts "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/alerts/barotransition/BaroTransitionAlertManager.ts"
click node_engine_page "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/MFD/Sr22tSystemPages/Sr22tEnginePage/Sr22tEnginePage.tsx"
click node_engine_computer "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/MFD/Sr22tEcu/Sr22tEngineComputer.ts"
click node_temp_instrument "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/Shared/Data/Sr22tEngineTemperatureDataInstrument.ts"
click node_engine_publisher "https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/sdk/instruments/EngineData.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_garmin_ap,node_vnav,node_navtonav,node_esp toneBlue
class node_fms,node_route,node_navdata toneAmber
class node_map,node_pfd,node_charts,node_alerts toneMint
class node_engine_page,node_engine_computer,node_temp_instrument toneRose
class node_engine_publisher,node_event_bus,node_pilot,node_sim toneIndigo
```

## Components

### Flight Guidance

- [Autopilot](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/GarminAutopilot.ts): `src/garminsdk/autopilot/GarminAutopilot.ts`
- [VNAV](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/vnav/GarminVNavManager2.ts): `src/garminsdk/autopilot/vnav/GarminVNavManager2.ts`
- [Nav-to-Nav](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/autopilot/navtonav/GarminNavToNavManager2.ts): `src/garminsdk/autopilot/navtonav/GarminNavToNavManager2.ts`
- [Stability Protection](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/esp/Esp.ts): `src/garminsdk/esp/Esp.ts`

### Navigation Services

- [Flight Management](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/flightplan/Fms.ts): `src/garminsdk/flightplan/Fms.ts`
- [Route Sync](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/flightplan/GarminFlightPlanRouteSyncManager.ts): `src/garminsdk/flightplan/GarminFlightPlanRouteSyncManager.ts`
- [Navigation Data](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/navigation/NavdataComputer.ts): `src/garminsdk/navigation/NavdataComputer.ts`

### Flight Displays

- [Map Displays](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/map/GarminMapBuilder.tsx): `src/garminsdk/components/map/GarminMapBuilder.tsx`
- [PFD Instruments](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/nextgenpfd/index.ts): `src/garminsdk/components/nextgenpfd/index.ts`
- [Charts](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/components/charts/GarminChartDisplay.tsx): `src/garminsdk/components/charts/GarminChartDisplay.tsx`
- [Baro Alerts](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/garminsdk/alerts/barotransition/BaroTransitionAlertManager.ts): `src/garminsdk/alerts/barotransition/BaroTransitionAlertManager.ts`

### Aircraft Systems

- [SR22T Engine Page](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/MFD/Sr22tSystemPages/Sr22tEnginePage/Sr22tEnginePage.tsx): `src/workingtitle-aircraft-sr22t/src/MFD/Sr22tSystemPages/Sr22tEnginePage/Sr22tEnginePage.tsx`
- [SR22T Engine Computer](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/MFD/Sr22tEcu/Sr22tEngineComputer.ts): `src/workingtitle-aircraft-sr22t/src/MFD/Sr22tEcu/Sr22tEngineComputer.ts`
- [Engine Temp Simulator](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/workingtitle-aircraft-sr22t/src/Shared/Data/Sr22tEngineTemperatureDataInstrument.ts): `src/workingtitle-aircraft-sr22t/src/Shared/Data/Sr22tEngineTemperatureDataInstrument.ts`

### Shared Framework

- [Engine Data Publisher](https://github.com/microsoft/msfs-avionics-mirror/blob/main/src/sdk/instruments/EngineData.ts): `src/sdk/instruments/EngineData.ts`
- **Event Bus**

### Other components

- **Pilot**
- **Flight Simulator**

## Connections

- Pilot → Map Displays: operates
- Pilot → PFD Instruments: views
- Flight Simulator → Engine Data Publisher: provides SimVars
- Engine Data Publisher → Event Bus: publishes engine data
- Event Bus → SR22T Engine Computer: supplies engine events
- Event Bus → SR22T Engine Page: supplies display data
- Event Bus → Engine Temp Simulator: supplies engine averages
- Engine Temp Simulator → Flight Simulator: writes temperature SimVars
- SR22T Engine Computer → Flight Simulator: sets mixture controls
