International Space Station Tracker | The MagPi 96
Fancy tracking the ISS’s trajectory? All you need is a Raspberry Pi, an e-paper display, an enclosure, and a little Python code. Nicola King looks to the skies

Standing on his balcony one sunny evening, the perfect conditions enabled California-based astronomy enthusiast Sridhar Rajagopal to spot the International Space Station speeding by, and the seeds of an idea were duly sown. Having worked on several projects using tri-colour e-paper (aka e-ink) displays, which he likes for their “aesthetics and low-to-no-power consumption”, he thought that developing a way of tracking the ISS using such a display would be a perfect project to undertake.
“After a bit of searching, I was able to find an open API to get the ISS location at any given point in time,” explains Sridhar. I also knew I wouldn’t have to worry about the data changing several times per second or even per minute. Even though the ISS is wicked fast (16 orbits in a day!), this would still be well within the refresh capabilities of the e-paper display.”

Station location
His ISS Tracker works by obtaining the ISS location from the Open Notify API every 30 seconds. It appends this data point to a list, so older data is available. “I don’t currently log the data to file, but it would be very easy to add this functionality,” says Sridhar. “Once I have appended the data to the list, I call the drawISS method of my Display class with the positions array, to render the world map and ISS trajectory and current location. The world map gets rendered to one PIL image, and the ISS location and trajectory get rendered to another PIL image.”

page: magpi.cc/isstrackercode
Each latitude/longitude position is mapped to the corresponding XY co-ordinate. The last position in the array (the latest position) gets rendered as the ISS icon to show its current position. “Every 30th data point gets rendered as a rectangle, and every other data point gets rendered as a tiny circle,” adds Sridhar.
From there, the images are then simply passed into the e-paper library’s display method; one image is rendered in black, and the other image in red.
Track… star
Little wonder that the response received from friends, family, and the wider maker community has been extremely positive, as Sridhar shares: “The first feedback was from my non-techie wife who love-love-loved the idea of displaying the ISS location and trajectory on the e-paper display. She gave valuable input on the aesthetics of the data visualisation.”

and extensible enclosure system.
In addition, he tells us that other makers have contributed suggestions for improvements. “JP, a Hackster community user […] added information to make the Python code a service and have it launch on bootup. I had him contribute his changes to my GitHub repository – I was thrilled about the community involvement!”
Housed in a versatile, transparent ProtoStax enclosure designed by Sridhar, the end result is an elegant way of showing the current position and trajectory of the ISS as it hurtles around the Earth at 7.6 km/s. Why not have a go at making your own display so you know when to look out for the space station whizzing across the night sky? It really is an awesome sight.
Get The MagPi magazine issue 96 — out today

The MagPi magazine is out now, available in print from the Raspberry Pi Press online store, your local newsagents, and the Raspberry Pi Store, Cambridge.
You can also download the directly from PDF from the MagPi magazine website.
Subscribers to the MagPi for 12 months to get a free Adafruit Circuit Playground, or choose from one of our other subscription offers, including this amazing limited-time offer of three issues and a book for only £10!
13 comments
John Hickman
Great project. I will try it as I always miss the ISS as it flies over Thailand. I need something to do these days, the hard bit will be getting the bits. Always wanted a Raspberry Pi to play with.
YoNevelt
If you have Android, this app is very useful. It has an ISS tracker and gives you notification as well when it’s above a given coordinate (your position).
com.nicedayapps.iss_free
rinshotdl
It’s actually such a good job.
Im in live with Python now :D
Andy Dence
I don’t get this or amI missing something? There’s plenty of apps that track the ISS. Isn’t this just another?
silas
Appears to be yes just with nice E-ink display
Geoff Harmer
Beautiful product in a highly attractive solid plastic case from ProtoStax and displays the ISS positions wonderfully using 2.7inch e-Paper HAT. Excellent work from Sridhar Rajagopal in Magpi 96 and on his high quality screen websites.
Does anyone know how when (say) 20 of the ISS red routes lines have been drawn on the 2.7inch e-paper HAT screen then all 20 red lines on the screen can be automatically deleted and the application running simply carries on with its new ISS red lines. This keeps the screen looking good for weeks or years.
If someone can suggest how to do that then I would use Shridhar’s explanation of “Running the script as a service” as then it would only be powered up with no other connections to keyboard and /or screen and the display would automatically be changing the ISS red lines once too many lines were already displayed.
JP
It’s running as a service on my RPi and AFIK the screen refreshes automatically after a certain number of orbit (red) lines are traced.
Geoff Harmer
Hello JP
Thanks for your reply.
Would you be able to describe in depth to me (or online in Raspberry Pi Blog) what your code does and/or send it to me?. I can’t seem to find anything describing using AFIK.
I am running a Raspberry Pi Zero W that has the 2.7inch e-Paper HAT connected to it and is running Sridhar’s application. I simply connect a PC screen via HDMI and a keyboard just to start that app and also to kill that app. and then restart it. It would be great if I just started it once and then disconnected the PC screen and keyboard and the application on the RasPi simply deleted the ISS red track once a day without me ever reconnecting a keyboard or PC screen to the RasPi.
There is a technique online using xscreensaver – is that what you do?
Here is an explanation of xscreensaver :
https://www.raspberrypi.org/documentation/configuration/screensaver.md
Kind regards
Geoff
Sridhar Rajagopal
Hi Geoff,
Glad you like it, thanks! Sorry, just noticed the comments – otherwise I would have replied earlier. In order to limit the number of positions, you can implement a circular buffer that will only keep a certain number of data points in memory. Michael Davis wanted something similar – you can check out the comments on the hackster project page – https://www.hackster.io/sridhar-rajagopal/international-space-station-tracker-6afdca – you can follow his implementation if you don’t want to code your own circular buffer – essentially if the size of the list has exceeded a predetermined value, then just append the latest data point to the list but also delete from the 0th item of the list. This is not the most efficient implementation, but it will work fine for the number of data points you are interested in (before the lines start to fill up the screen).
Hope that helps! Feel free to add any additional questions you have to the Hackster comment section, or down here! :-)
Best,
Sridhar
Sridhar Rajagopal
Hi Geoff,
Also, it is possible to run your Raspberry Pi in a headless setup, so you don’t even need to connect your Pi to your TV to set it up or start/stop the application. I’ve talked about it in the comments on the Hackster project page (link in the comment above). You will need to have another computer to ssh from though.
Best,
Sridhar
mod apk
Cool, thank you
Mod Apk
Cool. Thank you so much.
mod apk
Cool. Thanks
Comments are closed