Pro edition lamang

Pangkalahatang-tanaw

Ang Starlink Viewer ay nagpapakita ng isang live na 3D globe na may lahat ng ~10,000 Starlink satellite na gumagalaw nang real time, ang lokasyon ng iyong dish, at isang inferred na koneksyon sa satellite na pinakamalamang nagse-serve sa iyong terminal.

Ang perpektong Starlink monitoring tool ay magpapakita sa iyo kung eksaktong aling satellite ang kinakausap ng iyong dish sa anumang sandali, kung kailan ito lumilipat sa bagong satellite, at ang signal path mula sa iyong dish, sa satellite, hanggang sa ground station. Nangangailangan ito na i-expose ng dish ang identity ng serving satellite at ang electronic beam steering direction. Hindi ine-expose ng SpaceX ang alinman sa dalawa, kaya ini-infer ng Nexus ang serving satellite mula sa available na data.

Bakit Kailangan ang Inference

Naka-lock ang satellite identification data ng SpaceX sa likod ng mga authenticated na gRPC endpoint na hindi accessible sa consumer firmware.

  • Ang dish_get_context ay naglalaman ng initial_satellite_id field, ngunit nagbabalik ng PermissionDenied sa consumer hardware mula noong firmware 9f4d05a4 (Hunyo 2021).
  • Ang transceiver_get_telemetry ay nag-e-expose ng lmac_satellite_id at target_satellite_id, ngunit nagbabalik ng UNIMPLEMENTED sa lahat ng consumer terminal.
  • Ang PKI challenge-response authentication gamit ang mga key na kontrolado ng SpaceX ay nangangahulugang walang community bypass na umiiral.
  • Ang electronic beam steering direction: na direktang makakapag-identify ng serving satellite, ay hindi ine-expose sa anumang endpoint.
  • Ang phased array antenna ng dish ay elektronikong nag-i-steer ng beam nito nang hanggang ±50° mula sa boresight, ngunit ang steering angle na ito ay ganap na invisible sa mga external consumer ng API.

Available na Data

Sinusukat mula sa dish

Data Ano ang sinasabi nito sa atin Update rate
Boresight azimuth at elevation Pisikal na orientation ng katawan ng dish 1 Hz
PoP ping latency Round-trip time papunta sa point of presence 1 Hz
Downlink at uplink throughput Kasalukuyang throughput 1 Hz
Slot timer Satellite slot timer (palaging 0 sa tested hardware) 1 Hz
GPS coordinates Lokasyon ng dish On demand
Outage history (did_switch) Kumpirmadong satellite switch habang may service disruption Bawat outage event
Obstruction map (SNR grid) 123×123 pixel sky map, naglalaman ng real-time satellite signal data kapag nire-reset sa handover boundaries (tingnan ang Obstruction Map and Satellite Tracking) 1 Hz

Mga external source

Data Ano ang sinasabi nito sa atin
TLE orbital element para sa ~10,000 Starlink satellite (CelesTrak / 18th Space Defence Squadron) Kinalkula na azimuth, elevation, at slant range ng bawat satellite mula sa anumang observer position

Ano ang hindi available

Data Bakit natin ito gusto Status
Serving satellite ID Direktang identification Naka-lock sa likod ng authentication
Electronic beam steering angle Tumpak na beam direction Hindi ine-expose sa anumang endpoint
Functional slot timer Handoff timing signal Umiiral ang field ngunit nagbabasa ng 0 sa kasalukuyang consumer firmware

Paano Gumagana ang Matching

Satellite matching

Ang viewer ay nagsasagawa ng sumusunod na computation sa 1 Hz:

  1. Posisyon ng observer: ang GPS coordinates ng dish mula sa get_location ang nagtatatag kung nasaan ka sa Earth.

  2. Mga posisyon ng satellite: gamit ang SGP4 orbital propagation sa TLE data mula sa CelesTrak, kinakalkula ng viewer ang azimuth, elevation, at slant range ng bawat Starlink satellite ayon sa lokasyon ng iyong dish.

  3. Field of view filtering: mga satellite lamang na nasa itaas ng 10° elevation ang isinasaalang-alang. Ang pisikal na boresight direction ng dish (mula sa alignment_stats) ang nagde-define ng sentro ng ~100° field of view cone ng phased array.

  4. Nearest candidate selection: ang satellite na may pinakamaliit na angular distance mula sa pisikal na boresight center ang napipili bilang pinakamalamang serving satellite.

Ang boresight crosshair

Ang crosshair sa polar sky plot ay kumakatawan sa pisikal na orientation ng katawan ng dish, hindi ang electronic beam direction. Ang Starlink phased array antenna ay halos hindi gumagalaw pagkatapos ng initial alignment; ang mga boresight value ay nagbabago nang ilang fraction ng degree sa loob ng ilang oras dahil sa hangin o thermal effect. Ang dish ay hindi pisikal na gumagalaw para mag-track ng mga indibidwal na satellite.

Ang aktwal na beam steering ay nangyayari nang elektroniko sa loob ng phased array sa RF level, nag-i-sweep nang hanggang ±50° mula sa pisikal na boresight para ma-track ang serving satellite. Ang electronic beam direction na ito ay hindi ine-expose sa anumang consumer API endpoint.

Satellite change detection

Kapag nagbago ang nearest satellite candidate (iba ang NORAD ID na nagiging geometric nearest), ito ay nao-observe bilang isang inferred satellite change. Ang mga pagbabagong ito ay nakaka-correlate sa ngunit hindi nagko-confirm ng aktwal na dish handoff. Isinasalamin nila ang orbital mechanics; habang ang mga satellite ay dumadaan sa itaas sa ~7.5 km/s, ang isa na pinakamalapit sa boresight center ng dish ay natural na nagbabago kada ilang minuto.

Ang mga totoong satellite handoff sa Starlink ay idinisenyo na seamless (make-before-break), na walang nasusukat na discontinuity sa latency o throughput na magagamit bilang maaasahang detection signal sa kasalukuyang firmware.

Confidence scoring

Ang confidence score ay nagpapakita ng geometric na likelihood na ang matched satellite ay ang aktwal na nagse-serve:

Confidence Criteria Interpretasyon
High < 10° mula sa boresight, ≤ 3 malapit na candidate Kakaunting satellite sa paligid; malakas na geometric candidate
Medium < 25° mula sa boresight Magandang posisyon sa field of view; makatwirang candidate
Low < 50° mula sa boresight Nasa loob ng steering range ng dish ngunit maraming malapit na candidate
No Match > 50° mula sa boresight Walang satellite sa loob ng electronic steering range ng dish

Ang mga threshold na ito ay naka-calibrate para sa pisikal na boresight (direksyon ng katawan ng dish), hindi ang electronic beam. Dahil ang phased array ay maaaring mag-steer ng ±50° mula sa mukha ng dish, ang serving satellite ay karaniwang 10-40° mula sa pisikal na boresight center. Ang “High” confidence match ay nangangahulugang mayroong isang malakas na geometric candidate; hindi ito nangangahulugang kumpirmado ang identification.

Antas ng Katumpakan

Ano ang mapagkakatiwalaan mo

Tumpak ang mga posisyon ng satellite sa globe. Ang TLE data mula sa CelesTrak ay authoritative (mula sa US Space Force 18th Space Defence Squadron) at ang SGP4 propagation ang standard na method na ginagamit ng space tracking community. Ang positional accuracy ay karaniwang nasa loob ng ilang kilometro para sa mga kamakailang na-update na TLE.

Tumpak ang lokasyon ng iyong dish. Direkta itong galing sa onboard na GPS ng dish.

Tumpak ang pisikal na boresight direction. Sinusukat ito ng IMU (inertial measurement unit) ng dish na may uncertainty na ~0.6°.

Tumpak ang set ng mga nakikitang satellite. Ang mga kinalkula na look angle mula sa iyong posisyon papunta sa bawat satellite ay geometrically precise, kaya tama ang ipinapakita ng polar plot kung aling mga satellite ang nasa itaas at kung nasaan sila sa kalangitan.

Ano ang inferred

Ang na-identify na satellite ay isang educated guess. Ang satellite na pinakamalapit sa boresight center ang pinakamahusay na geometric candidate, ngunit ang dish ay maaaring nakikipag-communicate sa anumang satellite sa loob ng ±50° electronic steering range nito. Sa anumang sandali, dose-dosenang satellite ang maaaring nasa field of view.

Ang mga satellite change ay observed geometry, hindi kumpirmadong handoff. Kapag nagbago ang nearest candidate, ito ay nagpapakita ng orbital drift; ibang satellite ang nagiging geometrically closest. Ang mga aktwal na dish handoff ay maaari o hindi maaaring tumugma sa mga geometric change na ito. Ang ilang totoong handoff ay magiging invisible sa inference (ang dish ay lumipat sa ibang satellite ngunit ang geometric nearest ay hindi nagbago), at ang ilang observed change ay purong orbital drift (ang geometric nearest ay nagbago ngunit ang dish ay hindi talaga lumipat).

Ang mga confidence score ay geometric, hindi signal-based. Ang “High” confidence match ay nangangahulugang magandang geometry, hindi validated na koneksyon. Kung walang access sa electronic beam direction o sa serving satellite ID, walang tool na nakabatay sa consumer firmware ang makakapag-confirm kung aling satellite talaga ang ginagamit ng dish.

Mga Signal na In-imbestigahan Namin

Sa panahon ng development, ilang mga signal ang in-evaluate para sa handoff detection. Lahat ay sinubukan sa totoong hardware (rev3_proto2, firmware 2026.02.16.cr74084 at 2026.04.07.mr77639.1).

Signal Hypothesis Natuklasan
seconds_to_first_nonempty_slot Dapat mag-countdown bawat satellite slot at mag-reset sa handoff Palaging nagbabasa ng 0 sa tested consumer hardware; hindi populated ang field
pop_ping_latency_ms discontinuity Dapat tumalon ang latency kapag nagbago ang slant range habang may handoff Nananatiling smooth ang latency sa buong mga handoff; malamang gumagamit ang SpaceX ng make-before-break switching na umaabsorb ng path change
did_switch mula sa outage history Kumpirmadong switch flag sa outage record Nagfa-fire lamang habang may service disruption, hindi sa mga routine na ~15-segundong malinis na handoff
Boresight discontinuity Ang pisikal na repositioning ng dish ay maaaring kasama ng mga handoff Halos hindi gumagalaw ang katawan ng dish; ang electronic beam steering ang tahimik na humahawak ng satellite tracking
Obstruction map SNR (walang reset) Ang mga per-cell na pagbabago sa SNR ay dapat mag-track ng paggalaw ng satellite sa field of view Nang hindi nire-reset ang map, sa isang dish na walang harang, ito ay nagbabalik ng static na cumulative clear-sky mask; lahat ng visible cell ay nagbabasa ng ~1.0 na walang variation sa pagitan ng magkakasunod na poll. Ang accumulated data ay fully saturated, kaya ang frame-to-frame differencing ay hindi nagpapakita ng anumang pagbabago.
Obstruction map SNR (may reset) Matapos tawagin ang dish_clear_obstruction_map, dapat muling mabuo ang map mula sa walang laman at ipakita ang posisyon ng serving satellite habang nagpipinta ito ng mga bagong pixel bawat segundo Nakumpirma na gumagana. Pagkatapos i-reset sa handover boundaries, ang 1 Hz polling ay nagpoprodyus ng malinis na single-pixel satellite trajectory. Tingnan ang Obstruction Map and Satellite Tracking.

Obstruction Map and Satellite Tracking

Background

Ipinakita ng SatInView study nina Ahangarpour, Zhao, and Pan (ACM MobiCom '24 LEO-NET Workshop) na ang serving satellite ay maaaring ma-identify sa pamamagitan ng pag-reset ng obstruction map ng dish sa 15-segundong handover boundaries, nagpo-poll sa 1 Hz, at nag-XOR ng mga katabing frame para mag-extract ng trajectory ng satellite habang ito ay gumagalaw sa field of view. Ang observed trajectory ay pagkatapos ay nai-match sa mga TLE-propagated na posisyon ng satellite para makamit ang halos hindi mag-aalinlangan na identification.

Sa panahon ng unang pag-develop ng Starlink Viewer, in-test namin ang obstruction map nang walang reset. Sa isang dish na walang harang, ang map ay mukhang static, isang fully saturated clear-sky mask na walang variation sa pagitan ng mga frame. Konklusyon namin na ang data ay hindi naglalaman ng real-time na satellite signal information. Ang konklusyon na ito ay tumpak para sa hindi-reset na map, ngunit hindi kumpleto: ang map ay mukhang static dahil bawat pixel na maaaring ipinta ng kasalukuyang satellite ay naka-ilaw na mula sa mga nakaraang pagdaan ng satellite. Kung hindi muna buburahin ang accumulated data, walang bago para ma-detect ng XOR.

Na-update na mga natuklasan

Matapos ang pakikipag-ugnayan sa SatInView research team, in-test namin ang buong reset-based approach sa rev3_proto2 hardware na nagpapatakbo ng firmware 2026.04.07.mr77639.1 (Abril 2026). Kinukumpirma ng mga resulta na ang technique ay gumagana sa kasalukuyang hardware at firmware:

  • Ang dish_clear_obstruction_map ay available at functional. Ang pagtawag dito ay nagbu-burado ng accumulated SNR data (377 active pixel ay nabawasan sa 1 sa testing).
  • Pagkatapos ng reset, muling itinatayo ang map sa humigit-kumulang isang bagong pixel kada segundo habang ang serving satellite ay gumagalaw sa field of view.
  • Ang pag-XOR ng mga katabing frame sa 1 Hz ay nagpoprodyus ng malinis na single-pixel trajectory point na may halos zero na spread.
  • Ang 15-segundong handover timing (ika-12, ika-27, ika-42, at ika-57 segundo ng bawat minuto, globally synchronized) ay nakumpirma sa aming hardware. Ang magkakasunod na interval ay tumrack sa parehong satellite nang tuloy-tuloy, na may malinaw na trajectory jump kapag naganap ang aktwal na handover.
  • Ang map ay nag-uulat ng FRAME_EARTH sa mga stationary active dish, na ang ibig sabihin ay ang grid ay naka-orient na ang top-center pixel ay tumutugma sa true north. Ang mga mobile o inactive na dish ay maaaring mag-report ng FRAME_UT, kung saan ang bottom-center pixel ay tumutugma sa boresight direction.

Trade-off: bakit hindi nire-reset ng Nexus ang map bilang default

Ang tawag na dish_clear_obstruction_map ay destructive, binu-burado nito ang accumulated obstruction profile ng dish. Para sa mga user na may obstructed installation (mga puno, gusali, o ibang istruktura), ang data na ito ay mahalaga para sa pag-diagnose ng signal issue at naipon sa paglipas ng panahon sa maraming pagdaan ng satellite. Ang pag-reset kada 15 segundo ay pumipigil sa dish na mag-ipon ng anumang obstruction data, at magpapakita ang Starlink mobile app ng walang laman o parsyal na map.

Kasalukuyang ginagamit ng Nexus ang geometric inference (boresight direction + TLE matching) bilang default satellite identification method nito. Ang approach na ito ay non-destructive, hindi ito tumatawag ng anumang write endpoint sa dish at walang side effect sa obstruction data ng user.

Ginagamit namin ang trajectory-based approach bilang calibration tool para ma-validate at mapahusay ang accuracy ng aming geometric inference. Ine-evaluate din namin kung mag-aalok ng trajectory tracking bilang opt-in mode para sa mga advanced user at researcher, na may malinaw na pagsisiwalat tungkol sa map reset trade-off.

Ano ang Maaaring Magbago Nito

Ang mga future firmware update o hardware revision ay maaaring mag-expose ng karagdagang telemetry na magpapabuti sa inference accuracy:

  • Functional seconds_to_first_nonempty_slot: kung populated ang field na ito sa mas bagong firmware o hardware, magbibigay ito ng maaasahang per-handoff timing signal.
  • Electronic beam steering angle: anumang pag-expose ng aktwal na beam direction ng phased array ay magbibigay-daan sa direktang satellite identification.
  • Relaxed authentication sa dish_get_context: kung muling ie-enable ng SpaceX ang initial_satellite_id field, ganap na malulutas ang problema.
  • Non-destructive real-time signal data: kung mag-e-expose ang future firmware ng per-satellite signal information sa pamamagitan ng hiwalay na endpoint o non-destructive variant ng obstruction map, maaaring magamit ang trajectory-matching approach nang hindi nire-reset ang obstruction data ng user.
  • Mga bagong hardware generation: nagde-deploy ang SpaceX ng V3 satellite at bagong terminal hardware. Ang iba’t ibang firmware o hardware revision ay maaaring mag-populate ng mga kasalukuyang dead field o mag-expose ng bagong telemetry.

Naunang Pananaliksik

Ginagamit ng Nexus ang geometric inference (boresight direction + TLE-propagated satellite position) para matantiya kung aling satellite ang nagse-serve sa dish. Ito ay isang heuristic approach, epektibo at non-destructive, ngunit limitado sa precision.

Para sa mas mataas na accuracy na identification, ang SatInView technique na binuo nina Ahangarpour, Zhao, and Pan sa University of Victoria (ACM MobiCom 2024, LEO-NET Workshop) ay nagkakamit ng halos hindi mag-aalinlangan na satellite identification sa pamamagitan ng pagko-correlate ng obstruction map trajectory sa TLE data. Ang kanilang approach ay nangangailangan ng pag-reset ng obstruction map sa handover boundaries, na nakumpirma naming gumagana sa kasalukuyang hardware at firmware (tingnan ang Obstruction Map and Satellite Tracking). Ang kanilang implementation ay available sa github.com/aliahan/SatInView.

Ginagamit namin ang kanilang trajectory-based technique bilang reference para mag-calibrate at mapahusay ang accuracy ng geometric inference na ginagamit sa Starlink Viewer.

Orbital Data

Ang mga posisyon ng satellite ay kinukuha mula sa CelesTrak supplemental GP endpoint, na nagbibigay ng SpaceX-contributed ephemeris na isinama sa standard na 18th Space Defence Squadron catalogue data. Ang data ay naka-cache nang lokal sa Rust backend at nire-refresh tuwing 6 na oras, na may 48-oras na stale cache fallback kung hindi maabot ang CelesTrak. Ipinapakita ng status bar ang kasalukuyang bilang ng satellite at ang edad ng data.

Lokasyon ng Dish

Gumagamit ang viewer ng GPS coordinates mula sa get_location endpoint ng dish kapag available. Kung hindi accessible ang GPS data, maaari mong manu-manong i-enter ang iyong latitude at longitude sa configuration panel.