MMM-FlightTracker is a module for MagicMirror² that displays real-time information about nearby aircraft using ADS-B data.
This fork has been modernized with:
- tar1090 integration for richer aircraft data (recommended)
- Flight route lookup via adsb.lol API
- Streamlined dependencies (removed RTL-SDR support, network-only mode)
- Zero CVE vulnerabilities
- Display aircraft callsign, airline, type, altitude, speed, heading
- Show flight routes (origin-destination) when available
- Support for tar1090/readsb JSON API or legacy SBS1 TCP stream
- Distance and bearing from your location
- Configurable units (metric/imperial/knots)
- Sort by distance, altitude, speed, or age
Clone this module into your MagicMirror's modules directory:
cd ~/MagicMirror/modules
git clone https://github.com/ericjohncarlson/MMM-FlightTracker
cd MMM-FlightTracker
npm installAdd the module to your config/config.js:
Use this mode if you have tar1090, readsb, or adsb-ultrafeeder running. This provides the richest data including full aircraft descriptions and pre-calculated distances.
{
module: 'MMM-FlightTracker',
header: 'Nearby Aircraft',
position: 'top_right',
config: {
client: {
mode: 'tar1090',
host: '192.168.1.100', // Your tar1090/readsb host
port: 8080, // Web interface port
enableRoutes: true // Lookup flight routes via adsb.lol
},
interval: 5,
altitudeUnits: 'imperial',
speedUnits: 'knots',
orderBy: 'distance:asc',
limit: 8,
showAirline: true,
showType: true,
showSpeed: true,
showAltitude: true,
showHeading: true,
showRoute: true
}
}Use this mode to connect to a dump1090 SBS1 stream on port 30003:
{
module: 'MMM-FlightTracker',
header: 'Nearby Aircraft',
position: 'top_right',
config: {
client: {
mode: 'network',
host: '192.168.1.100',
port: 30003
},
latLng: [40.4406, -79.9959], // Required for distance calculation
interval: 5,
altitudeUnits: 'imperial',
speedUnits: 'knots',
orderBy: 'distance:asc',
limit: 8
}
}| Option | Description | Default |
|---|---|---|
interval |
Polling interval in seconds | 1 |
animationSpeed |
Animation speed in milliseconds | 1000 |
passingByThreshold |
Altitude threshold (ft) to separate "nearby" vs "passing" planes. Set to -1 to disable. |
-1 |
latLng |
Your coordinates [lat, lng] for distance calculation (required for network mode, optional for tar1090) |
[] |
orderBy |
Sort order: distance:asc, altitude:desc, speed:asc, age:asc, etc. |
undefined |
limit |
Maximum number of aircraft to display | -1 (all) |
altitudeUnits |
metric (meters) or imperial (feet) |
Global config |
speedUnits |
metric (km/h), imperial (mph), or knots |
Global config |
showAirline |
Show airline/operator name | true |
showType |
Show aircraft type code (e.g., B738, A320) | true |
showSpeed |
Show ground speed | true |
showAltitude |
Show altitude with climb/descent indicator | true |
showHeading |
Show cardinal direction (N, NE, E, etc.) | true |
showRoute |
Show flight route if available (e.g., DFW-PHL) | true |
| Option | Description | Default |
|---|---|---|
mode |
tar1090 or network |
network |
host |
Hostname or IP of your ADS-B receiver | Required |
port |
Port number (8080 for tar1090, 30003 for SBS1) | Required |
enableRoutes |
Enable route lookup via adsb.lol API (tar1090 mode only) | true |
SWA1098 / SOUTHWEST AIRLINES CO · B38M (DFW-PHL)
500 knots ↑ 31000 ft NE 60.4 nm
- Line 1: Callsign / Airline (max 25 chars) · Aircraft Type (Route)
- Line 2: Speed, Altitude (↑ climbing, ↓ descending, → level), Heading, Distance
- Aircraft data: Local tar1090 JSON API (
/data/aircraft.json) - Includes: registration, aircraft type, operator, pre-calculated distance
- Route data: adsb.lol API (cached per callsign)
- Aircraft data: SBS1 BaseStation format over TCP
- Enriched with local CSV databases (airlines, aircraft types)
- Distance calculated using Haversine formula
- Original module by Thomas Bouron
- Modernized fork by Eric Carlson
- Route data from adsb.lol and VRS standing-data
Apache-2.0