afterware
Saved
Code · experiment

Birdwatcher: live ADS-B globe on an RG35XX SP

Original

A cyberdeck-style flight tracker for the Anbernic RG35XX SP handheld. It draws a rotating amber wireframe globe with live aircraft over WiFi, plus an offline database of about 620,000 callsign routes.

Build sheet
Device
Anbernic RG35XX SP
Firmware
Stock, with Python 3 and SDL2
Data
adsb.lol, airplanes.live
Display
640×480 native
Can I build this?Beginner · AI 5/5
Difficulty
Beginner
AI-buildability
5/5

The whole project is software on an off-the-shelf handheld, with no soldering or fabrication involved.

Tools
computer for building data filesSD card
Starter prompt

Based on "Birdwatcher: live ADS-B globe on an RG35XX SP" on Afterware: https://afterware.xyz/p/birdwatcher-live-ads-b-globe-on-an-rg35xx-sp

Write a pure Python app for an Anbernic RG35XX SP running stock firmware that draws through the system libSDL2 using ctypes, without pygame. Poll the adsb.lol API every few seconds for aircraft within 250 NM of a centre point and draw them as dots over a rotating wireframe globe with a lat/lon grid. Map the d-pad to rotation and the A button to lock the nearest aircraft.

Estimates based on the original write-up. Building with an AI assistant? Connect it to Afterware (free MCP server).

Story

Birdwatcher runs on the stock firmware of an Anbernic RG35XX SP handheld. It is written in pure Python and draws through the system libSDL2 using ctypes, so pygame and SDL_ttf are not needed. Text is drawn from pre-rendered BMP font atlases. The globe is built from Natural Earth coastlines and borders, with a lat/lon grid, airports, a radar sweep and CRT scanlines at a native 640×480.

Live positions come from adsb.lol, with airplanes.live as a fallback. Aircraft are polled within 250 NM of the screen centre and move between polls by dead reckoning. A full-screen card shows origin and destination, distance flown and left, and an ETA. The routes come from Virtual Radar Server standing data and are bundled on the card, so most lookups need no network.

The filters cover military traffic, private and business jets, and emergency squawks (7700, 7600, 7500), which are polled worldwide. The README includes a button-mapping setup step, a diagnostics launcher for other 640×480 handhelds, and scripts that rebuild the map, route and font data.

Resources · 4
More like this
More like this