AstroTimeSync

Avatar de Usuario
Verio
Mensajes: 2105
Registrado: 01 Nov 2006, 00:00
Ubicación: Madrid

AstroTimeSync

Mensajepor Verio » 08 Dic 2012, 21:12

Hola,

tengo desde hace un par de años un programilla que hice para sincronizar la hora del ordenador
con servidores de tiempo en Internet. El motivo de hacerlo vino de pruebas que hice con otros programas y que no me dejaron contento. Al conectarse con los servidores habitualmente daban una buena hora, pero de vez en cuando les daba una neura y daban errores de más de 50ms.

Mi programa (AstroTimeSync) se conecta simultáneamente con varios servidores, toma la hora de cada uno de ellos y saca la media. Para evitar que los servidores que han dado una hora mala estropeen la medición hago un sigma-clipping para excluir las mediciones muy diferentes a las demás. Con esta técnica consigo precisiones mejores que una centésima de segundo.

Creo que puede ser de utilidad para más gente, por lo que he decido publicarlo. Como no gano nada con ella, doy la aplicación tal cual. No me comprometo ni a dar soporte, ni corregir fallos, ni siquiera a que funcione bien 8).

Imagen

Es una aplicación para Windows y requiere tener instalado .Net 2.0 y una conexión a Internet. La instalación consiste en simplemente descomprimir el .zip en una carpeta.

El archivo servers.txt contiene los servidores NTP a los que se conecta. Se puede modificar este archivo para añadir o quitar servidores. En cualquier caso no conviene sobrepasar los 15 servidores. Para cada servidor se hacen tres peticiones.

La aplicación es muy sencilla. Basta con pulsar el botón Start para que se inicie el proceso de mediciones. El valor de la frecuencia determina el número de segundos entre mediciones.
Si se pulsa el botón "Sync Now" realiza inmediatamente una medición independientemente de la frecuencia de mediciones. Si se desactiva "Set Clock" el programa calcula el error del reloj pero no lo corrige.

Importante: Para poder cambiar la hora del ordenador requiere ejecutarse con permisos de administrador. Si no se desea ejecutar la aplicación en modo de Administrador, se puede borrar el archivo "AstroTimeSync.exe.manifest". En este caso se realizarán las mediciones y calculará la corrección, pero no cambiará la hora del ordenador.

El archivo de configuración AstroTimeSync.exe.config permite configurar varias opciones:
  • AutoStart: Si vale True la aplicación inicia las mediciones automáticamente al arrancar la aplicación sin necesidad de pulsar Start.
  • Frequency: Valor por defecto para la frecuencia de mediciones.
  • SetClock: Valor por defecto para "Set clock".

La aplicación dispone de un modo oculto consiste en que cuando se minimiza la aplicación desaparece de la barra de tareas. Para poderla recuperar la aplicación pone un icono en el área de notificaciones de la barra de tareas (junto al reloj). Haciendo un dobleclick sobre el icono se restaura la aplicación. Además he añadido un parámetro "Minimized" en el archivo de configuración que cuando vale "True" hace que la aplicación arranque minimizada.

El parámetro de agresividad configura si el error del reloj se corrige totalmente (valor 10) o si se reduce la corrección. Dado que la medida del error del reloj tiene sus propios errores conviene aplicar correcciones un poco menores para evitar oscilaciones en el reloj. Si el reloj oscila mucho hay que bajar el valor de la agresividad. Por el contrario, si las correcciones no llegan a corregir la deriva del reloj hay que aumentar la agresividad.

Esta versión calcula la deriva del reloj del sistema y aplica una corrección directamente sobre el reloj. Esto hace que el reloj se desvíe mucho menos entre medidas y la hora se mantenga más constante. La velocidad de la deriva se muestra en milisegundos por minuto (ms/min). Para calcular la deriva se necesitan como mínimo 9 medidas que abarquen 4 minutos. Para conseguirlas rápidamente la aplicación aumenta automáticamente la frecuencia de medidas hasta que se cumple la condición.

Con la corrección de deriva el funcionamiento es tan bueno que realmente no merece la pena bajar la frecuencia por debajo de los 60s. He hecho pruebas con un ordenador que tiene un reloj bastante malo con una deriva de más de 7 milisegundos por minuto. El RMS que obtengo con esta versión es de unos 2.5ms con una frecuencia de 60s. Con la versión anterior el RMS rondaba los 8ms. En ordenadores con mejores relojes el RMS puede estar por debajo de los 2ms.

La aplicación se puede obtener en este enlace:
Última versión: https://dl.dropboxusercontent.com/.../AstroTimeSync.zip
Última edición por Verio el 06 Jul 2015, 16:14, editado 5 veces en total.
LX200R 8" / MiniBorg 50
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/

Avatar de Usuario
EMM
Mensajes: 887
Registrado: 07 Abr 2010, 22:44
Ubicación: Rivas Vaciamadrid

Re: AstroTimeSync

Mensajepor EMM » 08 Dic 2012, 21:22

Hola:

Muy bueno.

Solo una cosa que no debe olvidarse y es que hay que desactivar la sincronización automática de windows ya que en caso contrario nos volverá a poner la hora del servidor por defecto.

Para hacer esto hay que pulsar con el botón derecho en el reloj de la barra y pulsar "Ajustar Fecha y Hora", luego en la ventana de ajuste ir a la pestaña "Hora de Internet" y desmarcar la opción "Sincronizar automáticamente con un servidor de Internet" y pulsar el botón "Aplicar"

Un Saludo
Eduardo

Avatar de Usuario
vakaloura
Mensajes: 712
Registrado: 18 Dic 2008, 00:00
Ubicación: Madrid

Re: AstroTimeSync

Mensajepor vakaloura » 08 Dic 2012, 21:25

Buen trabajo y muchas gracias por compartirlo!!! :mrgreen:

Avatar de Usuario
Verio
Mensajes: 2105
Registrado: 01 Nov 2006, 00:00
Ubicación: Madrid

Re: AstroTimeSync

Mensajepor Verio » 15 Dic 2012, 21:03

He editado el primer mensaje del hilo para publicar una nueva versión de la aplicación. Lleva los siguientes cambios:
  • He corregido varios problemas que hacían caerse la aplicación.
  • He mejorado el comportamiento cuando hay problemas de conexión con los servidores o estos dan valores poco precisos.
  • La aplicación inicia las mediciones automáticamente al arrancar la aplicación.
  • He añadido un archivo de configuración (ver su descripción en el primer mensaje del hilo).
LX200R 8" / MiniBorg 50
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/

Avatar de Usuario
Verio
Mensajes: 2105
Registrado: 01 Nov 2006, 00:00
Ubicación: Madrid

Re: AstroTimeSync

Mensajepor Verio » 16 Dic 2012, 20:30

Acabo de publicar una nueva versión. He modificado la aplicación para mostrar más mensajes de error en el cuadro de log, he metido más parámetros de configuración y he relajado los controles de precisión. Se puede descargar del primer mensaje del hilo.
LX200R 8" / MiniBorg 50
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/

Avatar de Usuario
Regolito
Mensajes: 265
Registrado: 02 Oct 2007, 23:00
Ubicación: Galapagar (Madrid)
Contactar:

Re: AstroTimeSync

Mensajepor Regolito » 16 Dic 2012, 21:06

Que bien me puede venir, yo uso uno que actualizo varias veces a lo largo de la noche, promedio el de Internet con uno vía radio, pero cuando no hay mucha cobertura este ultimo no actualiza bien, unos pocos segundos de error en las astrometrias pueden arruinarte las medidas.
Gracias

Avatar de Usuario
tharsis
Mensajes: 1266
Registrado: 04 Ene 2005, 00:00
Ubicación: Almería(Valle del Almanzora)

Re: AstroTimeSync

Mensajepor tharsis » 16 Dic 2012, 21:27

Tengo que probarlo.
También vi en otro hilo que habías hecho otra aplicación para comprobar la colimación en SC...está ya preparado para compartirlo?me gustaría tenerlo a mano.
Gracias.
Equipo, Flickr y Blog:
ImagenImagen
Mak 127
HEQ5
Nexi 5

Avatar de Usuario
Verio
Mensajes: 2105
Registrado: 01 Nov 2006, 00:00
Ubicación: Madrid

Re: AstroTimeSync

Mensajepor Verio » 16 Dic 2012, 22:16

tharsis escribió:Tengo que probarlo.
También vi en otro hilo que habías hecho otra aplicación para comprobar la colimación en SC...está ya preparado para compartirlo?me gustaría tenerlo a mano.
Gracias.

A corto o medio plazo no tengo intención de publicar ese otro programa. Lo he hecho solo para mi propio uso y no está preparado para la distribución. Solo está probado con mi cámara, por lo que asegurarse de que funciona bien con otras sería un trabajo bastante grande. Además es un programa complejo (y grande) que necesitaría un esfuerzo tremendo de pulido y documentación para que lo pudieran utilizar otras personas.
LX200R 8" / MiniBorg 50
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/

Avatar de Usuario
tharsis
Mensajes: 1266
Registrado: 04 Ene 2005, 00:00
Ubicación: Almería(Valle del Almanzora)

Re: AstroTimeSync

Mensajepor tharsis » 16 Dic 2012, 22:39

Gracias de todos modos.
Equipo, Flickr y Blog:
ImagenImagen
Mak 127
HEQ5
Nexi 5

Avatar de Usuario
Verio
Mensajes: 2105
Registrado: 01 Nov 2006, 00:00
Ubicación: Madrid

Re: AstroTimeSync

Mensajepor Verio » 22 Dic 2012, 14:12

Hola,

tengo una última versión del programa antes de Navidad. Tiene tres novedades principales: Puede funcionar en "modo oculto", se puede cambiar la agresividad de las correcciones y aplica una corrección continua de la deriva del reloj del sistema. Está publicada en el primer mensaje del hilo.

El modo oculto consiste en que cuando se minimiza la aplicación desaparece de la barra de tareas. Para poderla recuperar la aplicación pone un icono en el área de notificaciones de la barra de tareas (junto al reloj). Haciendo un dobleclick sobre el icono se restaura la aplicación. Además he añadido un parámetro "Minimized" en el archivo de configuración que cuando vale "True" hace que la aplicación arranque minimizada.

El parámetro de agresividad configura si el error del reloj se corrige totalmente (valor 10) o si se reduce la corrección. Dado que la medida del error del reloj tiene sus propios errores conviene aplicar correcciones un poco menores para evitar oscilaciones en el reloj. Si el reloj oscila mucho hay que bajar el valor de la agresividad. Por el contrario, si las correcciones no llegan a corregir la deriva del reloj hay que aumentar la agresividad.

Esta versión calcula la deriva del reloj del sistema y aplica una corrección directamente sobre el reloj. Esto hace que el reloj se desvíe mucho menos entre medidas y la hora se mantenga más constante. La velocidad de la deriva se muestra en milisegundos por minuto (ms/min). Para calcular la deriva se necesitan como mínimo 9 medidas que abarquen 4 minutos. Para conseguirlas rápidamente la aplicación aumenta automáticamente la frecuencia de medidas hasta que se cumple la condición.

Con la corrección de deriva el funcionamiento es tan bueno que realmente no merece la pena bajar la frecuencia por debajo de los 60s. He hecho pruebas con un ordenador que tiene un reloj bastante malo con una deriva de más de 7 milisegundos por minuto. El RMS que obtengo con esta versión es de unos 2.5ms con una frecuencia de 60s. Con la versión anterior el RMS rondaba los 8ms. En ordenadores con mejores relojes el RMS puede estar por debajo de los 2ms.

Varias consideraciones adicionales:
  • En esta versión para cada servidor se hacen tres peticiones en vez de una. Esto multiplica por 3 las medidas disponibles para el sigma-clipping y mejora considerablemente el error de las mediciones.
  • La precisión de las medidas sigue dependiendo del estado de los servidores, la red y el propio ordenador. Sigue siendo posible que aparezcan pequeños picos de error.
  • Estoy utilizando la función SetSystemTime de Windows. Esta función no permite una precisión mejor que 1ms. Por tanto este es el límite de la precisión del programa.

Imagen
LX200R 8" / MiniBorg 50
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/

Volver a “Técnicas de Astrofotografía”