Starlink Viewer
Descripción general
El Starlink Viewer muestra un globo 3D en vivo con todos los satélites Starlink en órbita animados en tiempo real, la ubicación de su antena y una conexión inferida con el satélite que más probablemente está sirviendo a su antena.
La herramienta ideal de monitoreo de Starlink le mostraría exactamente qué satélite está comunicándose con su antena en cualquier momento dado, cuándo realiza la transferencia a un nuevo satélite y la ruta de la señal desde su antena a través del satélite hasta la estación terrestre. Esto requeriría que la antena expusiera la identidad del satélite servidor y la dirección de apuntamiento electrónico del haz. SpaceX no expone ninguno de los dos, por lo que Nexus Telemetry infiere el satélite servidor a partir de los datos disponibles.
Por qué es necesaria la inferencia
SpaceX bloquea los datos de identificación de satélites detrás de endpoints gRPC autenticados que son inaccesibles en el firmware de consumidor.
dish_get_contextcontiene un campoinitial_satellite_id, pero ha devueltoPermissionDenieden hardware de consumidor desde el firmware9f4d05a4(junio de 2021).transceiver_get_telemetryexponelmac_satellite_idytarget_satellite_id, pero devuelveUNIMPLEMENTEDen todas las antenas de consumidor.- La autenticación PKI de desafío-respuesta con claves controladas por SpaceX significa que no existe ninguna solución alternativa de la comunidad.
- La dirección de apuntamiento electrónico del haz: que identificaría directamente al satélite servidor, no se expone a través de ningún endpoint.
- La antena de matriz en fase de la antena dirige su haz electrónicamente hasta ±50° desde el eje de mira (boresight), pero este ángulo de direccionamiento es completamente invisible para los consumidores externos de la API.
Datos disponibles
Medidos desde la antena
| Datos | Qué nos dicen | Tasa de actualización |
|---|---|---|
| Azimut y elevación de boresight | Orientación física del cuerpo de la antena | 1 Hz |
| Latencia de PoP ping | Tiempo de ida y vuelta al punto de presencia | 1 Hz |
| Rendimiento de bajada y subida | Rendimiento actual | 1 Hz |
| Temporizador de slot | Temporizador de slot de satélite (siempre 0 en hardware probado) | 1 Hz |
| Coordenadas GPS | Ubicación de la antena | Bajo demanda |
Historial de interrupciones (did_switch) |
Cambio de satélite confirmado durante una interrupción del servicio | Por evento de interrupción |
| Mapa de obstrucciones (cuadrícula SNR) | Mapa del cielo de 123×123 píxeles; contiene datos de señal de satélite en tiempo real cuando se reinicia en los límites de transferencia (vea Obstruction Map and Satellite Tracking) | 1 Hz |
Fuentes externas
| Datos | Qué nos dicen |
|---|---|
| Datos orbitales de cada satélite Starlink: los datos GP suplementarios de CelesTrak, las efemérides propias de SpaceX fusionadas con el catálogo del 18th Space Defence Squadron | La posición de cada satélite, incluidos los satélites lanzados demasiado recientemente para figurar en el catálogo público; azimut, elevación y distancia oblicua calculados desde cualquier posición de observador |
Qué no está disponible
| Datos | Por qué los queremos | Estado |
|---|---|---|
| ID del satélite servidor | Identificación directa | Bloqueado detrás de autenticación |
| Ángulo de apuntamiento electrónico del haz | Dirección precisa del haz | No expuesto en ningún endpoint |
| Temporizador de slot funcional | Señal de temporizado de transferencia | El campo existe pero lee 0 en el firmware de consumidor actual |
Cómo funciona la correspondencia
Correspondencia de satélites
El visor realiza el siguiente cálculo a 1 Hz:
-
Posición del observador: las coordenadas GPS de la antena de
get_locationestablecen dónde se encuentra usted en la Tierra. -
Posiciones de los satélites: utilizando la propagación orbital SGP4 sobre datos TLE de CelesTrak, el visor calcula el azimut, la elevación y la distancia oblicua de cada satélite Starlink visto desde la ubicación de su antena.
-
Filtrado del campo de visión: solo se consideran los satélites por encima de 10° de elevación. La dirección física de boresight de la antena (de
alignment_stats) define el centro del cono de campo de visión de ~100° de la matriz en fase. -
Selección del candidato más cercano: el satélite con la menor distancia angular desde el centro del boresight físico se selecciona como el satélite servidor más probable.
La cruceta de boresight
La cruceta en el gráfico polar del cielo representa la orientación física del cuerpo de la antena, no la dirección del haz electrónico. La antena de matriz en fase de Starlink es en gran medida estacionaria después de la alineación inicial; los valores de boresight cambian en fracciones de grado a lo largo de horas debido al viento o efectos térmicos. La antena no se mueve físicamente para rastrear satélites individuales.
El apuntamiento real del haz ocurre electrónicamente dentro de la matriz en fase a nivel RF, barriendo hasta ±50° desde el boresight físico para rastrear el satélite servidor. Esta dirección de haz electrónico no se expone a través de ningún endpoint de API de consumidor.
Detección de cambio de satélite
Cuando el candidato de satélite más cercano cambia (un ID NORAD diferente se convierte en el geométricamente más cercano), esto se observa como un cambio de satélite inferido. Estos cambios se correlacionan con, pero no confirman, transferencias reales de la antena. Reflejan la mecánica orbital; a medida que los satélites pasan por encima a ~7,5 km/s, el más cercano al centro de boresight de la antena cambia naturalmente cada pocos minutos.
Las transferencias reales de satélites en Starlink están diseñadas para ser transparentes (make-before-break), sin producir discontinuidad medible en latencia o rendimiento que pueda usarse como señal de detección confiable en el firmware actual.
Puntuación de confianza
La puntuación de confianza refleja la probabilidad geométrica de que el satélite emparejado sea el que realmente está sirviendo:
| Confianza | Criterios | Interpretación |
|---|---|---|
| Alta | < 10° desde boresight, ≤ 3 candidatos cercanos | Pocos satélites en la vecindad; candidato geométrico fuerte |
| Media | < 25° desde boresight | Bien dentro del campo de visión; candidato razonable |
| Baja | < 50° desde boresight | Dentro del rango de direccionamiento de la antena pero muchos candidatos cercanos |
| Sin coincidencia | > 50° desde boresight | Ningún satélite dentro del rango de direccionamiento electrónico de la antena |
Estos umbrales están calibrados para el boresight físico (dirección del cuerpo de la antena), no para el haz electrónico. Debido a que la matriz en fase puede dirigir ±50° desde la cara de la antena, el satélite servidor estará típicamente a 10-40° del centro del boresight físico. Una correspondencia de confianza “Alta” significa que hay un único candidato geométrico fuerte; no significa que la identificación esté confirmada.
Grado de precisión
En qué puede confiar
Las posiciones de los satélites en el globo son precisas. Los datos TLE de CelesTrak son autoritativos (provenientes del US Space Force 18th Space Defence Squadron) y la propagación SGP4 es el método estándar utilizado por la comunidad de seguimiento espacial. La precisión posicional es típicamente de unos pocos kilómetros para TLE actualizados recientemente.
La ubicación de su antena es precisa. Proviene directamente del GPS integrado de la antena.
La dirección física de boresight es precisa. Se mide con la IMU (unidad de medición inercial) de la antena con una incertidumbre de ~0,6°.
El conjunto de satélites visibles es preciso. Los ángulos de observación calculados desde su posición a cada satélite son geométricamente precisos, por lo que el gráfico polar muestra correctamente qué satélites están sobre usted y dónde se encuentran en el cielo.
Qué es inferido
El satélite identificado es una estimación fundamentada. El satélite más cercano al centro de boresight es el mejor candidato geométrico, pero la antena puede estar comunicándose con cualquier satélite dentro de su rango de direccionamiento electrónico de ±50°. En cualquier momento dado, docenas de satélites pueden estar dentro del campo de visión.
Los cambios de satélite son geometría observada, no transferencias confirmadas. Cuando el candidato más cercano cambia, esto refleja deriva orbital: un satélite diferente se convierte en el geométricamente más cercano. Las transferencias reales de la antena pueden o no coincidir con estos cambios geométricos. Algunas transferencias reales serán invisibles para la inferencia (la antena cambia a un satélite diferente pero el geométricamente más cercano no cambia), y algunos cambios observados serán pura deriva orbital (el geométricamente más cercano cambió pero la antena en realidad no cambió).
Las puntuaciones de confianza son geométricas, no basadas en señal. Una correspondencia de confianza “Alta” significa buena geometría, no una conexión validada. Sin acceso a la dirección del haz electrónico o al ID del satélite servidor, ninguna herramienta basada en firmware de consumidor puede confirmar qué satélite está usando realmente la antena.
Señales que investigamos
Durante el desarrollo, se evaluaron varias señales para la detección de transferencias. Todas se probaron en hardware real (rev3_proto2, firmware 2026.02.16.cr74084 y 2026.04.07.mr77639.1).
| Señal | Hipótesis | Hallazgo |
|---|---|---|
seconds_to_first_nonempty_slot |
Debería contar regresivamente por slot de satélite y reiniciarse en la transferencia | Siempre lee 0 en hardware de consumidor probado; el campo no está poblado |
Discontinuidades en pop_ping_latency_ms |
La latencia debería saltar cuando la distancia oblicua cambia durante una transferencia | La latencia permanece suave a través de las transferencias; SpaceX probablemente usa conmutación make-before-break que absorbe los cambios de ruta |
did_switch del historial de interrupciones |
Indicador de cambio confirmado en registros de interrupciones | Solo se activa durante interrupciones del servicio, no en transferencias limpias rutinarias de ~15 segundos |
| Discontinuidades de boresight | El reposicionamiento físico de la antena podría acompañar las transferencias | El cuerpo de la antena apenas se mueve; el apuntamiento electrónico del haz maneja el seguimiento de satélites silenciosamente |
| SNR del mapa de obstrucciones (sin reinicio) | Los cambios de SNR por celda deberían rastrear el movimiento del satélite a través del campo de visión | Sin reiniciar el mapa, devuelve una máscara estática acumulativa de cielo despejado en una antena sin obstrucciones; todas las celdas visibles leen ~1,0 sin variación entre consultas consecutivas. Los datos acumulados están completamente saturados, por lo que la diferenciación entre fotogramas no muestra ningún cambio. |
| SNR del mapa de obstrucciones (con reinicio) | Después de llamar a dish_clear_obstruction_map, el mapa debería reconstruirse desde vacío y revelar la posición del satélite servidor a medida que pinta nuevos píxeles cada segundo |
Funcionamiento confirmado. Después de reiniciar en los límites de transferencia, la consulta a 1 Hz produce trayectorias limpias de satélite de un solo píxel. Vea Obstruction Map and Satellite Tracking. |
Obstruction Map and Satellite Tracking
Antecedentes
El estudio SatInView de Ahangarpour, Zhao y Pan (ACM MobiCom '24 LEO-NET Workshop) demostró que el satélite servidor puede identificarse reiniciando el mapa de obstrucciones de la antena en los límites de transferencia de 15 segundos, consultándolo a 1 Hz y aplicando XOR a fotogramas adyacentes para extraer la trayectoria del satélite mientras se mueve por el campo de visión. La trayectoria observada se coteja entonces con las posiciones de satélite propagadas por TLE para lograr una identificación casi inequívoca.
Durante el desarrollo inicial del Starlink Viewer, probamos el mapa de obstrucciones sin realizar un reinicio. En una antena sin obstrucciones, el mapa parecía estático: una máscara de cielo despejado totalmente saturada sin variación entre fotogramas. Concluimos que los datos no contenían información de señal de satélite en tiempo real. Esa conclusión era correcta para el mapa sin reiniciar, pero incompleta: el mapa parecía estático porque cada píxel que el satélite actual podía pintar ya estaba iluminado por pasadas previas de satélites. Sin borrar primero los datos acumulados, no había nada nuevo que el XOR pudiera detectar.
Hallazgos actualizados
Tras correspondencia con el equipo de investigación de SatInView, probamos el enfoque completo basado en reinicio en hardware rev3_proto2 con firmware 2026.04.07.mr77639.1 (abril de 2026). Los resultados confirman que la técnica funciona en el hardware y firmware actuales:
dish_clear_obstruction_mapestá disponible y funcional. Su llamada borra los datos SNR acumulados (377 píxeles activos reducidos a 1 en las pruebas).- Tras un reinicio, el mapa se reconstruye a aproximadamente un píxel nuevo por segundo a medida que el satélite servidor se mueve por el campo de visión.
- Aplicar XOR a fotogramas adyacentes a 1 Hz produce puntos de trayectoria limpios de un solo píxel con dispersión casi nula.
- La temporización de transferencia de 15 segundos (segundos 12, 27, 42 y 57 de cada minuto, sincronizados globalmente) se confirmó en nuestro hardware. Los intervalos consecutivos rastrearon el mismo satélite de forma continua, con un salto claro de trayectoria cuando ocurría una transferencia real.
- El mapa reporta
FRAME_EARTHen antenas activas estacionarias, lo que significa que la cuadrícula está orientada con el píxel central superior correspondiendo al norte verdadero. Las antenas móviles o inactivas pueden reportarFRAME_UT, donde el píxel central inferior corresponde a la dirección de boresight.
Compromiso: por qué Nexus Telemetry no reinicia el mapa por defecto
La llamada dish_clear_obstruction_map es destructiva: borra el perfil de obstrucciones acumulado por la antena. Para usuarios con instalaciones obstruidas (árboles, edificios u otras estructuras), estos datos son valiosos para diagnosticar problemas de señal y se construyen en el tiempo a lo largo de muchas pasadas de satélites. Reiniciarlo cada 15 segundos impide que la antena acumule cualquier dato de obstrucción, y la aplicación móvil de Starlink mostrará un mapa vacío o parcial.
Nexus Telemetry utiliza actualmente la inferencia geométrica (dirección de boresight + correspondencia TLE) como su método predeterminado de identificación de satélite. Este enfoque no es destructivo: no llama a ningún endpoint de escritura en la antena y no tiene efectos secundarios sobre los datos de obstrucción del usuario.
Estamos utilizando el enfoque basado en trayectoria como herramienta de calibración para validar y mejorar la precisión de nuestra inferencia geométrica. También estamos evaluando si ofrecer el seguimiento de trayectoria como un modo opcional para usuarios avanzados e investigadores, con divulgación clara sobre el compromiso del reinicio del mapa.
Qué podría cambiar esto
Futuras actualizaciones de firmware o revisiones de hardware podrían exponer telemetría adicional que mejoraría la precisión de la inferencia:
seconds_to_first_nonempty_slotfuncional: si este campo se puebla en firmware o hardware más nuevo, proporcionaría una señal de temporizado confiable por transferencia.- Ángulos de apuntamiento electrónico del haz: cualquier exposición de la dirección real del haz de la matriz en fase permitiría la identificación directa del satélite.
- Autenticación relajada en
dish_get_context: si SpaceX reactivara el campoinitial_satellite_id, el problema se resolvería por completo. - Datos de señal en tiempo real no destructivos: si un firmware futuro expone información de señal por satélite a través de un endpoint separado o una variante no destructiva del mapa de obstrucciones, el enfoque de correspondencia de trayectorias podría usarse sin reiniciar los datos de obstrucción del usuario.
- Nuevas generaciones de hardware: SpaceX está desplegando satélites V3 y nuevo hardware de antena. Diferentes revisiones de firmware o hardware pueden poblar campos actualmente inactivos o exponer nueva telemetría.
Trabajo previo
Nexus Telemetry utiliza inferencia geométrica (dirección de boresight + posiciones de satélites propagadas por TLE) para estimar qué satélite está sirviendo a la antena. Se trata de un enfoque heurístico: efectivo y no destructivo, pero limitado en precisión.
Para una identificación de mayor precisión, la técnica SatInView desarrollada por Ahangarpour, Zhao y Pan en la University of Victoria (ACM MobiCom 2024, LEO-NET Workshop) logra una identificación de satélite casi inequívoca al correlacionar las trayectorias del mapa de obstrucciones con datos TLE. Su enfoque requiere reiniciar el mapa de obstrucciones en los límites de transferencia, lo cual hemos confirmado que funciona en el hardware y firmware actuales (vea Obstruction Map and Satellite Tracking). Su implementación está disponible en github.com/aliahan/SatInView.
Estamos utilizando su técnica basada en trayectoria como referencia para calibrar y mejorar la precisión de la inferencia geométrica usada en el Starlink Viewer.
El globo
Bandas orbitales
Los satélites se agrupan por inclinación orbital, leída de los elementos orbitales de cada satélite. Cada banda contiene todas las capas de Starlink cercanas a su inclinación.
| Banda | Capas de Starlink en el expediente de la FCC |
|---|---|
| 97° | Primera generación: 560 km, 97,6°. Segunda generación: 360 km, 96,9° |
| 70° | Primera generación: 570 km, 70° |
| 53° | Primera generación: 550 km, 53° y 540 km, 53,2°. Segunda generación: 525, 480 y 340 km, 53° |
| 48° | Segunda generación: 345 km, 48° |
| 43° | Segunda generación: 530, 485 y 355 km, 43° |
| 38° | Segunda generación: 350 km, 38° |
| 30° | Segunda generación: 365 y 475 km, 28° o 32°, y 535 km, 33° |
Las capas de primera generación de Starlink están numeradas en la orden de la FCC de 2021 (FCC 21-48). Sus capas de segunda generación no están numeradas (FCC 22-91, DA 26-36), por lo que cada banda recibe el nombre de su inclinación. El botón de cada banda muestra su número de satélites catalogados y activa y desactiva la banda. Una banda sin satélites catalogados se oculta.
Nuevos lanzamientos
Nuevos lanzamientos muestra los satélites que aún no figuran en el catálogo público, etiquetados como [NEW]. Sus posiciones proceden de las efemérides propias de SpaceX en los datos suplementarios de CelesTrak. Un satélite nuevo lleva un número de catálogo temporal de 799.500.000 o superior, no se cuenta en ninguna banda y se incorpora a su banda cuando se cataloga.
Seguimiento de un lanzamiento
Al seleccionar Nuevos lanzamientos, la vista se desplaza al lanzamiento más reciente que aún tiene números de catálogo temporales y sigue su tren. La leyenda muestra la designación del lanzamiento, el número de satélites, su inclinación media y su altitud actual. Siguiente lanzamiento pasa al siguiente tren cuando hay más de un lanzamiento nuevo. Durante el seguimiento, el desplazamiento aplica zoom y la rotación queda bloqueada. Dejar de seguir, Esc o Centrar en la antena finaliza el seguimiento. Si no hay ningún lanzamiento nuevo en los datos, la leyenda indica No hay lanzamientos nuevos en los datos actuales.
Modo difuminado
Modo difuminado oculta la antena en el globo: su marcador, su etiqueta y la línea del haz. Las coordenadas de la antena en el panel se difuminan.
Datos orbitales
Las posiciones de los satélites provienen del endpoint GP suplementario de CelesTrak, que proporciona efemérides contribuidas por SpaceX fusionadas con datos de catálogo estándar del 18th Space Defence Squadron. Los datos se almacenan en caché localmente por el backend de Rust y se actualizan cada 6 horas, con un respaldo de caché obsoleto de 48 horas si CelesTrak no está accesible. La barra de estado muestra el recuento de satélites, el número de lanzamientos nuevos y la antigüedad de los datos.
Ubicación de la antena
El visor utiliza coordenadas GPS del endpoint get_location de la antena cuando están disponibles. Si los datos GPS no son accesibles, puede ingresar manualmente su latitud y longitud en el panel de configuración.