FlightMaymo — Research
Reference Projects Analyzed
1. Colin Waddell's FlightTracker (RPi + LED Matrix)
- Hardware: Raspberry Pi Zero W + 32x64 RGB LED Matrix + Adafruit Matrix Bonnet
- API: FlightRadar24 (unofficial Python module)
- Stack: Python, rpi-rgb-led-matrix driver
- Features: Shows flight number, aircraft type, route when overhead; time/date/weather when idle
- Repo: https://github.com/ColinWaddell/FlightTracker
2. Dotbox (ESP32 + LED Dot Matrix) — Colin's v2
- Hardware: ESP32-WROOM + LED dot-matrix display + custom PCB (JLCPCB)
- API: FlightRadar24 via custom backend server (MQTT)
- Stack: Custom firmware, MQTT, signed OTA updates
- Key insight: Much lower power than RPi version, runs off USB-C
- Blog: https://blog.colinwaddell.com/articles/dotbox-an-improved-flight-tracker
3. FlightPortal (Adafruit MatrixPortal)
- Hardware: Adafruit MatrixPortal M4 + P4 64x32 RGB matrix
- API: FlightRadar24 (scraping, may break)
- Stack: CircuitPython, Adafruit libraries
- Power: ~2W
- Repo: https://github.com/smartbutnot/flightportal
4. Simon Prickett's Local Aircraft Tracker (ADS-B + Redis)
- Hardware: RTL-SDR USB dongle + RPi + Pimoroni Badger 2040W (e-ink badge!)
- API: ADS-B radio signals (dump1090) + FlightAware API for enrichment
- Stack: Node.js, Redis Stack, MicroPython (for Badger e-ink frontend)
- Key insight: Only project using actual ADS-B receiver + has an e-ink frontend
- Repo: https://github.com/simonprickett/local-aircraft-tracker
5. ESP32-FlightRadar24-TTGO
- Hardware: ESP32 TTGO-Display (TFT, not e-ink) or LilyGo T-Display-S3
- API: FlightRadar24 (direct, no login needed)
- Stack: C++/Arduino, PlatformIO, LVGL graphics
- Features: Airline logos, aircraft specs, airport info — all stored locally
- Key insight: Embedded DB of airports/airlines reduces API calls
- Repo: https://github.com/rzeldent/esp32-flightradar24-ttgo
Flight Data APIs
FlightRadar24 (Unofficial) ⭐ RECOMMENDED
- Package:
pip install FlightRadarAPI(Python), also available for Node.js - Cost: Free (unofficial, educational use)
- Coverage: Excellent worldwide including India/Chennai
- Rate limits: Undocumented, but light polling (every 30-60s) works fine
- Risk: Unofficial — could break if FR24 changes their API
- PyPI: https://pypi.org/project/FlightRadarAPI/
OpenSky Network
- Cost: Free tier
- Rate limits: 100 calls/day (anonymous), 4,000/day (registered), 8,000/day (if you feed data)
- Coverage: Best in Europe/US. India coverage is limited — fewer ground receivers
- Resolution: 10s anonymous, 5s authenticated
- Docs: https://openskynetwork.github.io/opensky-api/rest.html
ADS-B Exchange
- Cost: Free if you feed data (need RTL-SDR receiver), otherwise paid API
- Coverage: Community-sourced, decent but requires feeders nearby
OpenSky Auth Note (CRITICAL)
As of March 18, 2026, OpenSky Network requires OAuth2 — basic auth is deprecated. Must use OAuth2 client credentials flow.
Verdict
FlightRadar24 unofficial API is the clear winner for Chennai. OpenSky has weak India coverage and now requires OAuth2. ADS-B Exchange requires hardware investment for free tier.
India/Chennai Availability
| Product | Store | Price |
|---|---|---|
| LILYGO T5 4.7" V2.3 | Amazon.in | ₹3,500-4,500 |
| LILYGO T5 4.7" V2.3 | AliExpress | ₹3,000-3,500 |
| Waveshare e-ink panels | Robu.in | varies |
| Pimoroni Inky 7.3" | Fab.to.Lab | ₹14,565 |
| RPi Zero 2W | Amazon.in / Robu.in | ₹1,500-2,500 |
Hardware Options
Option A: Raspberry Pi Zero 2W + E-Ink Display ⭐ RECOMMENDED FOR V1
| Component | Model | Price (approx) |
|---|---|---|
| Computer | Raspberry Pi Zero 2W | ₹2,500-3,000 |
| Display | Waveshare 4.2" e-Paper HAT (400x300, B/W) | ₹2,500-3,000 |
| Display (alt) | Waveshare 7.5" e-Paper HAT (800x480, B/W) | ₹4,000-5,000 |
| Display (color) | Pimoroni Inky Impression 5.7" (600x448, 7-color) | ₹8,000-10,000 |
| Power | USB-C power supply / battery pack | ₹500 |
| Case | 3D printed or laser cut | varies |
Pros: Easy Python development, tons of libraries, WiFi built-in, can run full Python with FlightRadarAPI Cons: Higher power consumption (~1-2W idle), slower boot, overkill for simple display task
Option B: ESP32-S3 + E-Ink Display
| Component | Model | Price (approx) |
|---|---|---|
| Board+Display | LILYGO T5 4.7" ESP32-S3 (960x540, 16-level grayscale) | ₹4,000-5,000 |
| Board+Display | LILYGO T5 2.13" ESP32-S3 | ₹2,000-2,500 |
| Board+Display (pro) | LILYGO T5 4.7" S3 Pro (touch + LoRa + GPS) | ₹7,000-9,000 |
| Board (separate) | ESP32-S3 DevKit + Waveshare 4.2" SPI e-Paper | ₹3,000-4,000 |
Pros: Ultra-low power (can run on battery for days), instant-on, compact, USB-C, deep sleep Cons: MicroPython has fewer libraries, HTTP requests more complex, limited memory for rich UI
Option C: ESP32 TTGO T-Display (TFT, not e-ink)
- Cheap (~₹1,500), color TFT, but always-on power draw
- rzeldent's project already exists for this — could fork it
- Not e-ink though
Option D: LILYGO T5 4.7" V2.3 (All-in-One) ⭐ BEST VALUE
| Component | Details | Price (approx) |
|---|---|---|
| Board+Display | LILYGO T5 4.7" ESP32-S3, 960x540, 16 grayscale, WiFi, BLE, 16MB Flash, 8MB PSRAM | ₹3,500-4,500 (Amazon.in) |
| Battery | 18650 holder variant or LiPo via PH 2.0 connector | ₹200-500 |
| Case | 3D printed | varies |
Deep sleep: ~170μA. Can run for days on battery. Library: GxEPD2 + LILYGO's own LilyGo-T5-Epaper-Series Touch variant: H716 model adds capacitive 2-point touch for ₹100 more
Option E: RPi Zero 2W + Pimoroni Inky Impression 7.3" (Color E-Ink)
| Component | Details | Price (approx) |
|---|---|---|
| Computer | Raspberry Pi Zero 2W | ₹1,500-2,500 |
| Display | Pimoroni Inky Impression 7.3" 2025 Edition, 800x480, 7-color | ₹14,565 (Fab.to.Lab India) |
| Total | ~₹17,000 |
7 colors: Black, white, red, green, blue, yellow, orange — can color-code airlines/altitude
Refresh: ~12 seconds (improved in 2025 edition)
Driver: Pimoroni inky Python library
6. The Minimalist Airframe (meandmybadself)
- Hardware: RPi Zero 2W + Pimoroni Inky Impression 7.3" color e-paper + 3D-printed frame
- API: Public ADS-B database (no receiver needed)
- Stack: Based on InkyPi project (https://github.com/fatihak/InkyPi)
- Features: Minimalist 2-component build, 1-min refresh, shows closest commercial flight
- Key insight: Simplest e-ink flight tracker build — exactly our target approach
Recommendation
Start with RPi Zero 2W + Waveshare 4.2" e-Paper for easiest development path. The FlightRadarAPI Python package works out of the box. Once the software is solid, port to ESP32+e-ink for a low-power always-on version.
Or go straight to LILYGO T5 4.7" (~₹4,000) if you want the cheapest all-in-one solution with the best resolution (960x540) and battery support.
Splurge option: RPi + Pimoroni Inky 7.3" 7-color (~₹17,000) for a gorgeous color e-ink desk display.
E-Ink Display Considerations
- Refresh rate: Full refresh takes 2-15 seconds depending on display. Partial refresh is faster (~0.3-1s) but causes ghosting over time.
- Flight data is perfect for e-ink: Data changes every 30-60 seconds, not real-time animation
- Grayscale: LILYGO T5 4.7" supports 16-level grayscale — good for showing altitude/distance visually
- Partial refresh warning: LILYGO wiki warns against prolonged partial refresh — can cause irreversible ghosting. Do a full refresh every N cycles.
What to Display
Based on reference projects, the best flight trackers show:
- Flight callsign (e.g., AI542, 6E2341)
- Airline name/logo
- Aircraft type (A320, B737-800, etc.)
- Route: Origin → Destination (DEL → MAA)
- Altitude and Speed
- Distance from you and bearing
- Mini map showing flight position relative to your location
- Idle screen: Time, date, weather, "No flights overhead"
Architecture Plan
┌─────────────────────────────────┐
│ FlightMaymo │
├─────────────────────────────────┤
│ │
│ 1. Poll FlightRadar24 API │
│ - Bounding box around │
│ Chennai (13.08°N, 80.27°E)│
│ - Every 30-60 seconds │
│ │
│ 2. Filter & Sort │
│ - Calculate distance from │
│ home coordinates │
│ - Sort by proximity │
│ - Pick closest flight │
│ │
│ 3. Render to E-Ink │
│ - Flight info layout │
│ - Mini radar/compass │
│ - Partial refresh if │
│ same flight, full if new │
│ │
│ 4. Idle Mode │
│ - Show time + weather │
│ - "Clear skies" message │
│ │
└─────────────────────────────────┘