Starlink Viewer
Oversigt
Starlink Viewer viser en live 3D-globus med alle ~10.000 Starlink-satellitter animeret i realtid, din parabolplacering og en udledt forbindelse til den satellit, der med størst sandsynlighed betjener din terminal.
Det ideelle Starlink-overvågningsværktøj ville vise dig præcis, hvilken satellit din parabol kommunikerer med på ethvert givent tidspunkt, hvornår den skifter til en ny satellit, og signalvejen fra din parabol gennem satellitten til jordstationen. Dette ville kræve, at parabolen afslørede den betjenende satellits identitet og den elektroniske strålestyringsretning. SpaceX eksponerer ingen af delene, så Nexus udleder den betjenende satellit fra de tilgængelige data.
Hvorfor udledning er nødvendig
SpaceX låser satellitidentifikationsdata bag autentificerede gRPC-endpoints, der er utilgængelige på forbrugerfirmware.
dish_get_contextindeholder etinitial_satellite_id-felt, men har returneretPermissionDeniedpå forbrugerhardware siden firmware9f4d05a4(juni 2021).transceiver_get_telemetryeksponererlmac_satellite_idogtarget_satellite_id, men returnererUNIMPLEMENTEDpå alle forbrugerterminaler.- PKI challenge-response-autentificering med SpaceX-kontrollerede nøgler betyder, at der ikke eksisterer nogen community-omgåelse.
- Elektronisk strålestyringsretning: som direkte ville identificere den betjenende satellit, er ikke eksponeret gennem noget endpoint.
- Parabolens phased array-antenne styrer sin stråle elektronisk op til ±50° fra boresight, men denne styringsvinkel er fuldstændig usynlig for eksterne API-forbrugere.
Tilgængelige data
Målt fra parabolen
| Data | Hvad det fortæller os | Opdateringshastighed |
|---|---|---|
| Boresight-azimut og -elevation | Fysisk orientering af parabolkroppen | 1 Hz |
| PoP ping-latens | Rundturstid til tilstedeværelsespunktet | 1 Hz |
| Downlink- og uplink-gennemstrømning | Aktuel gennemstrømning | 1 Hz |
| Slot-timer | Satellit-slot-timer (altid 0 på testet hardware) | 1 Hz |
| GPS-koordinater | Parabolens placering | On demand |
Afbrydelseshistorik (did_switch) |
Bekræftet satellitskift under en serviceforstyrrelse | Pr. afbrydelseshændelse |
| Obstruktionskort (SNR-gitter) | 123×123-pixel himmelkort; indeholder realtids satellitsignaldata, når det nulstilles ved overleveringsgrænser (se Obstruction Map and Satellite Tracking) | 1 Hz |
Eksterne kilder
| Data | Hvad det fortæller os |
|---|---|
| TLE-orbitalelementer for ~10.000 Starlink-satellitter (CelesTrak / 18th Space Defence Squadron) | Beregnet azimut, elevation og skrå afstand for hver satellit fra enhver observatørposition |
Hvad der ikke er tilgængeligt
| Data | Hvorfor vi ønsker det | Status |
|---|---|---|
| Betjenende satellit-ID | Direkte identifikation | Låst bag autentificering |
| Elektronisk strålestyringsvinkel | Præcis stråleretning | Ikke eksponeret i noget endpoint |
| Funktionel slot-timer | Tidssignal for overlevering | Feltet eksisterer, men læser 0 på nuværende forbrugerfirmware |
Hvordan matchning fungerer
Satellitmatchning
Vieweren udfører følgende beregning ved 1 Hz:
-
Observatørposition: parabolens GPS-koordinater fra
get_locationfastlægger, hvor du befinder dig på Jorden. -
Satellitpositioner: ved hjælp af SGP4-orbitalpropagation på TLE-data fra CelesTrak beregner vieweren azimut, elevation og skrå afstand for hver Starlink-satellit set fra din parabols placering.
-
Synsfeltfiltrering: kun satellitter over 10° elevation medtages. Parabolens fysiske boresight-retning (fra
alignment_stats) definerer centret af phased arrayets ~100° synsfeltkegle. -
Valg af nærmeste kandidat: satellitten med den mindste vinkelafstand fra det fysiske boresight-center vælges som den mest sandsynlige betjenende satellit.
Boresight-trådkorset
Trådkorset på det polare himmelplot repræsenterer den fysiske orientering af parabolkroppen, ikke den elektroniske stråleretning. Starlinks phased array-antenne er stort set stationær efter den indledende justering; boresight-værdierne ændrer sig med brøkdele af en grad over timer på grund af vind eller termiske effekter. Parabolen bevæger sig ikke fysisk for at spore individuelle satellitter.
Den faktiske strålestyring sker elektronisk inden i phased arrayet på RF-niveau og fejer op til ±50° fra det fysiske boresight for at spore den betjenende satellit. Denne elektroniske stråleretning er ikke eksponeret gennem noget forbruger-API-endpoint.
Detektion af satellitskift
Når den nærmeste satellit-kandidat skifter (et andet NORAD-ID bliver det geometrisk nærmeste), observeres dette som et udledt satellitskift. Disse ændringer korrelerer med, men bekræfter ikke faktiske paraboloverleveringer. De afspejler orbitalmekanik; efterhånden som satellitter passerer over med ~7,5 km/s, skifter den nærmeste til parabolens boresight-center naturligt hvert par minutter.
Virkelige satellit-overleveringer på Starlink er konstrueret til at være sømløse (make-before-break), uden at producere nogen målbar diskontinuitet i latens eller gennemstrømning, der kunne bruges som et pålideligt detektionssignal på nuværende firmware.
Konfidensvurdering
Konfidensscoren afspejler den geometriske sandsynlighed for, at den matchede satellit er den faktiske betjenende:
| Konfidens | Kriterier | Fortolkning |
|---|---|---|
| Høj | < 10° fra boresight, ≤ 3 nærliggende kandidater | Få satellitter i nærheden; stærk geometrisk kandidat |
| Mellem | < 25° fra boresight | Godt inden for synsfeltet; rimelig kandidat |
| Lav | < 50° fra boresight | Inden for parabolens styringsrækkevidde, men mange nærliggende kandidater |
| Ingen | > 50° fra boresight | Ingen satellit inden for parabolens elektroniske styringsrækkevidde |
Disse tærskler er kalibreret til det fysiske boresight (parabolkroppens retning), ikke den elektroniske stråle. Fordi phased arrayet kan styre ±50° fra parabolens flade, vil den betjenende satellit typisk befinde sig 10-40° fra det fysiske boresight-center. Et match med “Høj” konfidens betyder, at der er en enkelt stærk geometrisk kandidat; det betyder ikke, at identifikationen er bekræftet.
Grad af nøjagtighed
Hvad du kan stole på
Satellitpositioner på globussen er nøjagtige. TLE-data fra CelesTrak er autoritative (stammer fra US Space Force 18th Space Defence Squadron), og SGP4-propagation er standardmetoden brugt af rumovervågningsfællesskabet. Positionsnøjagtigheden er typisk inden for få kilometer for nyligt opdaterede TLE’er.
Din parabolplacering er nøjagtig. Den kommer direkte fra parabolens indbyggede GPS.
Den fysiske boresight-retning er nøjagtig. Den måles af parabolens IMU (inertial measurement unit) med en usikkerhed på ~0,6°.
Sættet af synlige satellitter er nøjagtigt. De beregnede sigtevinkler fra din position til hver satellit er geometrisk præcise, så polplottet viser korrekt, hvilke satellitter der er over dig, og hvor de befinder sig på himlen.
Hvad der er udledt
Den identificerede satellit er et kvalificeret gæt. Den nærmeste satellit til boresight-centret er den bedste geometriske kandidat, men parabolen kan kommunikere med enhver satellit inden for dens ±50° elektroniske styringsrækkevidde. På ethvert givent tidspunkt kan dusinvis af satellitter være inden for synsfeltet.
Satellitskift er observeret geometri, ikke bekræftede overleveringer. Når den nærmeste kandidat skifter, afspejler dette orbital drift; en anden satellit bliver geometrisk nærmest. Faktiske paraboloverleveringer kan eller kan ikke falde sammen med disse geometriske ændringer. Nogle virkelige overleveringer vil være usynlige for udledningen (parabolen skifter til en anden satellit, men den geometrisk nærmeste ændrer sig ikke), og nogle observerede ændringer vil være ren orbital drift (den geometrisk nærmeste ændrede sig, men parabolen skiftede faktisk ikke).
Konfidensscorer er geometriske, ikke signalbaserede. Et match med “Høj” konfidens betyder god geometri, ikke en valideret forbindelse. Uden adgang til den elektroniske stråleretning eller det betjenende satellit-ID kan intet værktøj baseret på forbrugerfirmware bekræfte, hvilken satellit parabolen faktisk bruger.
Signaler vi undersøgte
Under udviklingen blev flere signaler evalueret til detektering af overleveringer. Alle blev testet mod reel hardware (rev3_proto2, firmware 2026.02.16.cr74084 og 2026.04.07.mr77639.1).
| Signal | Hypotese | Resultat |
|---|---|---|
seconds_to_first_nonempty_slot |
Burde tælle ned pr. satellitslot og nulstille ved overlevering | Læser altid 0 på testet forbrugerhardware; feltet er uudfyldt |
pop_ping_latency_ms-diskontinuiteter |
Latens burde hoppe, når skrå afstand ændres under en overlevering | Latens forbliver glat gennem overleveringer; SpaceX bruger sandsynligvis make-before-break-switching, der absorberer stiændringer |
did_switch fra afbrydelseshistorik |
Bekræftet skift-flag i afbrydelsesregistre | Udløses kun under serviceforstyrrelser, ikke rutine ~15-sekunders rene overleveringer |
| Boresight-diskontinuiteter | Fysisk parabolrepositionering kunne ledsage overleveringer | Parabolkroppen bevæger sig næsten ikke; elektronisk strålestyring håndterer satellitsporing stille |
| Obstruktionskort SNR (uden nulstilling) | SNR-ændringer pr. celle burde spore satellitbevægelse gennem synsfeltet | Uden at nulstille kortet returnerer det på en uhindret parabol en statisk kumulativ klar-himmel-maske; alle synlige celler læser ~1,0 med nul variation mellem på hinanden følgende forespørgsler. De akkumulerede data er fuldt mættede, så frame-for-frame differensberegning viser ingen ændringer. |
| Obstruktionskort SNR (med nulstilling) | Efter kald til dish_clear_obstruction_map burde kortet genopbygges fra tomt og afsløre den betjenende satellits position, mens det tegner nye pixels hvert sekund |
Bekræftet virker. Efter nulstilling ved overleveringsgrænser producerer 1 Hz-forespørgsel rene enkelt-pixel satellitbaner. Se Obstruction Map and Satellite Tracking. |
Obstruction Map and Satellite Tracking
Baggrund
SatInView-studiet af Ahangarpour, Zhao, and Pan (ACM MobiCom '24 LEO-NET Workshop) demonstrerede, at den betjenende satellit kan identificeres ved at nulstille parabolens obstruktionskort ved 15-sekunders overleveringsgrænser, forespørge det ved 1 Hz og XORe tilstødende frames for at udtrække satellittens bane, mens den bevæger sig gennem synsfeltet. Den observerede bane matches derefter med TLE-propagerede satellitpositioner for at opnå næsten entydig identifikation.
Under den indledende udvikling af Starlink Viewer testede vi obstruktionskortet uden at udføre en nulstilling. På en uhindret parabol syntes kortet statisk, en fuldt mættet klar-himmel-maske uden frame-for-frame variation. Vi konkluderede, at dataene ikke indeholdt realtids satellitsignalinformation. Denne konklusion var korrekt for det ikke-nulstillede kort, men ufuldstændig: kortet syntes statisk, fordi hver pixel, som den aktuelle satellit kunne tegne, allerede var oplyst fra tidligere satellitpassager. Uden først at rydde de akkumulerede data var der intet nyt for XOR at opdage.
Opdaterede fund
Efter korrespondance med SatInView-forskningsholdet testede vi den fulde nulstillingsbaserede tilgang på rev3_proto2-hardware med firmware 2026.04.07.mr77639.1 (april 2026). Resultaterne bekræfter, at teknikken fungerer på nuværende hardware og firmware:
dish_clear_obstruction_maper tilgængelig og funktionel. At kalde den rydder de akkumulerede SNR-data (377 aktive pixels reduceret til 1 i test).- Efter en nulstilling genopbygges kortet med cirka en ny pixel pr. sekund, mens den betjenende satellit bevæger sig gennem synsfeltet.
- XORing af tilstødende frames ved 1 Hz producerer rene, enkelt-pixel banepunkter med næsten nul spredning.
- 15-sekunders overleveringstimingen (12., 27., 42. og 57. sekunder af hvert minut, globalt synkroniseret) blev bekræftet på vores hardware. På hinanden følgende intervaller sporede kontinuerligt den samme satellit med et klart banespring, når en faktisk overlevering fandt sted.
- Kortet rapporterer
FRAME_EARTHpå stationære aktive paraboler, hvilket betyder, at gitteret er orienteret således, at den øverste midterste pixel svarer til retvisende nord. Mobile eller inaktive paraboler kan rapportereFRAME_UT, hvor den nederste midterste pixel svarer til boresight-retningen.
Afvejning: hvorfor Nexus ikke nulstiller kortet som standard
Kaldet dish_clear_obstruction_map er destruktivt, det sletter parabolens akkumulerede obstruktionsprofil. For brugere med obstruerede installationer (træer, bygninger eller andre strukturer) er disse data værdifulde til diagnosticering af signalproblemer og opbygges over tid på tværs af mange satellitpassager. At nulstille det hvert 15. sekund forhindrer parabolen i at akkumulere obstruktionsdata overhovedet, og Starlink-mobilappen vil vise et tomt eller delvist kort.
Nexus bruger i øjeblikket geometrisk udledning (boresight-retning plus TLE-matching) som sin standardmetode til satellitidentifikation. Denne tilgang er ikke-destruktiv, den kalder ingen skrive-endpoints på parabolen og har ingen bivirkninger på brugerens obstruktionsdata.
Vi bruger den banebaserede tilgang som et kalibreringsværktøj til at validere og forbedre nøjagtigheden af vores geometriske udledning. Vi evaluerer også, om vi skal tilbyde banesporing som en tilvalgstilstand for avancerede brugere og forskere med klar oplysning om afvejningen ved kortnulstilling.
Hvad der kunne ændre dette
Fremtidige firmwareopdateringer eller hardwarerevisioner kunne eksponere yderligere telemetri, der ville forbedre udledningsnøjagtigheden:
- Funktionel
seconds_to_first_nonempty_slot: hvis dette felt udfyldes på nyere firmware eller hardware, ville det give et pålideligt tidssignal pr. overlevering. - Elektroniske strålestyringsvinkler: enhver eksponering af phased arrayets faktiske stråleretning ville muliggøre direkte satellitidentifikation.
- Lempet autentificering på
dish_get_context: hvis SpaceX genaktiveredeinitial_satellite_id-feltet, ville problemet være helt løst. - Ikke-destruktive realtidssignaldata: hvis fremtidig firmware eksponerer per-satellit signalinformation gennem et separat endpoint eller en ikke-destruktiv variant af obstruktionskortet, kunne banematchingtilgangen anvendes uden at nulstille brugerens obstruktionsdata.
- Nye hardwaregenerationer: SpaceX udsender V3-satellitter og ny terminalhardware. Forskellige firmware- eller hardwarerevisioner kan udfylde aktuelt inaktive felter eller eksponere ny telemetri.
Tidligere arbejde
Nexus bruger geometrisk udledning (boresight-retning plus TLE-propagerede satellitpositioner) til at estimere, hvilken satellit der betjener parabolen. Dette er en heuristisk tilgang, effektiv og ikke-destruktiv, men begrænset i præcision.
For identifikation med højere nøjagtighed opnår SatInView-teknikken udviklet af Ahangarpour, Zhao, and Pan ved University of Victoria (ACM MobiCom 2024, LEO-NET Workshop) næsten entydig satellitidentifikation ved at korrelere obstruktionskort-baner med TLE-data. Deres tilgang kræver nulstilling af obstruktionskortet ved overleveringsgrænser, hvilket vi har bekræftet virker på nuværende hardware og firmware (se Obstruction Map and Satellite Tracking). Deres implementering er tilgængelig på github.com/aliahan/SatInView.
Vi bruger deres banebaserede teknik som reference til at kalibrere og forbedre nøjagtigheden af den geometriske udledning, der bruges i Starlink Viewer.
Orbitaldata
Satellitpositioner stammer fra CelesTrak supplerende GP-endpoint, der leverer SpaceX-bidragne ephemeris-data sammenflettet med standard 18th Space Defence Squadron-katalogdata. Dataene caches lokalt af Rust-backenden og opdateres hver 6. time med en 48-timers forældet cache-fallback, hvis CelesTrak er utilgængelig. Statusbjælken viser det aktuelle satellitantal og dataalder.
Parabolplacering
Vieweren bruger GPS-koordinater fra parabolens get_location-endpoint, når de er tilgængelige. Hvis GPS-data ikke er tilgængelige, kan du manuelt indtaste din breddegrad og længdegrad i konfigurationspanelet.