Alleen Pro-editie

Overzicht

De Starlink Viewer toont een live 3D-globe met alle ~10.000 Starlink-satellieten die in realtime worden geanimeerd, de locatie van uw schotel en een afgeleide verbinding met de satelliet die uw terminal hoogstwaarschijnlijk bedient.

Het ideale Starlink-monitoringtool zou u precies laten zien met welke satelliet uw schotel op elk moment communiceert, wanneer deze overschakelt naar een nieuwe satelliet, en het signaalpad van uw schotel via de satelliet naar het grondstation. Dit zou vereisen dat de schotel de identiteit van de bedienende satelliet en de elektronische bundelstuurrichting blootgeeft. SpaceX geeft geen van beide bloot, dus Nexus leidt de bedienende satelliet af uit de beschikbare gegevens.

Waarom afleiding noodzakelijk is

SpaceX vergrendelt satellietidentificatiegegevens achter geauthenticeerde gRPC-eindpunten die ontoegankelijk zijn op consumentenfirmware.

  • dish_get_context bevat een initial_satellite_id-veld, maar retourneert PermissionDenied op consumentenhardware sinds firmware 9f4d05a4 (juni 2021).
  • transceiver_get_telemetry onthult lmac_satellite_id en target_satellite_id, maar retourneert UNIMPLEMENTED op alle consumententerminalen.
  • PKI challenge-response-authenticatie met door SpaceX beheerde sleutels betekent dat er geen community-omzeiling bestaat.
  • Elektronische bundelstuurrichting: die de bedienende satelliet direct zou identificeren; wordt niet blootgesteld via enig eindpunt.
  • De phased-array-antenne van de schotel stuurt de bundel elektronisch tot ±50° van boresight, maar deze stuurhoek is volledig onzichtbaar voor externe API-gebruikers.

Beschikbare gegevens

Gemeten vanuit de schotel

Gegevens Wat het ons vertelt Verversingsfrequentie
Boresight-azimut en -elevatie Fysieke oriëntatie van het schotellichaam 1 Hz
PoP ping-latentie Rondreis-tijd naar het aanwezigheidspunt 1 Hz
Download- en uploaddoorvoer Huidige doorvoer 1 Hz
Slottimer Satellietslottimer (altijd 0 op geteste hardware) 1 Hz
GPS-coördinaten Schotellocatie Op verzoek
Storingsgeschiedenis (did_switch) Bevestigde satellietwissel tijdens een servicestoring Per storingsgebeurtenis
Obstructiekaart (SNR-raster) 123×123-pixel hemelkaart; bevat realtime satellietsignaalgegevens wanneer deze op overdrachtsgrenzen wordt gereset (zie Obstruction Map and Satellite Tracking) 1 Hz

Externe bronnen

Gegevens Wat het ons vertelt
TLE-baanelementen voor ~10.000 Starlink-satellieten (CelesTrak / 18e Space Defence Squadron) Berekende azimut, elevatie en schuine afstand van elke satelliet vanuit elke waarnemerspositie

Wat niet beschikbaar is

Gegevens Waarom we het willen Status
ID van de bedienende satelliet Directe identificatie Vergrendeld achter authenticatie
Elektronische bundelstuurhoek Precieze bundelrichting Niet blootgesteld in enig eindpunt
Functionele slottimer Tijdsignaal voor overdracht Veld bestaat maar leest 0 op huidige consumentenfirmware

Hoe matching werkt

Satellietmatching

De viewer voert de volgende berekening uit op 1 Hz:

  1. Waarnemerspositie: de GPS-coördinaten van de schotel uit get_location bepalen waar u zich op aarde bevindt.

  2. Satellietposities: met SGP4-baanvoortplanting op TLE-gegevens van CelesTrak berekent de viewer de azimut, elevatie en schuine afstand van elke Starlink-satelliet zoals gezien vanuit de locatie van uw schotel.

  3. Gezichtsveldfiltering: alleen satellieten boven 10° elevatie worden meegenomen. De fysieke boresight-richting van de schotel (uit alignment_stats) definieert het centrum van de ~100° gezichtsveldkegel van de phased array.

  4. Selectie van dichtstbijzijnde kandidaat: de satelliet met de kleinste hoekafstand tot het fysieke boresight-centrum wordt geselecteerd als de meest waarschijnlijke bedienende satelliet.

Het boresight-dradenkruis

Het dradenkruis op het polaire hemeldiagram vertegenwoordigt de fysieke oriëntatie van het schotellichaam, niet de elektronische bundelrichting. De phased-array-antenne van Starlink is grotendeels stationair na de initiële uitlijning; de boresight-waarden veranderen met fracties van een graad gedurende uren door wind- of thermische effecten. De schotel beweegt niet fysiek om individuele satellieten te volgen.

De daadwerkelijke bundelsturing gebeurt elektronisch binnen de phased array op RF-niveau en zwaait tot ±50° van de fysieke boresight om de bedienende satelliet te volgen. Deze elektronische bundelrichting wordt niet blootgesteld via enig consumenten-API-eindpunt.

Detectie van satellietwisseling

Wanneer de dichtstbijzijnde satellietkandidaat verandert (een ander NORAD-ID wordt geometrisch het dichtstbijzijnde), wordt dit waargenomen als een afgeleide satellietwisseling. Deze wijzigingen correleren met, maar bevestigen niet, daadwerkelijke schotel-overdrachten. Ze weerspiegelen baanmechanica; terwijl satellieten met ~7,5 km/s passeren, verandert de dichtstbijzijnde ten opzichte van het boresight-centrum van de schotel vanzelf elke paar minuten.

Werkelijke satellietoverdrachten op Starlink zijn ontworpen om naadloos te zijn (make-before-break), zonder meetbare discontinuïteit in latentie of doorvoer die als betrouwbaar detectiesignaal op huidige firmware zou kunnen dienen.

Betrouwbaarheidsscoring

De betrouwbaarheidsscore weerspiegelt de geometrische waarschijnlijkheid dat de gematchte satelliet daadwerkelijk de bedienende is:

Betrouwbaarheid Criteria Interpretatie
Hoog < 10° van boresight, ≤ 3 nabije kandidaten Weinig satellieten in de buurt; sterke geometrische kandidaat
Gemiddeld < 25° van boresight Ruim binnen het gezichtsveld; redelijke kandidaat
Laag < 50° van boresight Binnen het stuurbereik van de schotel maar veel nabije kandidaten
Geen match > 50° van boresight Geen satelliet binnen het elektronische stuurbereik van de schotel

Deze drempelwaarden zijn gekalibreerd voor de fysieke boresight (richting van het schotellichaam), niet de elektronische bundel. Omdat de phased array ±50° van het schoteloppervlak kan sturen, bevindt de bedienende satelliet zich doorgaans 10 tot 40° van het fysieke boresight-centrum. Een “Hoog” betrouwbaarheidsmatch betekent dat er één sterke geometrische kandidaat is; het betekent niet dat de identificatie is bevestigd.

Nauwkeurigheidsgraad

Wat u kunt vertrouwen

Satellietposities op de globe zijn nauwkeurig. TLE-gegevens van CelesTrak zijn gezaghebbend (afkomstig van het US Space Force 18e Space Defence Squadron) en SGP4-voortplanting is de standaardmethode die door de ruimtevolgingsgemeenschap wordt gebruikt. De positienauwkeurigheid ligt doorgaans binnen enkele kilometers voor recent bijgewerkte TLE’s.

De locatie van uw schotel is nauwkeurig. Deze komt rechtstreeks van de ingebouwde GPS van de schotel.

De fysieke boresight-richting is nauwkeurig. Deze wordt gemeten door de IMU (inertiële meeteenheid) van de schotel met een onzekerheid van ~0,6°.

De verzameling zichtbare satellieten is nauwkeurig. De berekende kijkhoeken vanuit uw positie naar elke satelliet zijn geometrisch precies, dus het polaire diagram toont correct welke satellieten boven u zijn en waar ze zich aan de hemel bevinden.

Wat is afgeleid

De geïdentificeerde satelliet is een weloverwogen schatting. De dichtstbijzijnde satelliet bij het boresight-centrum is de beste geometrische kandidaat, maar de schotel kan communiceren met elke satelliet binnen zijn ±50° elektronisch stuurbereik. Op elk moment kunnen tientallen satellieten binnen het gezichtsveld zijn.

Satellietwisselingen zijn waargenomen geometrie, geen bevestigde overdrachten. Wanneer de dichtstbijzijnde kandidaat verandert, weerspiegelt dit baandrift; een andere satelliet wordt geometrisch het dichtstbijzijnde. Werkelijke schotel-overdrachten kunnen al dan niet samenvallen met deze geometrische veranderingen. Sommige werkelijke overdrachten zullen onzichtbaar zijn voor de afleiding (de schotel schakelt over naar een andere satelliet, maar de geometrisch dichtstbijzijnde verandert niet), en sommige waargenomen wijzigingen zullen puur baandrift zijn (de geometrisch dichtstbijzijnde veranderde, maar de schotel schakelde niet daadwerkelijk over).

Betrouwbaarheidsscores zijn geometrisch, niet signaalgebaseerd. Een “Hoog” betrouwbaarheidsmatch betekent goede geometrie, niet een gevalideerde verbinding. Zonder toegang tot de elektronische bundelrichting of het ID van de bedienende satelliet kan geen enkel op consumentenfirmware gebaseerd hulpmiddel bevestigen welke satelliet de schotel daadwerkelijk gebruikt.

Signalen die we onderzochten

Tijdens de ontwikkeling werden verschillende signalen geëvalueerd voor overdrachtsdetectie. Alle werden getest op echte hardware (rev3_proto2, firmware 2026.02.16.cr74084 en 2026.04.07.mr77639.1).

Signaal Hypothese Bevinding
seconds_to_first_nonempty_slot Zou moeten aftellen per satellietslot en resetten bij overdracht Leest altijd 0 op geteste consumentenhardware; veld is niet ingevuld
pop_ping_latency_ms-discontinuïteiten Latentie zou moeten springen wanneer de schuine afstand verandert tijdens overdracht Latentie blijft soepel door overdrachten heen; SpaceX gebruikt waarschijnlijk make-before-break-schakeling die padveranderingen opvangt
did_switch uit storingsgeschiedenis Bevestigde wisselvlag in storingsrecords Wordt alleen geactiveerd tijdens servicestoringen, niet bij routinematige ~15 seconden schone overdrachten
Boresight-discontinuïteiten Fysieke herpositionering van de schotel kan overdrachten vergezellen Het schotellichaam beweegt nauwelijks; elektronische bundelsturing handelt satelliettracering geruisloos af
Obstructiekaart-SNR (zonder reset) Per-cel SNR-veranderingen zouden satellietbeweging door het gezichtsveld moeten volgen Zonder de kaart te resetten retourneert deze op een onbelemmerde schotel een statisch cumulatief heldere-hemelmasker; alle zichtbare cellen lezen ~1,0 met nul variatie tussen opeenvolgende peilingen. De geaccumuleerde gegevens zijn volledig verzadigd, dus frame-voor-frame-verschilbepaling toont geen veranderingen.
Obstructiekaart-SNR (met reset) Na het aanroepen van dish_clear_obstruction_map zou de kaart vanuit leeg opnieuw moeten opbouwen en de positie van de bedienende satelliet moeten onthullen door elke seconde nieuwe pixels te tekenen Werking bevestigd. Na een reset op overdrachtsgrenzen produceert 1 Hz-peiling schone enkelvoudige pixel-satelliettrajectoriën. Zie Obstruction Map and Satellite Tracking.

Obstruction Map and Satellite Tracking

Achtergrond

De SatInView-studie door Ahangarpour, Zhao, and Pan (ACM MobiCom '24 LEO-NET Workshop) demonstreerde dat de bedienende satelliet kan worden geïdentificeerd door de obstructiekaart van de schotel te resetten op de 15 seconden overdrachtsgrenzen, deze op 1 Hz te peilen en aangrenzende frames te XORen om het traject van de satelliet te extraheren terwijl deze door het gezichtsveld beweegt. Het waargenomen traject wordt vervolgens gematcht met TLE-gepropageerde satellietposities om een vrijwel eenduidige identificatie te bereiken.

Tijdens de initiële ontwikkeling van de Starlink Viewer testten we de obstructiekaart zonder een reset uit te voeren. Op een onbelemmerde schotel leek de kaart statisch, een volledig verzadigde heldere-hemelmasker zonder frame-voor-frame-variatie. We concludeerden dat de gegevens geen realtime satellietsignaalinformatie bevatten. Deze conclusie was juist voor de niet-gereset kaart, maar onvolledig: de kaart leek statisch omdat elke pixel die de huidige satelliet kon tekenen al verlicht was door eerdere satellietpassages. Zonder eerst de geaccumuleerde gegevens te wissen, was er niets nieuws voor de XOR om te detecteren.

Bijgewerkte bevindingen

Na correspondentie met het SatInView-onderzoeksteam hebben we de volledige reset-gebaseerde aanpak getest op rev3_proto2-hardware met firmware 2026.04.07.mr77639.1 (april 2026). De resultaten bevestigen dat de techniek werkt op huidige hardware en firmware:

  • dish_clear_obstruction_map is beschikbaar en functioneel. Het aanroepen wist de geaccumuleerde SNR-gegevens (377 actieve pixels teruggebracht tot 1 in testen).
  • Na een reset bouwt de kaart zich weer op met ongeveer één nieuwe pixel per seconde terwijl de bedienende satelliet door het gezichtsveld beweegt.
  • Het XORen van aangrenzende frames bij 1 Hz produceert schone, enkelvoudige pixel-trajectpunten met vrijwel nul spreiding.
  • De 15 seconden overdrachtstiming (12e, 27e, 42e en 57e seconden van elke minuut, wereldwijd gesynchroniseerd) werd bevestigd op onze hardware. Opeenvolgende intervallen volgden dezelfde satelliet continu, met een duidelijke trajectsprong wanneer een daadwerkelijke overdracht plaatsvond.
  • De kaart rapporteert FRAME_EARTH op stationaire actieve schotels, wat betekent dat het raster is georiënteerd met de bovenste middelste pixel overeenkomend met ware noord. Mobiele of inactieve schotels kunnen FRAME_UT rapporteren, waarbij de onderste middelste pixel overeenkomt met de boresight-richting.

Afweging: waarom Nexus de kaart standaard niet reset

De aanroep dish_clear_obstruction_map is destructief, deze wist het geaccumuleerde obstructieprofiel van de schotel. Voor gebruikers met geobstrueerde installaties (bomen, gebouwen of andere structuren) zijn deze gegevens waardevol voor het diagnosticeren van signaalproblemen en worden ze in de loop van de tijd opgebouwd over vele satellietpassages. Elke 15 seconden resetten verhindert dat de schotel obstructiegegevens kan verzamelen, en de mobiele Starlink-app toont een lege of gedeeltelijke kaart.

Nexus gebruikt momenteel geometrische afleiding (boresight-richting plus TLE-matching) als standaardmethode voor satellietidentificatie. Deze aanpak is niet-destructief, hij roept geen schrijfeindpunten op de schotel aan en heeft geen bijwerkingen op de obstructiegegevens van de gebruiker.

We gebruiken de trajectgebaseerde aanpak als kalibratietool om de nauwkeurigheid van onze geometrische afleiding te valideren en te verbeteren. We evalueren ook of we trajectracering aanbieden als opt-in-modus voor gevorderde gebruikers en onderzoekers, met duidelijke onthulling over de afweging van het resetten van de kaart.

Wat dit zou kunnen veranderen

Toekomstige firmware-updates of hardwarerevisies zouden aanvullende telemetrie kunnen blootstellen die de afleidingsnauwkeurigheid zou verbeteren:

  • Functionele seconds_to_first_nonempty_slot: als dit veld wordt ingevuld op nieuwere firmware of hardware, zou het een betrouwbaar tijdsignaal per overdracht bieden.
  • Elektronische bundelstuurhoeken: elke onthulling van de werkelijke bundelrichting van de phased array zou directe satellietidentificatie mogelijk maken.
  • Versoepelde authenticatie op dish_get_context: als SpaceX het initial_satellite_id-veld opnieuw zou inschakelen, zou het probleem volledig zijn opgelost.
  • Niet-destructieve realtime signaalgegevens: als toekomstige firmware per-satelliet signaalinformatie blootstelt via een apart eindpunt of een niet-destructieve variant van de obstructiekaart, zou de trajectmatching-aanpak gebruikt kunnen worden zonder de obstructiegegevens van de gebruiker te resetten.
  • Nieuwe hardwaregeneraties: SpaceX rolt V3-satellieten en nieuwe terminalhardware uit. Andere firmware- of hardwarerevisies kunnen momenteel dode velden invullen of nieuwe telemetrie blootstellen.

Eerder werk

Nexus gebruikt geometrische afleiding (boresight-richting plus TLE-gepropageerde satellietposities) om te schatten welke satelliet de schotel bedient. Dit is een heuristische aanpak, effectief en niet-destructief, maar beperkt in precisie.

Voor identificatie met hogere nauwkeurigheid bereikt de SatInView-techniek, ontwikkeld door Ahangarpour, Zhao, and Pan aan de University of Victoria (ACM MobiCom 2024, LEO-NET Workshop), vrijwel eenduidige satellietidentificatie door obstructiekaart-trajectories te correleren met TLE-gegevens. Hun aanpak vereist het resetten van de obstructiekaart op overdrachtsgrenzen, wat we hebben bevestigd te werken op huidige hardware en firmware (zie Obstruction Map and Satellite Tracking). Hun implementatie is beschikbaar op github.com/aliahan/SatInView.

We gebruiken hun trajectgebaseerde techniek als referentie om de nauwkeurigheid te kalibreren en te verbeteren van de geometrische afleiding die in de Starlink Viewer wordt toegepast.

Baangegevens

Satellietposities worden verkregen van het CelesTrak aanvullende GP-eindpunt, dat door SpaceX bijgedragen efemeride-gegevens biedt samengevoegd met standaard 18e Space Defence Squadron-catalogusgegevens. De gegevens worden lokaal gecachet door de Rust-backend en elke 6 uur ververst, met een 48-uurs verouderde cache-terugval als CelesTrak onbereikbaar is. De statusbalk toont het huidige aantal satellieten en de leeftijd van de gegevens.

Schotellocatie

De viewer gebruikt GPS-coördinaten van het get_location-eindpunt van de schotel wanneer beschikbaar. Als GPS-gegevens niet toegankelijk zijn, kunt u uw breedte- en lengtegraad handmatig invoeren in het configuratiepaneel.