Codeby MUSIC Tribe · GitHub · open hardwareBirdwatcher: live ADS-B globe on an RG35XX SP
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 page
- Anbernic RG35XX SP →
- 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.
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.
Codeby MUSIC Tribe · GitHub · open hardware

