@ @ @@@@@ @ @@@@@@@@@@
@@@ @@@ @@@@@@@@@@@@@ @@@ @@@@@@@@@@
@@@@@@ @@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@@@
@@@@@@@@ @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@
@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
A realtime International Space Station tracker that runs on a tiny 1.28-inch round LCD display. It plots the ISS position as a radar blip relative to your location, with a rotating sweep line and dashed trajectory trail.
The surprise discovery: leave it running for a few hours and the orbital trail produces beautiful spirographic mandala patterns. The ISS completes an orbit every ~90 minutes at a 51.6-degree inclination, and because the Earth rotates beneath it, the dashed trail traces sinusoidal curves that overlap into intricate geometric forms — revealing the curvature of the Earth in miniature.
- Board: ESP32-S3-Touch-LCD-1.28 (Waveshare)
- Display: 1.28" round GC9A01 LCD, 240x240 pixels, RGB565 color
- Interface: SPI at 80MHz
- Fetches the ISS position every 30 seconds from the Open Notify API
- Calculates distance and bearing from your location using the Haversine formula
- Renders a radar view with range rings, a north line, and a rotating sweep
- Draws the ISS as a pixel-art silhouette with coordinates shown when the sweep passes over it
- Leaves a dashed trail behind the ISS (up to 1000 points) that accumulates into the spirographic patterns
- Shows a world map background centered on your location
- If the ISS is out of range, an arrow marker points toward it from the radar edge
- Flash MicroPython onto the ESP32-S3
- Edit
iss-tracker.pyand set your WiFi credentials and location:WIFI_SSID = "your_network" WIFI_PASSWORD = "your_password" USER_LAT = 40.7128 # your latitude USER_LON = -74.0060 # your longitude
- Copy all
.pyfiles to the device - The tracker starts automatically on boot
The tracker has a built-in screenshot feature that saves the display framebuffer to the device's flash storage.
Capturing on the device:
Press the BOOT button (GPIO 0) at any time while the tracker is running. Each press saves the current frame as a raw RGB565 binary file (screenshot_001.bin, screenshot_002.bin, etc.) up to a maximum of 10 images. A confirmation message prints to the serial console.
Converting to PNG on your computer:
- Copy the
.binfiles from the device to your computer (e.g. using Thonny,mpremote cp, orampy) - Install Pillow if you don't have it:
pip install Pillow - Convert:
# Single file python convert_screenshot.py screenshot_001.bin # All screenshots at once python convert_screenshot.py screenshot_*.bin # Custom output name python convert_screenshot.py screenshot_001.bin -o mandala.png # With color (default is greyscale) python convert_screenshot.py screenshot_001.bin --saturation 1.0
The --saturation flag controls color: 0.0 (default) produces greyscale, 1.0 gives full color, and values in between give a hint of color.
To free up space for new captures, delete the .bin files from the device.
| File | Description |
|---|---|
iss-tracker.py |
Main application |
lcd_1inch28.py |
Display driver for the GC9A01 round LCD |
boot_logo.py |
Boot animation image data (RGB565) |
iss_icon.py |
ISS silhouette sprite (15x11 pixels) |
world_map.py |
World map bitmap (344x207 pixels) |
convert_screenshot.py |
Converts device screenshots (RGB565) to PNG — runs on host computer |