Przegląd
Przeglądarka Starlink wyświetla trójwymiarowy glob na żywo z animacją wszystkich ~10 000 satelitów Starlink w czasie rzeczywistym, lokalizację Twojej anteny oraz wnioskowane połączenie z satelitą, który najprawdopodobniej obsługuje Twój terminal.
Idealne narzędzie do monitorowania Starlink pokazywałoby dokładnie, z którym satelitą Twoja antena się komunikuje w danym momencie, kiedy następuje przełączenie na nowego satelitę oraz ścieżkę sygnału od anteny przez satelitę do stacji naziemnej. Wymagałoby to, aby antena ujawniała tożsamość obsługującego satelity oraz kierunek elektronicznego sterowania wiązką. SpaceX nie udostępnia żadnej z tych informacji, dlatego Nexus wnioskuje obsługujący satelitę na podstawie dostępnych danych.
Dlaczego wnioskowanie jest konieczne
SpaceX blokuje dane identyfikacyjne satelitów za uwierzytelnionymi endpointami gRPC, które są niedostępne w oprogramowaniu konsumenckim.
dish_get_contextzawiera poleinitial_satellite_id, ale zwracaPermissionDeniedna sprzęcie konsumenckim od wersji firmware9f4d05a4(czerwiec 2021).transceiver_get_telemetryudostępnialmac_satellite_iditarget_satellite_id, ale zwracaUNIMPLEMENTEDna wszystkich terminalach konsumenckich.- Uwierzytelnianie PKI typu wyzwanie-odpowiedź z kluczami kontrolowanymi przez SpaceX oznacza, że nie istnieje żadne obejście ze strony społeczności.
- Kierunek elektronicznego sterowania wiązką: który bezpośrednio identyfikowałby obsługujący satelitę; nie jest udostępniany przez żaden endpoint.
- Antena fazowa kieruje wiązkę elektronicznie do ±50° od osi głównej, ale ten kąt sterowania jest całkowicie niewidoczny dla zewnętrznych konsumentów API.
Dostępne dane
Mierzone z anteny
| Dane | Co nam mówią | Częstotliwość aktualizacji |
|---|---|---|
| Azymut i elewacja osi głównej | Fizyczna orientacja korpusu anteny | 1 Hz |
| Opóźnienie ping PoP | Czas podróży w obie strony do punktu obecności | 1 Hz |
| Przepustowość łącza w dół i w górę | Bieżąca przepustowość | 1 Hz |
| Licznik slotów satelitarnych | Licznik slotów satelitarnych (zawsze 0 na testowanym sprzęcie) | 1 Hz |
| Współrzędne GPS | Lokalizacja anteny | Na żądanie |
Historia przerw (did_switch) |
Potwierdzona zmiana satelity podczas przerwy w usłudze | Na zdarzenie przerwy |
| Mapa przeszkód (siatka SNR) | Mapa nieba 123×123 pikseli; zawiera dane sygnału satelitarnego w czasie rzeczywistym po zresetowaniu na granicach przełączeń (patrz Obstruction Map and Satellite Tracking) | 1 Hz |
Źródła zewnętrzne
| Dane | Co nam mówią |
|---|---|
| Elementy orbitalne TLE dla ~10 000 satelitów Starlink (CelesTrak / 18. Eskadra Obrony Przestrzeni Kosmicznej) | Obliczony azymut, elewacja i odległość ukośna każdego satelity z dowolnej pozycji obserwatora |
Co nie jest dostępne
| Dane | Dlaczego tego potrzebujemy | Status |
|---|---|---|
| ID obsługującego satelity | Bezpośrednia identyfikacja | Zablokowane za uwierzytelnianiem |
| Kąt elektronicznego sterowania wiązką | Precyzyjny kierunek wiązki | Nie jest udostępniany w żadnym endpoincie |
| Funkcjonalny licznik slotów | Sygnał czasowy przełączania | Pole istnieje, ale odczytuje 0 na obecnym firmware konsumenckim |
Jak działa dopasowywanie
Dopasowywanie satelitów
Przeglądarka wykonuje następujące obliczenia z częstotliwością 1 Hz:
-
Pozycja obserwatora: współrzędne GPS anteny z
get_locationustalają, gdzie się znajdujesz na Ziemi. -
Pozycje satelitów: używając propagacji orbitalnej SGP4 na danych TLE z CelesTrak, przeglądarka oblicza azymut, elewację i odległość ukośną każdego satelity Starlink widzianego z lokalizacji Twojej anteny.
-
Filtrowanie pola widzenia: brane są pod uwagę tylko satelity powyżej 10° elewacji. Fizyczny kierunek osi głównej anteny (z
alignment_stats) definiuje środek stożka pola widzenia ~100° anteny fazowej. -
Wybór najbliższego kandydata: satelita o najmniejszej odległości kątowej od środka osi głównej jest wybierany jako najprawdopodobniej obsługujący satelita.
Celownik osi głównej
Celownik na biegunowym wykresie nieba reprezentuje fizyczną orientację korpusu anteny, a nie kierunek wiązki elektronicznej. Antena fazowa Starlink jest w dużej mierze nieruchoma po początkowym ustawieniu; wartości osi głównej zmieniają się o ułamki stopnia w ciągu godzin z powodu wiatru lub efektów termicznych. Antena nie porusza się fizycznie, aby śledzić poszczególne satelity.
Rzeczywiste sterowanie wiązką odbywa się elektronicznie wewnątrz anteny fazowej na poziomie RF, odchylając się do ±50° od fizycznej osi głównej w celu śledzenia obsługującego satelity. Ten kierunek wiązki elektronicznej nie jest udostępniany przez żaden konsumencki endpoint API.
Wykrywanie zmiany satelity
Gdy najbliższy kandydat na satelitę się zmienia (inny identyfikator NORAD staje się geometrycznie najbliższy), jest to obserwowane jako wnioskowana zmiana satelity. Te zmiany korelują z rzeczywistymi przełączeniami anteny, ale ich nie potwierdzają. Odzwierciedlają mechanikę orbitalną; w miarę jak satelity przelatują nad głową z prędkością ~7,5 km/s, ten najbliższy środkowi osi głównej anteny zmienia się naturalnie co kilka minut.
Rzeczywiste przełączenia satelitów w Starlink są zaprojektowane tak, aby były bezszwowe (nawiąż-przed-zerwaniem), nie powodując żadnej mierzalnej nieciągłości w opóźnieniu ani przepustowości, która mogłaby być użyta jako wiarygodny sygnał detekcji na obecnym firmware.
Ocena pewności
Ocena pewności odzwierciedla geometryczne prawdopodobieństwo, że dopasowany satelita jest rzeczywiście obsługującym:
| Pewność | Kryteria | Interpretacja |
|---|---|---|
| Wysoka | < 10° od osi głównej, ≤ 3 pobliskich kandydatów | Niewiele satelitów w pobliżu; silny kandydat geometryczny |
| Średnia | < 25° od osi głównej | Dobrze w polu widzenia; rozsądny kandydat |
| Niska | < 50° od osi głównej | W zakresie sterowania anteny, ale wielu pobliskich kandydatów |
| Brak dopasowania | > 50° od osi głównej | Brak satelity w zakresie elektronicznego sterowania anteny |
Te progi są skalibrowane dla fizycznej osi głównej (kierunek korpusu anteny), a nie wiązki elektronicznej. Ponieważ antena fazowa może sterować ±50° od powierzchni anteny, obsługujący satelita będzie zwykle 10-40° od środka fizycznej osi głównej. Dopasowanie o „wysokiej" pewności oznacza, że istnieje jeden silny kandydat geometryczny; nie oznacza, że identyfikacja jest potwierdzona.
Stopień dokładności
Czemu można zaufać
Pozycje satelitów na globie są dokładne. Dane TLE z CelesTrak są autorytatywne (pochodzą z 18. Eskadry Obrony Przestrzeni Kosmicznej Sił Kosmicznych USA), a propagacja SGP4 jest standardową metodą stosowaną przez społeczność śledzenia obiektów kosmicznych. Dokładność pozycyjna wynosi zwykle kilka kilometrów dla niedawno zaktualizowanych TLE.
Lokalizacja Twojej anteny jest dokładna. Pochodzi bezpośrednio z wbudowanego GPS anteny.
Fizyczny kierunek osi głównej jest dokładny. Jest mierzony przez IMU anteny (inercyjną jednostkę pomiarową) z niepewnością ~0,6°.
Zestaw widocznych satelitów jest dokładny. Obliczone kąty obserwacji z Twojej pozycji do każdego satelity są geometrycznie precyzyjne, więc wykres biegunowy poprawnie pokazuje, które satelity są nad głową i gdzie się znajdują na niebie.
Co jest wnioskowane
Zidentyfikowany satelita to świadome przypuszczenie. Najbliższy satelita do środka osi głównej jest najlepszym kandydatem geometrycznym, ale antena może komunikować się z dowolnym satelitą w zakresie elektronicznego sterowania ±50°. W dowolnym momencie dziesiątki satelitów mogą znajdować się w polu widzenia.
Zmiany satelitów to obserwowana geometria, a nie potwierdzone przełączenia. Gdy najbliższy kandydat się zmienia, odzwierciedla to dryfowanie orbitalne; inny satelita staje się geometrycznie najbliższy. Rzeczywiste przełączenia anteny mogą, ale nie muszą pokrywać się z tymi zmianami geometrycznymi. Niektóre rzeczywiste przełączenia będą niewidoczne dla wnioskowania (antena przełącza się na inny satelitę, ale geometrycznie najbliższy się nie zmienia), a niektóre obserwowane zmiany będą czystym dryfowaniem orbitalnym (geometrycznie najbliższy się zmienił, ale antena faktycznie się nie przełączyła).
Oceny pewności są geometryczne, nie oparte na sygnale. Dopasowanie o „wysokiej" pewności oznacza dobrą geometrię, a nie zwalidowane połączenie. Bez dostępu do kierunku wiązki elektronicznej lub ID obsługującego satelity żadne narzędzie oparte na firmware konsumenckim nie może potwierdzić, z którego satelity antena faktycznie korzysta.
Zbadane sygnały
Podczas rozwoju oceniono kilka sygnałów pod kątem wykrywania przełączeń. Wszystkie zostały przetestowane na rzeczywistym sprzęcie (rev3_proto2, firmware 2026.02.16.cr74084 oraz 2026.04.07.mr77639.1).
| Sygnał | Hipoteza | Wynik |
|---|---|---|
seconds_to_first_nonempty_slot |
Powinien odliczać w dół na slot satelitarny i resetować się przy przełączeniu | Zawsze odczytuje 0 na testowanym sprzęcie konsumenckim; pole nie jest wypełniane |
Nieciągłości pop_ping_latency_ms |
Opóźnienie powinno skoczyć, gdy zmienia się odległość ukośna podczas przełączenia | Opóźnienie pozostaje płynne podczas przełączeń; SpaceX prawdopodobnie stosuje przełączanie nawiąż-przed-zerwaniem, które absorbuje zmiany ścieżki |
did_switch z historii przerw |
Potwierdzona flaga przełączenia w rekordach przerw | Występuje tylko podczas przerw w usłudze, nie podczas rutynowych ~15-sekundowych czystych przełączeń |
| Nieciągłości osi głównej | Fizyczne repozycjonowanie anteny może towarzyszyć przełączeniom | Korpus anteny prawie się nie rusza; elektroniczne sterowanie wiązką obsługuje śledzenie satelitów w sposób niewidoczny |
| SNR mapy przeszkód (bez resetu) | Zmiany SNR w poszczególnych komórkach powinny śledzić ruch satelity przez pole widzenia | Bez resetowania mapy, na nieprzesłoniętej antenie zwraca ona statyczną skumulowaną maskę czystego nieba; wszystkie widoczne komórki odczytują ~1,0 bez żadnej zmienności między kolejnymi odpytaniami. Skumulowane dane są w pełni wysycone, więc różnicowanie klatka po klatce nie wykazuje żadnych zmian. |
| SNR mapy przeszkód (z resetem) | Po wywołaniu dish_clear_obstruction_map mapa powinna odbudowywać się od pustej i ujawniać pozycję obsługującego satelity w miarę rysowania nowych pikseli co sekundę |
Potwierdzone działanie. Po zresetowaniu na granicach przełączeń odpytywanie 1 Hz daje czyste, jednopikselowe trajektorie satelitów. Patrz Obstruction Map and Satellite Tracking. |
Obstruction Map and Satellite Tracking
Tło
Badanie SatInView autorstwa Ahangarpour, Zhao, and Pan (ACM MobiCom '24 LEO-NET Workshop) wykazało, że obsługujący satelita może być zidentyfikowany poprzez resetowanie mapy przeszkód anteny na 15-sekundowych granicach przełączeń, odpytywanie jej z częstotliwością 1 Hz oraz wykonywanie operacji XOR na sąsiednich klatkach w celu wyodrębnienia trajektorii satelity podczas jego ruchu przez pole widzenia. Obserwowana trajektoria jest następnie dopasowywana do pozycji satelitów propagowanych z TLE, co pozwala osiągnąć niemal jednoznaczną identyfikację.
Podczas początkowego rozwoju Przeglądarki Starlink testowaliśmy mapę przeszkód bez wykonywania resetu. Na nieprzesłoniętej antenie mapa wyglądała statycznie, w pełni wysycona maska czystego nieba bez zmienności między klatkami. Wyciągnęliśmy wniosek, że dane nie zawierają informacji o sygnale satelitarnym w czasie rzeczywistym. Wniosek ten był prawidłowy dla niezresetowanej mapy, ale niepełny: mapa wyglądała statycznie, ponieważ każdy piksel, który mógł pomalować aktualny satelita, był już rozświetlony z poprzednich przelotów satelitów. Bez wcześniejszego wyczyszczenia skumulowanych danych, operacja XOR nie miała nic do wykrycia.
Zaktualizowane wnioski
Po korespondencji z zespołem badawczym SatInView przetestowaliśmy pełne podejście oparte na resecie na sprzęcie rev3_proto2 z firmware 2026.04.07.mr77639.1 (kwiecień 2026). Wyniki potwierdzają, że technika działa na obecnym sprzęcie i firmware:
dish_clear_obstruction_mapjest dostępna i funkcjonalna. Jej wywołanie czyści skumulowane dane SNR (377 aktywnych pikseli zredukowanych do 1 w testach).- Po resecie mapa odbudowuje się w tempie około jednego nowego piksela na sekundę, w miarę jak obsługujący satelita porusza się przez pole widzenia.
- Operacja XOR na sąsiednich klatkach z częstotliwością 1 Hz daje czyste, jednopikselowe punkty trajektorii z niemal zerowym rozrzutem.
- Taktowanie przełączeń co 15 sekund (12., 27., 42. i 57. sekunda każdej minuty, globalnie zsynchronizowane) zostało potwierdzone na naszym sprzęcie. Kolejne interwały śledziły ten sam satelita nieprzerwanie, z wyraźnym skokiem trajektorii, gdy następowało rzeczywiste przełączenie.
- Mapa raportuje
FRAME_EARTHna stacjonarnych aktywnych antenach, co oznacza, że siatka jest zorientowana tak, że górny środkowy piksel odpowiada prawdziwej północy. Mobilne lub nieaktywne anteny mogą raportowaćFRAME_UT, gdzie dolny środkowy piksel odpowiada kierunkowi osi głównej.
Kompromis: dlaczego Nexus domyślnie nie resetuje mapy
Wywołanie dish_clear_obstruction_map jest destrukcyjne, usuwa skumulowany profil przeszkód anteny. Dla użytkowników z instalacjami obarczonymi przeszkodami (drzewa, budynki lub inne struktury) dane te są cenne do diagnozowania problemów z sygnałem i budowane są w czasie poprzez wiele przelotów satelitów. Resetowanie co 15 sekund uniemożliwia antenie akumulację jakichkolwiek danych o przeszkodach, a aplikacja mobilna Starlink wyświetli pustą lub częściową mapę.
Nexus obecnie używa wnioskowania geometrycznego (kierunek osi głównej plus dopasowywanie TLE) jako domyślnej metody identyfikacji satelity. To podejście jest niedestrukcyjne, nie wywołuje żadnych endpointów zapisu na antenie i nie ma skutków ubocznych dla danych o przeszkodach użytkownika.
Używamy podejścia opartego na trajektorii jako narzędzia kalibracyjnego do walidacji i poprawy dokładności naszego wnioskowania geometrycznego. Oceniamy również, czy oferować śledzenie trajektorii jako opcjonalny tryb dla zaawansowanych użytkowników i badaczy, z wyraźnym ujawnieniem kompromisu dotyczącego resetowania mapy.
Co mogłoby to zmienić
Przyszłe aktualizacje firmware lub rewizje sprzętowe mogą ujawnić dodatkową telemetrię, która poprawiłaby dokładność wnioskowania:
- Funkcjonalny
seconds_to_first_nonempty_slot: jeśli to pole zostanie wypełnione na nowszym firmware lub sprzęcie, zapewni wiarygodny sygnał czasowy dla każdego przełączenia. - Kąty elektronicznego sterowania wiązką: jakiekolwiek ujawnienie rzeczywistego kierunku wiązki anteny fazowej umożliwiłoby bezpośrednią identyfikację satelity.
- Złagodzenie uwierzytelniania
dish_get_context: gdyby SpaceX ponownie włączył poleinitial_satellite_id, problem zostałby całkowicie rozwiązany. - Niedestrukcyjne dane sygnału w czasie rzeczywistym: jeśli przyszły firmware ujawni informacje o sygnale na satelitę poprzez oddzielny endpoint lub niedestrukcyjny wariant mapy przeszkód, podejście oparte na dopasowywaniu trajektorii można by stosować bez resetowania danych o przeszkodach użytkownika.
- Nowe generacje sprzętu: SpaceX wdraża satelity V3 i nowy sprzęt terminalowy. Różne wersje firmware lub rewizje sprzętowe mogą wypełniać obecnie martwe pola lub ujawniać nową telemetrię.
Wcześniejsze prace
Nexus używa wnioskowania geometrycznego (kierunek osi głównej plus pozycje satelitów propagowane z TLE) do oszacowania, który satelita obsługuje antenę. To podejście heurystyczne, skuteczne i niedestrukcyjne, ale ograniczone w precyzji.
Dla identyfikacji o wyższej dokładności, technika SatInView opracowana przez Ahangarpour, Zhao, and Pan na University of Victoria (ACM MobiCom 2024, LEO-NET Workshop) osiąga niemal jednoznaczną identyfikację satelitów poprzez korelowanie trajektorii mapy przeszkód z danymi TLE. Ich podejście wymaga resetowania mapy przeszkód na granicach przełączeń, co potwierdziliśmy, że działa na obecnym sprzęcie i firmware (patrz Obstruction Map and Satellite Tracking). Ich implementacja jest dostępna pod adresem github.com/aliahan/SatInView.
Używamy ich techniki opartej na trajektorii jako odniesienia do kalibracji i poprawy dokładności wnioskowania geometrycznego używanego w Przeglądarce Starlink.
Dane orbitalne
Pozycje satelitów pochodzą z uzupełniającego endpointu GP CelesTrak, który dostarcza efemerydę wniesioną przez SpaceX połączoną ze standardowymi danymi katalogowymi 18. Eskadry Obrony Przestrzeni Kosmicznej. Dane są buforowane lokalnie przez backend w Rust i odświeżane co 6 godzin, z 48-godzinnym awaryjnym wykorzystaniem przestarzałego bufora, jeśli CelesTrak jest nieosiągalny. Pasek stanu pokazuje bieżącą liczbę satelitów i wiek danych.
Lokalizacja anteny
Przeglądarka używa współrzędnych GPS z endpointu get_location anteny, gdy są dostępne. Jeśli dane GPS nie są dostępne, możesz ręcznie wprowadzić swoją szerokość i długość geograficzną w panelu konfiguracji.