Kun Pro-udgave

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 storst sandsynlighed betjener din terminal.

Det ideelle Starlink-overvaegningsvaerktoej ville vise dig praecis, hvilken satellit din parabol kommunikerer med pa ethvert givent tidspunkt, hvornaar den skifter til en ny satellit, og signalvejen fra din parabol gennem satellitten til jordstationen. Dette ville kraeve, at parabolen afsloerede den betjenende satellits identitet og den elektroniske straalestyringsretning. SpaceX eksponerer ingen af delene, saa Nexus udleder den betjenende satellit fra de tilgaengelige data.

Hvorfor udledning er noedvendig

SpaceX laaser satellitidentifikationsdata bag autentificerede gRPC-endpoints, der er utilgaengelige paa forbrugerfirmware.

  • dish_get_context indeholder et initial_satellite_id-felt, men har returneret PermissionDenied paa forbrugerhardware siden firmware 9f4d05a4 (juni 2021).
  • transceiver_get_telemetry eksponerer lmac_satellite_id og target_satellite_id, men returnerer UNIMPLEMENTED paa alle forbrugerteminaler.
  • PKI challenge-response-autentificering med SpaceX-kontrollerede noegler betyder, at der ikke eksisterer nogen community-omgaaelse.
  • Elektronisk straalestyringsretning: som direkte ville identificere den betjenende satellit; er ikke eksponeret gennem noget endpoint.
  • Parabolens phased array-antenne styrer sin straale elektronisk op til ±50° fra boresight, men denne styringsvinkel er fuldstaendig usynlig for eksterne API-forbrugere.

Tilgaengelige data

Maalt fra parabolen

Data Hvad det fortaeller os Opdateringshastighed
Boresight-azimut og -elevation Fysisk orientering af parabolkroppen 1 Hz
PoP ping-latens Rundturstid til tilstede vaerelsespunktet 1 Hz
Downlink- og uplink-gennemlob Aktuelt gennemlob 1 Hz
Slot-timer Satellit-slot-timer (altid 0 paa testet hardware) 1 Hz
GPS-koordinater Parabolens placering On demand
Afbrudelseshistorik (did_switch) Bekraeftet satellitskift under en serviceforstyrelse Pr. afbrudelseshaendelse
Obstruktionskort (SNR-gitter) 123×123-pixel himmelkort; indeholder realtids satellitsignaldata, naar det nulstilles ved overleveringsgraenser (se Obstruction Map and Satellite Tracking) 1 Hz

Eksterne kilder

Data Hvad det fortaeller os
TLE-orbitalelementer for ~10.000 Starlink-satellitter (CelesTrak / 18th Space Defence Squadron) Beregnet azimut, elevation og skraa afstand for hver satellit fra enhver observatoerposition

Hvad der ikke er tilgaengeligt

Data Hvorfor vi oensker det Status
Betjenende satellit-ID Direkte identifikation Laast bag autentificering
Elektronisk straalestyringsvinkel Praecis straaleretning Ikke eksponeret i noget endpoint
Funktionel slot-timer Tidssignal for overlevering Feltet eksisterer, men laeser 0 paa nuvaerende forbrugerfirmware

Hvordan matchning fungerer

Satellitmatchning

Vieweren udfoerer foelgende beregning ved 1 Hz:

  1. Observatoerposition: parabolens GPS-koordinater fra get_location fastlaegger, hvor du befinder dig paa Jorden.

  2. Satellitpositioner: ved hjaelp af SGP4-orbitalpropagation paa TLE-data fra CelesTrak beregner vieweren azimut, elevation og skraa afstand for hver Starlink-satellit set fra din parabols placering.

  3. Synsfeltfiltrering: kun satellitter over 10° elevation medtages. Parabolens fysiske boresight-retning (fra alignment_stats) definerer centret af phased arrayets ~100° synsfeltkegle.

  4. Valg af naermeste kandidat: satellitten med den mindste vinkelafstand fra det fysiske boresight-center vaelges som den mest sandsynlige betjenende satellit.

Boresight-traadkorset

Traadkorset paa det polare himmelplot repraesenterer den fysiske orientering af parabolkroppen, ikke den elektroniske straaleretning. Starlinks phased array-antenne er stort set stationaer efter den indledende justering; boresight-vaerdierne aendrer sig med broekdele af en grad over timer paa grund af vind eller termiske effekter. Parabolen bevaeger sig ikke fysisk for at spore individuelle satellitter.

Den faktiske straalsstyring sker elektronisk inden i phased arrayet paa RF-niveau og fejer op til ±50° fra det fysiske boresight for at spore den betjenende satellit. Denne elektroniske straaleretning er ikke eksponeret gennem noget forbruger-API-endpoint.

Detektion af satellitskift

Naar den naermeste satellit-kandidat skifter (et andet NORAD-ID bliver det geometrisk naermeste), observeres dette som et udledt satellitskift. Disse aendringer korrelerer med, men bekraefter ikke faktiske paraboloverleveringer. De afspejler orbitale mekanik; efterhaanden som satellitter passerer over med ~7,5 km/s, skifter den naermeste til parabolens boresight-center naturligt hvert par minutter.

Virkelige satellit-overleveringer paa Starlink er konstrueret til at vaere soemloese (make-before-break), uden at producere nogen maalbar diskontinuitet i latens eller gennemlob, der kunne bruges som et paalideligt detektionssignal paa nuvaerende firmware.

Konfidensvurdering

Konfidensscoren afspejler den geometriske sandsynlighed for, at den matchede satellit er den faktiske betjenende:

Konfidens Kriterier Fortolkning
Hoej < 10° fra boresight, ≤ 3 naerliggende kandidater Faa satellitter i naerheden; staerk geometrisk kandidat
Medium < 25° fra boresight Godt inden for synsfeltet; rimelig kandidat
Lav < 50° fra boresight Inden for parabolens styringsraekkevidde, men mange naerliggende kandidater
Ingen match > 50° fra boresight Ingen satellit inden for parabolens elektroniske styringsraekkevidde

Disse taerskler er kalibreret til det fysiske boresight (parabolkroppens retning), ikke den elektroniske straale. 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 “Hoej” konfidens betyder, at der er en enkelt staerk geometrisk kandidat; det betyder ikke, at identifikationen er bekraeftet.

Grad af noejagtighed

Hvad du kan stole paa

Satellitpositioner paa globussen er noejagtige. TLE-data fra CelesTrak er autoritative (stammer fra US Space Force 18th Space Defence Squadron), og SGP4-propagation er standardmetoden brugt af rumovervaegningsfaellesskabet. Positionsnoejagtigheden er typisk inden for faa kilometer for nyligt opdaterede TLE’er.

Din parabolplacering er noejagtig. Den kommer direkte fra parabolens indbyggede GPS.

Den fysiske boresight-retning er noejagtig. Den maales af parabolens IMU (inertial measurement unit) med en usikkerhed paa ~0,6°.

Saettet af synlige satellitter er noejagtigt. De beregnede kiggvinkler fra din position til hver satellit er geometrisk praecise, saa polplottet viser korrekt, hvilke satellitter der er over dig, og hvor de befinder sig paa himlen.

Hvad der er udledt

Den identificerede satellit er et kvalificeret gaet. Den naermeste satellit til boresight-centret er den bedste geometriske kandidat, men parabolen kan kommunikere med enhver satellit inden for dens ±50° elektroniske styringsraekkevidde. Paa ethvert givent tidspunkt kan dusinvis af satellitter vaere inden for synsfeltet.

Satellitskift er observeret geometri, ikke bekraeftede overleveringer. Naar den naermeste kandidat skifter, afspejler dette orbital drift; en anden satellit bliver geometrisk naermest. Faktiske paraboloverleveringer kan eller kan ikke falde sammen med disse geometriske aendringer. Nogle virkelige overleveringer vil vaere usynlige for udledningen (parabolen skifter til en anden satellit, men den geometrisk naermeste aendrer sig ikke), og nogle observerede aendringer vil vaere ren orbital drift (den geometrisk naermeste aendrede sig, men parabolen skiftede faktisk ikke).

Konfidensscorer er geometriske, ikke signalbaserede. Et match med “Hoej” konfidens betyder god geometri, ikke en valideret forbindelse. Uden adgang til den elektroniske straaleretning eller det betjenende satellit-ID kan intet vaerktoej baseret paa forbrugerfirmware bekraefte, hvilken satellit parabolen faktisk bruger.

Signaler vi undersoegte

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 taelle ned pr. satellitslot og nulstille ved overlevering Laeser altid 0 paa testet forbrugerhardware; feltet er uudfyldt
pop_ping_latency_ms-diskontinuiteter Latens burde hoppe, naar skraa afstand aendres under en overlevering Latens forbliver glat gennem overleveringer; SpaceX bruger sandsynligvis make-before-break-switching, der absorberer stiaendringer
did_switch fra afbrudelseshistorik Bekraeftet skift-flag i afbrudelsesregistre Udloeses kun under serviceforstyrrelser, ikke rutine ~15-sekunders rene overleveringer
Boresight-diskontinuiteter Fysisk parabolrepositionering kunne ledsage overleveringer Parabolkroppen bevaeger sig naesten ikke; elektronisk straalsstyring haandterer satellitsporing stille
Obstruktionskort SNR (uden nulstilling) SNR-aendringer pr. celle burde spore satellitbevaegelse gennem synsfeltet Uden at nulstille kortet returnerer det paa en uhindret parabol en statisk kumulativ klar-himmel-maske; alle synlige celler laeser ~1,0 med nul variation mellem paa hinanden foelgende forespoergsler. De akkumulerede data er fuldt maettede, saa frame-for-frame differensberegning viser ingen aendringer.
Obstruktionskort SNR (med nulstilling) Efter kald til dish_clear_obstruction_map burde kortet genopbygges fra tomt og afsloere den betjenende satellits position, mens det tegner nye pixels hvert sekund Bekraeftet virker. Efter nulstilling ved overleveringsgraenser producerer 1 Hz-forespoergsel 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 overleveringsgraenser, forespoerge det ved 1 Hz og XORe tilstoedende frames for at udtraekke satellittens bane, mens den bevaeger sig gennem synsfeltet. Den observerede bane matches derefter med TLE-propagerede satellitpositioner for at opnaa naesten entydig identifikation.

Under den indledende udvikling af Starlink Viewer testede vi obstruktionskortet uden at udfoere en nulstilling. Paa en uhindret parabol syntes kortet statisk, en fuldt maettet 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 ufuldstaendig: kortet syntes statisk, fordi hver pixel, som den aktuelle satellit kunne tegne, allerede var oplyst fra tidligere satellitpassager. Uden foerst 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 paa rev3_proto2-hardware med firmware 2026.04.07.mr77639.1 (april 2026). Resultaterne bekraefter, at teknikken fungerer paa nuvaerende hardware og firmware:

  • dish_clear_obstruction_map er tilgaengelig 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 bevaeger sig gennem synsfeltet.
  • XORing af tilstoedende frames ved 1 Hz producerer rene, enkelt-pixel banepunkter med naesten nul spredning.
  • 15-sekunders overleveringstimingen (12., 27., 42. og 57. sekunder af hvert minut, globalt synkroniseret) blev bekraeftet paa vores hardware. Paa hinanden foelgende intervaller sporede kontinuerligt den samme satellit med et klart banespring, naar en faktisk overlevering fandt sted.
  • Kortet rapporterer FRAME_EARTH paa stationaere aktive paraboler, hvilket betyder, at gitteret er orienteret saaledes, at den oeverste midterste pixel svarer til retvisende nord. Mobile eller inaktive paraboler kan rapportere FRAME_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 (traeer, bygninger eller andre strukturer) er disse data vaerdifulde til diagnosticering af signalproblemer og opbygges over tid paa tvaers 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 oejeblikket geometrisk udledning (boresight-retning plus TLE-matching) som sin standardmetode til satellitidentifikation. Denne tilgang er ikke-destruktiv, den kalder ingen skrive-endpoints paa parabolen og har ingen bivirkninger paa brugerens obstruktionsdata.

Vi bruger den banebaserede tilgang som et kalibreringsvaerktoej til at validere og forbedre noejagtigheden af vores geometriske udledning. Vi evaluerer ogsaa, om vi skal tilbyde banesporing som en tilvalgstilstand for avancerede brugere og forskere med klar oplysning om afvejningen ved kortnulstilling.

Hvad der kunne aendre dette

Fremtidige firmwareopdateringer eller hardwarerevisioner kunne eksponere yderligere telemetri, der ville forbedre udledningsnoejagtigheden:

  • Funktionel seconds_to_first_nonempty_slot: hvis dette felt udfyldes paa nyere firmware eller hardware, ville det give et paalideligt tidssignal pr. overlevering.
  • Elektroniske straalsstyringsvinkler: enhver eksponering af phased arrayets faktiske straaleretning ville muliggoere direkte satellitidentifikation.
  • Lempet autentificering paa dish_get_context: hvis SpaceX genaktiverede initial_satellite_id-feltet, ville problemet vaere helt loest.
  • 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 begraenset i praecision.

For identifikation med hoejere noejagtighed opnaar SatInView-teknikken udviklet af Ahangarpour, Zhao, and Pan ved University of Victoria (ACM MobiCom 2024, LEO-NET Workshop) naesten entydig satellitidentifikation ved at korrelere obstruktionskort-baner med TLE-data. Deres tilgang kraever nulstilling af obstruktionskortet ved overleveringsgraenser, hvilket vi har bekraeftet virker paa nuvaerende hardware og firmware (se Obstruction Map and Satellite Tracking). Deres implementering er tilgaengelig paa github.com/aliahan/SatInView.

Vi bruger deres banebaserede teknik som reference til at kalibrere og forbedre noejagtigheden af den geometriske udledning, der bruges i Starlink Viewer.

Orbitaldata

Satellitpositioner stammer fra CelesTrak supplerende GP-endpoint, der leverer SpaceX-bidragne ephemeris-data sammenflettede med standard 18th Space Defence Squadron-katalogdata. Dataene caches lokalt af Rust-backenden og opdateres hver 6. time med en 48-timers foraeldet cache-fallback, hvis CelesTrak er utilgaengelig. Statusbjaelken viser det aktuelle satellitantal og dataalder.

Parabolplacering

Vieweren bruger GPS-koordinater fra parabolens get_location-endpoint, naar de er tilgaengelige. Hvis GPS-data ikke er tilgaengelige, kan du manuelt indtaste din breddegrad og laengdegrad i konfigurationspanelet.