AstroTimeSync
- Verio
- Mensajes: 2106
- Registrado: 01 Nov 2006, 00:00
- Ubicación: Madrid
AstroTimeSync
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
.

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:
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
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

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".
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/
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/
-
EMM
- Mensajes: 887
- Registrado: 07 Abr 2010, 22:44
- Ubicación: Rivas Vaciamadrid
Re: AstroTimeSync
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
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
-
vakaloura
- Mensajes: 712
- Registrado: 18 Dic 2008, 00:00
- Ubicación: Madrid
Re: AstroTimeSync
Buen trabajo y muchas gracias por compartirlo!!! 
- Verio
- Mensajes: 2106
- Registrado: 01 Nov 2006, 00:00
- Ubicación: Madrid
Re: AstroTimeSync
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/
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/
- Verio
- Mensajes: 2106
- Registrado: 01 Nov 2006, 00:00
- Ubicación: Madrid
Re: AstroTimeSync
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/
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/
- Regolito
- Mensajes: 265
- Registrado: 02 Oct 2007, 23:00
- Ubicación: Galapagar (Madrid)
- Contactar:
Re: AstroTimeSync
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
Gracias
- tharsis
- Mensajes: 1268
- Registrado: 04 Ene 2005, 00:00
- Ubicación: Almería(Valle del Almanzora)
Re: AstroTimeSync
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.
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.
- Verio
- Mensajes: 2106
- Registrado: 01 Nov 2006, 00:00
- Ubicación: Madrid
Re: AstroTimeSync
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.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.
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/
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/
- tharsis
- Mensajes: 1268
- Registrado: 04 Ene 2005, 00:00
- Ubicación: Almería(Valle del Almanzora)
- Verio
- Mensajes: 2106
- Registrado: 01 Nov 2006, 00:00
- Ubicación: Madrid
Re: AstroTimeSync
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:
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.

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/
QSI540wsg / QHY5 / Lodestar / SVX-AO
Meade 26mm s.5000 / Baader 8-24 / ES-14mm / ES-20mm
http://www.astrobin.com/users/Verio/



