Starlink Viewer
Áttekintés
A Starlink Viewer egy élő 3D földgömböt jelenít meg a pályán lévő összes Starlink műholddal, amelyek valós időben mozognak, az antenna helyzetét, valamint egy kikövetkeztetett kapcsolatot az antennáját nagy valószínűséggel kiszolgáló műholdhoz.
Az ideális Starlink felügyeleti eszköz pontosan megmutatná, hogy az antenna melyik műholddal kommunikál egy adott pillanatban, mikor vált át egy új műholdra, és a jelútvonalat az antennától a műholdon át a földi állomásig. Ehhez az antennának fel kellene fednie a kiszolgáló műhold azonosítóját és az elektronikus nyalábvezérlés irányát. A SpaceX egyiket sem teszi elérhetővé, ezért a Nexus Telemetry a rendelkezésre álló adatokból következteti ki a kiszolgáló műholdat.
Miért szükséges a következtetés
A SpaceX a műhold-azonosítási adatokat hitelesített gRPC végpontok mögé zárja, amelyek elérhetetlenek a fogyasztói firmware-en.
- A
dish_get_contexttartalmaz egyinitial_satellite_idmezőt, dePermissionDeniedhibát ad vissza a fogyasztói hardveren a9f4d05a4firmware (2021. június) óta. - A
transceiver_get_telemetryfeltárja azlmac_satellite_idéstarget_satellite_idmezőket, deUNIMPLEMENTEDhibát ad vissza az összes fogyasztói antennán. - A PKI kihívás-válasz hitelesítés a SpaceX által kontrollált kulcsokkal azt jelenti, hogy nem létezik közösségi megkerülő megoldás.
- Az elektronikus nyalábvezérlés iránya: amely közvetlenül azonosítaná a kiszolgáló műholdat, egyetlen végponton sem érhető el.
- Az antenna fázisozott rácsantennája elektronikusan vezérli a nyalábját akár ±50°-ra a boresighttól, de ez a vezérlési szög teljesen láthatatlan az API külső fogyasztói számára.
Elérhető adatok
Az antennáról mérve
| Adat | Amit elárul | Frissítési gyakoriság |
|---|---|---|
| Boresight azimut és eleváció | Az antenna testének fizikai tájolása | 1 Hz |
| PoP ping késleltetés | Oda-vissza idő a jelenléti pontig | 1 Hz |
| Letöltési és feltöltési átviteli sebesség | Jelenlegi átviteli teljesítmény | 1 Hz |
| Időrés-számláló | Műhold időrés-számláló (mindig 0 a tesztelt hardveren) | 1 Hz |
| GPS koordináták | Az antenna helyzete | Igény szerint |
Kiesési előzmények (did_switch) |
Megerősített műholdváltás szolgáltatáskiesés során | Kiesési eseményenként |
| Akadálytérkép (SNR rács) | 123×123 pixeles égboltkép; valós idejű műhold-jeladatokat tartalmaz, amikor átadási határokon újraindítják (lásd Obstruction Map and Satellite Tracking) | 1 Hz |
Külső források
| Adat | Amit elárul |
|---|---|
| Pályaadatok minden Starlink műholdhoz: a CelesTrak kiegészítő GP adatai, a SpaceX saját efemeriszei a 18th Space Defence Squadron katalógusával egyesítve | Minden műhold pozíciója, beleértve azokat a műholdakat is, amelyeket túl nemrég indítottak ahhoz, hogy a nyilvános katalógusban szerepeljenek; számított azimut, eleváció és ferde távolság bármely megfigyelői pozícióból |
Ami nem elérhető
| Adat | Miért akarjuk | Állapot |
|---|---|---|
| Kiszolgáló műhold ID | Közvetlen azonosítás | Hitelesítés mögé zárva |
| Elektronikus nyalábvezérlési szög | Pontos nyalábirány | Egyetlen végponton sem érhető el |
| Funkcionális időrés-számláló | Átadás időzítési jel | A mező létezik, de 0-t olvas a jelenlegi fogyasztói firmware-en |
Hogyan működik az illesztés
Műhold-illesztés
A megjelenítő a következő számítást végzi 1 Hz frekvencián:
-
A megfigyelő pozíciója: az antenna GPS koordinátái a
get_locationlekérdezésből meghatározzák, hol helyezkedik el a Földön. -
Műholdpozíciók: a CelesTrak TLE adatokon végzett SGP4 pályaterjesztéssel a megjelenítő kiszámítja az azimutot, elevációt és ferde távolságot minden Starlink műholdhoz az antenna helyzetéből nézve.
-
Látómező szűrés: csak a 10° eleváció feletti műholdak kerülnek figyelembevételre. Az antenna fizikai boresight iránya (az
alignment_statsadatokból) határozza meg a fázisozott rácsantenna ~100°-os látómező kúpjának közepét. -
Legközelebbi jelölt kiválasztása: a fizikai boresight középponttól legkisebb szögtávolságra lévő műhold kerül kiválasztásra a legvalószínűbb kiszolgáló műholdként.
A boresight szálkereszt
A polár égtérképen lévő szálkereszt az antenna testének fizikai tájolását jelöli, nem az elektronikus nyalábirányt. A Starlink fázisozott rácsantenna a kezdeti beállítás után nagyrészt mozdulatlan; a boresight értékek órák alatt a fok töredékeivel változnak szél- vagy hőhatások miatt. Az antenna fizikailag nem mozog az egyes műholdak követéséhez.
A tényleges nyalábvezérlés elektronikusan történik a fázisozott rácsantennán belül RF szinten, akár ±50°-ra a fizikai boresighttól söpörve a kiszolgáló műhold követéséhez. Ez az elektronikus nyalábirány egyetlen fogyasztói API végponton sem érhető el.
Műholdváltás-észlelés
Amikor a legközelebbi műholdjelölt megváltozik (más NORAD-ID válik geometriailag a legközelebbivé), ezt kikövetkeztetett műholdváltásként észleli a rendszer. Ezek a változások korrelálnak a tényleges antenna-átadásokkal, de nem erősítik meg azokat. Az orbitális mechanikát tükrözik; ahogy a műholdak ~7,5 km/s sebességgel haladnak el felettünk, az antenna boresight középpontjához legközelebb eső műhold természetesen néhány percenként változik.
A valódi műholdátadások a Starlink hálózatban zökkenőmentesre vannak tervezve (make-before-break), nem okozva mérhető ugrást a késleltetésben vagy átviteli teljesítményben, amelyet a jelenlegi firmware-en megbízható észlelési jelként lehetne használni.
Megbízhatósági pontszám
A megbízhatósági pontszám a geometriai valószínűségét tükrözi annak, hogy az illesztett műhold a tényleges kiszolgáló:
| Megbízhatóság | Feltételek | Értelmezés |
|---|---|---|
| Magas | < 10° a boresighttól, ≤ 3 közeli jelölt | Kevés műhold a közelben; erős geometriai jelölt |
| Közepes | < 25° a boresighttól | Jól a látómezőn belül; ésszerű jelölt |
| Alacsony | < 50° a boresighttól | Az antenna vezérlési tartományán belül, de sok közeli jelölt |
| Nincs egyezés | > 50° a boresighttól | Nincs műhold az antenna elektronikus vezérlési tartományán belül |
Ezek a küszöbértékek a fizikai boresightra (az antenna test iránya) vannak kalibrálva, nem az elektronikus nyalábra. Mivel a fázisozott rácsantenna ±50°-ra tud vezérelni az antenna felületétől, a kiszolgáló műhold jellemzően 10-40°-ra lesz a fizikai boresight középponttól. A „Magas" megbízhatósági egyezés azt jelenti, hogy egyetlen erős geometriai jelölt van; nem azt jelenti, hogy az azonosítás megerősített.
Pontossági fok
Amiben megbízhat
A műholdpozíciók a földgömbön pontosak. A CelesTrak TLE adatai mérvadóak (az US Space Force 18th Space Defence Squadrontól származnak), és az SGP4 terjesztés az űrkövetési közösség által használt standard módszer. A pozícionális pontosság jellemzően néhány kilométeren belül van a nemrég frissített TLE-k esetében.
Az antenna helyzete pontos. Közvetlenül az antenna fedélzeti GPS-éből származik.
A fizikai boresight irány pontos. Az antenna IMU-ja (inerciális mérőegység) méri ~0,6°-os bizonytalansággal.
A látható műholdak halmaza pontos. A pozíciójából az egyes műholdakig számított nézeti szögek geometriailag precízek, így a polárdiagram helyesen mutatja, mely műholdak vannak felettünk és hol helyezkednek el az égen.
Ami kikövetkeztetett
Az azonosított műhold egy megalapozott becslés. A boresight középponthoz legközelebbi műhold a legjobb geometriai jelölt, de az antenna bármely műholddal kommunikálhat a ±50°-os elektronikus vezérlési tartományán belül. Bármely adott pillanatban tucatnyi műhold lehet a látómezőben.
A műholdváltások megfigyelt geometria, nem megerősített átadások. Amikor a legközelebbi jelölt megváltozik, ez orbitális sodródást tükröz: egy másik műhold válik geometriailag a legközelebbivé. A tényleges antenna-átadások egybeeshetnek vagy sem ezekkel a geometriai változásokkal. Egyes valódi átadások láthatatlanok lesznek a következtetés számára (az antenna átvált egy másik műholdra, de a geometriailag legközelebbi nem változik), és egyes megfigyelt változások tiszta orbitális sodródás lesz (a geometriailag legközelebbi megváltozott, de az antenna valójában nem váltott).
A megbízhatósági pontszámok geometriaiak, nem jelalapúak. A „Magas" megbízhatósági egyezés jó geometriát jelent, nem validált kapcsolatot. Az elektronikus nyalábirányhoz vagy a kiszolgáló műhold ID-hez való hozzáférés nélkül egyetlen fogyasztói firmware-alapú eszköz sem tudja megerősíteni, melyik műholdat használja ténylegesen az antenna.
Megvizsgált jelek
A fejlesztés során több jelet értékeltek ki az átadás-észleléshez. Mindegyiket valódi hardveren tesztelték (rev3_proto2, firmware-ek 2026.02.16.cr74084 és 2026.04.07.mr77639.1).
| Jel | Hipotézis | Eredmény |
|---|---|---|
seconds_to_first_nonempty_slot |
Visszaszámlálnia kellene műhold-időrésenként és újraindulnia átadáskor | Mindig 0-t olvas a tesztelt fogyasztói hardveren; a mező nincs feltöltve |
pop_ping_latency_ms ugrások |
A késleltetésnek ugrania kellene, amikor a ferde távolság megváltozik átadás közben | A késleltetés simán alakul az átadásokon keresztül; a SpaceX valószínűleg make-before-break kapcsolást használ, amely elnyeli az útváltozásokat |
did_switch a kiesési előzményekből |
Megerősített váltásjelző a kiesési rekordokban | Csak szolgáltatáskiesések során aktiválódik, nem a rutinszerű ~15 másodperces tiszta átadások során |
| Boresight ugrások | Az antenna fizikai újrapozícionálása kísérheti az átadásokat | Az antenna teste alig mozdul; az elektronikus nyalábvezérlés hangtalanul kezeli a műholdkövetést |
| Akadálytérkép SNR (újraindítás nélkül) | A cellánkénti SNR változásoknak követniük kellene a műhold mozgását a látómezőn keresztül | A térkép újraindítása nélkül akadálymentes antennán statikus kumulatív tiszta égbolt maszkot ad vissza; minden látható cella ~1,0-t olvas, nulla variációval az egymást követő lekérdezések között. A felhalmozott adatok teljesen telítettek, így a képkockák közötti különbség nem mutat változást. |
| Akadálytérkép SNR (újraindítással) | A dish_clear_obstruction_map meghívása után a térképnek üresről kellene újraépülnie és feltárnia a kiszolgáló műhold pozícióját, miközben másodpercenként új pixeleket fest |
Megerősítetten működik. Az átadási határokon történő újraindítás után az 1 Hz-es lekérdezés tiszta egy-pixeles műholdpályákat hoz létre. Lásd Obstruction Map and Satellite Tracking. |
Obstruction Map and Satellite Tracking
Háttér
Ahangarpour, Zhao, and Pan SatInView tanulmánya (ACM MobiCom '24 LEO-NET Workshop) bemutatta, hogy a kiszolgáló műhold azonosítható az antenna akadálytérképének újraindításával 15 másodperces átadási határokon, 1 Hz-es lekérdezésével és a szomszédos képkockák XOR-olásával a műhold látómezőn áthaladó pályájának kinyerésére. A megfigyelt pályát ezután a TLE alapján propagált műholdpozíciókhoz illesztik a szinte egyértelmű azonosítás érdekében.
A Starlink Viewer kezdeti fejlesztése során az akadálytérképet újraindítás végrehajtása nélkül teszteltük. Akadálymentes antennán a térkép statikusnak tűnt: teljesen telített tiszta égbolt maszk képkockák közötti variáció nélkül. Arra a következtetésre jutottunk, hogy az adatok nem tartalmaznak valós idejű műhold-jelinformációt. Ez a következtetés pontos volt az újraindítatlan térképre, de hiányos: a térkép azért tűnt statikusnak, mert minden pixel, amelyet az aktuális műhold festhetett, már meg volt világítva a korábbi műholdátvonulásokból. A felhalmozott adatok előzetes törlése nélkül semmi új nem volt, amit a XOR érzékelhetett volna.
Frissített megállapítások
A SatInView kutatócsoporttal folytatott levelezés után teszteltük a teljes újraindítás-alapú megközelítést rev3_proto2 hardveren, amelyen 2026.04.07.mr77639.1 firmware (2026. április) futott. Az eredmények megerősítik, hogy a technika működik a jelenlegi hardveren és firmware-en:
- A
dish_clear_obstruction_mapelérhető és funkcionális. Meghívása törli a felhalmozott SNR adatokat (377 aktív pixelről 1-re csökkent a tesztelés során). - Újraindítás után a térkép körülbelül másodpercenként egy új pixel sebességgel épül újra, ahogy a kiszolgáló műhold áthalad a látómezőn.
- Szomszédos képkockák XOR-olása 1 Hz-en tiszta, egy-pixeles pályapontokat eredményez közel nulla szórással.
- A 15 másodperces átadási időzítés (minden perc 12., 27., 42. és 57. másodperce, globálisan szinkronizálva) megerősítést nyert a hardverünkön. Az egymást követő intervallumok folyamatosan ugyanazt a műholdat követték, egyértelmű pályaugrással, amikor tényleges átadás történt.
- A térkép
FRAME_EARTH-ot jelent álló aktív antennákon, ami azt jelenti, hogy a rács úgy van tájolva, hogy a felső-középső pixel a valódi északnak felel meg. A mobil vagy inaktív antennákFRAME_UT-ot jelenthetnek, ahol az alsó-középső pixel a boresight iránynak felel meg.
Kompromisszum: miért nem indítja újra a Nexus Telemetry a térképet alapértelmezés szerint
A dish_clear_obstruction_map hívás destruktív: törli az antenna felhalmozott akadályprofilját. Akadályozott telepítésű felhasználók számára (fák, épületek vagy egyéb szerkezetek) ezek az adatok értékesek a jelproblémák diagnosztizálásához, és sok műholdátvonulás során halmozódnak fel idővel. 15 másodpercenkénti újraindításuk megakadályozza, hogy az antenna bármilyen akadályadatot gyűjtsön, és a Starlink mobilalkalmazás üres vagy részleges térképet fog mutatni.
A Nexus Telemetry jelenleg a geometriai következtetést (boresight irány + TLE illesztés) használja alapértelmezett műhold-azonosítási módszerként. Ez a megközelítés nem destruktív: nem hív meg semmilyen író végpontot az antennán, és nincs mellékhatása a felhasználó akadályadataira.
A pálya-alapú megközelítést kalibrációs eszközként használjuk a geometriai következtetés pontosságának validálására és javítására. Azt is értékeljük, hogy felajánljuk-e a pálya-követést opcionális módként haladó felhasználóknak és kutatóknak, egyértelmű tájékoztatással a térkép újraindításának kompromisszumáról.
Mi változtathatna ezen
Jövőbeli firmware-frissítések vagy hardverváltozatok további telemetriát tárhatnának fel, amely javítaná a következtetés pontosságát:
- Funkcionális
seconds_to_first_nonempty_slot: ha ez a mező feltöltésre kerül újabb firmware-en vagy hardveren, megbízható átadásonkénti időzítési jelet biztosítana. - Elektronikus nyalábvezérlési szögek: a fázisozott rácsantenna tényleges nyalábirányának bármilyen feltárása lehetővé tenné a közvetlen műhold-azonosítást.
- Enyhített hitelesítés a
dish_get_contextlekérdezésen: ha a SpaceX újra engedélyezné azinitial_satellite_idmezőt, a probléma teljesen megoldódna. - Nem destruktív valós idejű jeladatok: ha a jövőbeli firmware külön végponton vagy az akadálytérkép nem destruktív változatán keresztül tárná fel a műholdankénti jelinformációt, a pálya-illesztési megközelítést a felhasználó akadályadatainak újraindítása nélkül is lehetne használni.
- Új hardvergenerációk: a SpaceX V3 műholdakat és új antennahardvert telepít. Különböző firmware- vagy hardververziók feltölthetik a jelenleg üres mezőket vagy új telemetriát tárhatnak fel.
Korábbi kutatások
A Nexus Telemetry geometriai következtetést (boresight irány + TLE alapján propagált műholdpozíciók) használ annak becslésére, melyik műhold szolgálja ki az antennát. Ez egy heurisztikus megközelítés: hatékony és nem destruktív, de korlátozott pontosságú.
Nagyobb pontosságú azonosításhoz az Ahangarpour, Zhao, and Pan által a University of Victoria-n kifejlesztett SatInView technika (ACM MobiCom 2024, LEO-NET Workshop) szinte egyértelmű műhold-azonosítást ér el az akadálytérkép pályáinak TLE adatokkal való korrelálásával. Megközelítésük megköveteli az akadálytérkép újraindítását az átadási határokon, amelyről megerősítettük, hogy működik a jelenlegi hardveren és firmware-en (lásd Obstruction Map and Satellite Tracking). Implementációjuk elérhető itt: github.com/aliahan/SatInView.
Az ő pálya-alapú technikájukat használjuk referenciaként a Starlink Viewerben alkalmazott geometriai következtetés pontosságának kalibrálásához és javításához.
A földgömb
Pályasávok
A műholdak pályahajlás szerint vannak csoportosítva, amelyet az egyes műholdak pályaelemeiből olvasunk ki. Minden sáv tartalmazza az összes olyan Starlink pályahéjat, amelynek hajlása közel esik a sávéhoz.
| Sáv | Starlink pályahéjak az FCC dokumentumaiban |
|---|---|
| 97° | Első generáció: 560 km, 97,6°. Második generáció: 360 km, 96,9° |
| 70° | Első generáció: 570 km, 70° |
| 53° | Első generáció: 550 km, 53° és 540 km, 53,2°. Második generáció: 525, 480 és 340 km, 53° |
| 48° | Második generáció: 345 km, 48° |
| 43° | Második generáció: 530, 485 és 355 km, 43° |
| 38° | Második generáció: 350 km, 38° |
| 30° | Második generáció: 365 és 475 km, 28° vagy 32°, valamint 535 km, 33° |
A Starlink első generációs pályahéjai az FCC 2021-es határozatában vannak számozva (FCC 21-48). A második generációs pályahéjak nincsenek számozva (FCC 22-91, DA 26-36), ezért minden sáv a pályahajlásáról kapja a nevét. Minden sáv gombja mutatja a sáv katalogizált műholdjainak számát, és be- és kikapcsolja a sávot. Az a sáv, amelyben nincs katalogizált műhold, rejtve marad.
Új indítások
Az Új indítások a nyilvános katalógusban még nem szereplő műholdakat mutatja, [NEW] címkével. Pozíciójuk a SpaceX saját efemeriszeiből származik a CelesTrak kiegészítő adataiban. Az új műhold ideiglenes, 799 500 000 vagy nagyobb katalógusszámot kap, egyetlen sávba sem számít bele, és katalogizálásakor csatlakozik a sávjához.
Indítás követése
Az Új indítások kiválasztása a legújabb, még ideiglenes katalógusszámokat viselő indításhoz ugrik, és követi annak műholdláncát. A felirat mutatja az indítás jelölését, a műholdak számát, átlagos pályahajlásukat és jelenlegi magasságukat. A Következő indítás a következő láncra ugrik, ha egynél több új indítás van. Követés közben a görgetés nagyít, a forgatás pedig zárolva van. A Követés leállítása, az Esc vagy a Középre az antennát befejezi a követést. Ha az adatokban nincs új indítás, a felirat szövege: Az aktuális adatokban nincs új indítás.
Elmosási mód
Az Elmosási mód elrejti az antennát a földgömbön: a jelölőjét, a címkéjét és a nyalábvonalat. A panelen az antenna koordinátái elmosva jelennek meg.
Pályaadatok
A műholdpozíciók a CelesTrak kiegészítő GP végpontjából származnak, amely a SpaceX által szolgáltatott efemeriszeket a standard 18th Space Defence Squadron katalógusadatokkal egyesítve biztosítja. Az adatokat a Rust háttérrendszer helyileg gyorsítótárazza és 6 óránként frissíti, 48 órás elavult gyorsítótár tartalékkal, ha a CelesTrak nem érhető el. Az állapotsor a műholdszámot, az új indítások számát és az adatok korát mutatja.
Az antenna helyzete
A megjelenítő az antenna get_location végpontjából származó GPS koordinátákat használja, ha elérhetők. Ha a GPS adatok nem hozzáférhetők, manuálisan megadhatja a szélességi és hosszúsági fokot a konfigurációs panelen.