Why yet another Starlink tracker?
Yes, there are quite a few Starlink tracking sites and apps out there. To name but a few:
- Satellitemap.space
- James Darpinian's viewer
- Find Starlink
- Many more on Reddit's /r/Starlink
However, none of them provided me with tools to lean much past observing the orbits, seeing how satellites connect to a customer, what altitudes they orbited at, and so on. Being in the RF space for many years, amongst other things, I was interested in topics such as:
- How many spot beams does a satellite have.
- What is the shape and footprint of the spot beams.
- What is the relationship between gateways, a customer location, and passing satellites.
- What coverage could you expect at a certain location assuming you had gateway coverage.
- How does Starlink interplay with other LEO constellations being launched.
- How does Dishy operate.
- What is the relationship between channel bandwidth, customer density, spot beam switching frequency, and other modulation characteristics.
- ... and the list goes on!
I'm on the waiting list to get my own Starlink terminal, so many of my questions will remain unanswered until I receive it, or other users come up with ideas.
As a starting point, I decided to build my own Starlink tracker, which you can find at https://starlink.sx.
The early days
After modifying some sample WebGL 3D globe code from tutorials, I decided that as much as a spinning 3D Earth globe with starfield background and floating dots looked awfully cool, it was not suited to track the amount of stuff I'd end up throwing at it. Or at least, if it was, the learning curve was so massive, the effort was not warranted.
I turned to the 2D mapping solution I knew best, Google Maps, and its awesome API. After writing a very quick PoC, it became apparent that it was not very good at handling rendering of potentially thousands of markers at rates of 1 Hz, essentially crashing Chrome if I even tried.
Last resort was OpenStreetMap, combined with one of many libraries out there to handle it. I first tried OpenLayers, and stuck with it, after replacing the Google mapping code with OpenLayers resulted in all ~1400 satellites updating in real time, once per second. Bingo!
My next post will dive into radio links between satellites and gateways, and the intricacies involved. Stay tuned!