Skip to content

wirenux/SkyBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyBridge

Real-time flight dashboard for MSFS 2020 β€” stream telemetry from your simulator to any device on your local network.


Overview

SkyBridge connects Microsoft Flight Simulator 2020 to a mobile-friendly web dashboard via a local network. A C# mod reads live flight data through SimConnect and streams it over UDP to a Python server, which pushes it to any browser on your LAN in real time via WebSocket.

πŸ“Έ Screenshots

Mod running in the background, sending data to the server

Mod running in the background, sending data to the server

Server terminal showing active connections and decoded access codes

Server terminal showing active connections

Dashboard on a phone, showing live telemetry data

Dashboard showing live telemetry data on a phone


Features

  • Live telemetry β€” Altitude (MSL/AGL), heading, IAS/TAS/GS/Mach, vertical speed, position, fuel, AOA, G-force, OAT, trim, spoilers
  • Engine data β€” RPM or N1% per engine (up to 8), auto-detects piston / jet / turboprop / helicopter
  • Autopilot status β€” AP on/off, target ALT / IAS / HDG
  • Instruments β€” Attitude indicator (ADI) and heading tape with smooth animation
  • Live map β€” OpenStreetMap with plane marker, follow mode, and airport overlays
  • Gear & flaps β€” position and state
  • 9-character access code β€” encode your local IP + port into a short alphanumeric code to share with any device on the network
  • WebSocket push β€” no polling, data arrives as soon as the sim sends it
  • Collapsible cards β€” clean mobile UI, hide what you don't need

Architecture

MSFS 2020
  └── SimConnect SDK
        └── SkyBridge.exe  (C# mod)
              └── UDP:5005 ──▢ SkyBridgeServer.exe  (Python + Flask)
                                    └── WebSocket ──▢ Browser (mobile / desktop)

Stack

Layer Technology
Mod C# (.NET 10) + SimConnect SDK
Transport UDP (sim -> server) + WebSocket (server -> browser)
Server Python 3 - Flask - Flask-SocketIO
Frontend HTML - CSS - Vanilla JS - Leaflet.js
Encoding Custom base62 (9 chars = IP + port)
Installer Inno Setup

Getting Started

Installation (recommended)

Download SkyBridge_Setup.exe from the releases page and run it. The installer includes both the mod and the server.


Manual Setup

Prerequisites (If you want to build from source)

On the Windows PC running MSFS 2020:

  • MSFS 2020 with Developer Mode enabled (Options β†’ General β†’ Developers)
  • MSFS SDK installed (Dev Mode menu β†’ SDK Download)
  • .NET 10 Runtime

On any machine for the server (can be the same PC or a Mac/Linux on the same network):

  • Python 3.9+

1. Install server dependencies

cd server
pip install -r requirements.txt

(Optional) 2. Configure the UDP target

If the server runs on the same PC as MSFS, keep 127.0.0.1 and don't modify anything !.

In mod/src/Program.cs, set the IP of the machine running the server:

var udpEndpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5005);

3. Build mod + server

.\build.ps1

Running

Start the server (on the host machine):

cd server
python main.py

The terminal will display the ASCII logo, your local IP, and the 9-character access code.

Start the mod (on the Windows PC with MSFS):

SkyBridge.exe

Launch MSFS 2020, load a flight β€” data will start streaming immediately.

Access the dashboard from any device on the same network:

Use the portal to enter the 9-character code:

http://<server-ip>:5000/

Testing without MSFS

python tools/mock_sim.py

Sends simulated flight data to the server so you can develop and test the dashboard without launching the simulator.


Access Code System

SkyBridge encodes your server's local IP and port into a 9-character alphanumeric code using base62.

192.168.1.42:5000  β†’  HddRxl9Y0

Share this code with anyone on your local network. They enter it at / (the portal page) and get redirected straight to your dashboard β€” no need to know your IP.

Alphabet: 0-9 a-z A-Z (62 symbols)
Capacity: 62⁹ β‰ˆ 13.8 trillion combinations


API Endpoints

Method Route Description
GET / Portal β€” enter access code
GET /host Generate your access code
GET /dashboard Live flight dashboard
GET /api/data Latest telemetry as JSON
GET /api/local-ip?port=5000 Get local IP + encoded code
GET /api/decode/<code> Decode a 9-char code β†’ IP:port

Telemetry Payload

{
  "alt": 8500,
  "alt_msl": 8500,
  "alt_agl": 6200,
  "hdg": 270.0,
  "pitch": -2.1,
  "bank": 0.0,
  "ias": 245.0,
  "tas": 268.0,
  "gs": 251.0,
  "mach": 0.412,
  "vs": -200.0,
  "lat": 48.850000,
  "lon": 2.350000,
  "fuel_gal": 320.5,
  "aoa": 3.2,
  "g": 1.01,
  "oat": -32.5,
  "trim_pct": 2.1,
  "spoiler_pct": 0.0, "spoiler_armed": false,
  "gear": 0.0,
  "flaps_index": 0,
  "flaps_deg": 0.0,
  "motors": [
    { "id": 1, "rpm": 0, "n1": 84.2, "is_jet": true },
    { "id": 2, "rpm": 0, "n1": 83.9, "is_jet": true }
  ],
  "ap": {
    "on": true,
    "alt_on": true,  "alt_val": 9000,
    "ias_on": true,  "ias_val": 245,
    "hdg_on": false, "hdg_val": 0
  },
  "ts": 1714500000
}

License

MIT - see LICENSE.


Built by WireNux

About

A real-time Microsoft Flight Simulator mod that bridges in-game telemetry with external applications via UDP networking. Capture flight data, screenshots.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors