El manual del altímetro Nano V1
Este manual detalla todas las características y operación de nuestro pequeño altímetro de cohete Nano V1

El formato del registro de vuelo

PDF

Cada vuelo se guarda en la unidad del Nano como un registro de vuelo llamado flightlog<tag>-<n>.aclz, acompañado de una página flightinfo<tag>-<n>.html que resume el vuelo. La etiqueta son los cuatro últimos caracteres del número de serie del Nano y n es el número de vuelo.

Por defecto, el registro es un archivo ACLZ, el formato comprimido propio del Nano. Si pone log_format en 0 en los ajustes, será un archivo CSV. Esta página describe ambos y las columnas de cada uno.

Consejo
La forma más sencilla de ver un vuelo es subirlo a Altimeter Cloud, que lo presenta en gráficos y cifras claros. Esta página es para quien quiera trabajar directamente con los datos brutos. Consulte la página Altimeter Cloud.

Por qué ACLZ es el formato predeterminado

ACLZ registra exactamente el mismo vuelo que un CSV, con la misma precisión, en aproximadamente una quinceava parte del espacio, y le recomendamos dejarlo como predeterminado.

  • Vuelos más largos. Hasta 38 000 muestras en un registro, frente a 22 000 en un CSV (20 000 con include_pressure). A 417 Hz es la diferencia entre captar un descenso largo completo y quedarse sin registro.
  • Más vuelos en la unidad. Un vuelo típico ocupa unas decenas de kilobytes en ACLZ, así que la unidad admite los 39 vuelos que guarda el Nano. En CSV, unos diez vuelos típicos llenan la unidad, y un registro CSV completo ocupa por sí solo la mayor parte.
  • Más datos. Cada registro ACLZ conserva además la altitud bruta, exactamente como la midió el barómetro antes de cualquier procesamiento, y la presión. Así siempre puede ver qué hicieron TrueFuse y TruePath, y Altimeter Cloud puede representar la curva bruta junto a la procesada.
  • La compresión no pierde nada. El CSV que descarga de Altimeter Cloud es exactamente el CSV que habría escrito el Nano, dígito a dígito.
  • Doble firma. El Nano firma el propio archivo y el CSV que genera, así que un CSV descargado de Altimeter Cloud sigue pudiendo verificarse por sí solo.
  • Más rápido de manejar. Los archivos pequeños se copian y se suben más rápido, lo que se nota sobre todo al subir directamente desde el Nano por USB.

Un archivo ACLZ no se puede abrir en una hoja de cálculo. Súbalo a Altimeter Cloud (gratis, sin necesidad de cuenta) para ver los gráficos y descargar un CSV, o abra la página de información del vuelo que lo acompaña para echar un vistazo rápido directamente en la unidad. Elija CSV solo si necesita abrir los registros directamente en una hoja de cálculo y sus vuelos son lo bastante cortos.

ACLZ (predeterminado)CSV
Muestras por vueloHasta 38 000Hasta 22 000 (20 000 con include_pressure)
Tamaño de un vuelo típicoUnas decenas de KBUnos cientos de KB
Columna de altitud brutaSíNo
Columna de presiónSíSiempre en Rev 1 a 3; en Rev 4 y posteriores solo con include_pressure
Se abre en una hoja de cálculoNo: súbalo y luego descargue un CSVSí
FirmaEd25519, sobre el archivo y sobre el CSV que generaEd25519, sobre el archivo

Cómo funciona ACLZ por dentro, y cómo leerlo con su propio software, se explica en el manual de software, con un convertidor de referencia.

Estructura de un registro CSV

Un CSV, tanto si lo escribe el Nano como si se descarga de Altimeter Cloud, tiene tres partes en este orden: un bloque de filas de cabecera con un resumen del vuelo y los ajustes con los que se grabó, una sola fila vacía, y luego una fila de nombres de columna que empieza por Time(ms), seguida de una fila por cada muestra grabada.

Si escribe un analizador, busque la fila que empieza por Time(ms) en lugar de contar filas, y trate todo lo que sigue como datos. La cabecera se organiza en pares de etiqueta y valor uno junto a otro, para que se lea con claridad en una hoja de cálculo: un par a la izquierda, un par en el centro y, en la revisión 4 y posteriores, otro par a la derecha con los datos de movimiento.

La cabecera

La cabecera contiene todo lo necesario para entender el vuelo sin leer una sola fila de datos.

  • Resumen del vuelo. El apogeo y su instante, la altura y el instante de aterrizaje, la velocidad ascendente máxima, la velocidad de aterrizaje y la media de muestras por segundo.
  • Identificación. El nombre del dispositivo, los tres números de competidor y el número de serie.
  • Condiciones y ajustes. La temperatura de la placa y la tensión de la batería al inicio y al final del vuelo, la versión del firmware, la revisión de la placa y cada ajuste con el que se voló, como la frecuencia de muestreo, el modo híbrido, la orientación, la protección de despegue, la relación de muestreo y el fin de la grabación.
  • Procesamiento. Qué versiones de TrueFuse y TruePath procesaron el vuelo y si se aplicó TrueFuse, cómo se confirmó el despegue y cómo se fijó el instante del despegue.
  • Revisión 4 y posteriores. El ángulo de la guía, el eje dominante, los desplazamientos y la calidad de calibración, el desfase de sincronización de sensores y cualquier saturación. La parte derecha añade estadísticas de movimiento: instantes de fin de combustión y de eyección, velocidades al fin de combustión y en el descenso, aceleraciones máximas y medias durante el ascenso, la combustión y el descenso, y el cabeceo, alabeo, guiñada e inclinación en el despegue.
  • Los vuelos recuperados llevan una fila Recovered,1.
  • Adjusted log indica «no» en un vuelo original, y muestra si el registro se ha recalculado después en Altimeter Cloud con otra presión o temperatura.

El campo Verification hash contiene la firma digital Ed25519 del registro, que permite a cualquiera confirmar que el archivo no se ha alterado. Los registros de firmware anterior a 1.52 llevan aquí un hash HMAC-SHA256. Consulte Verificación de registros de vuelo.

La cadena de ajustes

Un único campo Settings string reúne en una línea la configuración usada en el vuelo. Las claves configurables corresponden a las opciones de la página Ajustes.

ClaveContenido
fpPresión a nivel del mar usada para calcular la altura (hPa), fijada en 1013,25
ftTemperatura usada (°C), fijada en 15
utSi se usó la temperatura del sensor, siempre 0
ssFrecuencia de muestreo (Hz)
srRelación de muestreo
msMuestras máximas
ldAltura de detección del despegue (m)
lpProtección de despegue (mG)
slBloqueo de inicio
rsFin de la grabación
mpComportamiento tras el aterrizaje
hmModo híbrido
orOrientación
seSincronización de sensores (Rev 4 y posteriores)
os, ii, kfAjustes internos de tratamiento de la presión (sobremuestreo y filtro)
rcpLa referencia de suelo tomada en el despegue
rmiInstante del despegue, en milisegundos
cgx, cgy, cgzDesplazamientos de calibración del giroscopio guardados (Rev 4 y posteriores)
cax, cay, cazDesplazamientos de calibración del acelerómetro guardados (Rev 4 y posteriores)
zbbIndicador de prueba interno, siempre 0 en un vuelo normal
sda, sdm, sdn, sdsReferencia de suelo al arrancar: media recortada y mediana de la altitud de las lecturas en la plataforma, cuántas se tomaron y su dispersión (cm)
sbf, sbtLa primera lectura del sensor de presión tras el encendido y su lectura al final de su calentamiento (hPa)
Importante
No edite un registro de vuelo si quiere que siga siendo válido. La firma cubre cada byte del archivo, así que cualquier cambio, aunque sea un solo número o un espacio añadido, hace que deje de coincidir, y Altimeter Cloud no lo aceptará. Si quiere trabajar con los datos, copie primero el archivo, edite la copia y guarde el original a salvo.

Las columnas de datos

Tras la fila vacía y los nombres de columna, cada fila es una muestra grabada, en este orden. Las columnas de movimiento (aceleración, giroscopio, cabeceo, alabeo, guiñada e inclinación) existen en las placas de revisión 4 y posteriores.

ColumnaUnidadFormatoQué es
Time(ms)ms2 decimalesTiempo desde el despegue, con el despegue como cero
Altitude(m)m3 decimalesAltura sobre la plataforma, tras TrueFuse y TruePath
Velocity(m/s)m/s2 decimalesVelocidad vertical, calculada a partir de la altitud procesada
acceleration_x(mG)mGNúmeros enterosAceleración a lo largo del eje X de la placa
acceleration_y(mG)mGNúmeros enterosAceleración a lo largo del eje Y
acceleration_z(mG)mGNúmeros enterosAceleración a lo largo del eje Z
acceleration_total(mG)mG1 decimalMódulo de la aceleración total sin el 1 g de la gravedad, así que en reposo queda cerca de cero
gyro_x°/sNúmeros enterosVelocidad de rotación alrededor del eje X
gyro_y°/sNúmeros enterosVelocidad de rotación alrededor del eje Y
gyro_z°/sNúmeros enterosVelocidad de rotación alrededor del eje Z
Board temp(C)°C2 decimalesTemperatura del sensor, en una de cada 50 filas y vacía en las filas intermedias
pitchgrados2 decimalesÁngulo de actitud, seguido por el giroscopio a partir de su cero en la plataforma
rollgrados2 decimalesÁngulo de actitud, seguido por el giroscopio a partir de su cero en la plataforma
yawgrados2 decimalesÁngulo de actitud, seguido por el giroscopio a partir de su cero en la plataforma
tiltgrados2 decimalesÁngulo respecto a la vertical
Pressure(hPa)hPa6 decimalesPresión del aire correspondiente a la altitud procesada, calculada con la atmósfera estándar. Siempre presente en un CSV procedente de un registro ACLZ; en un CSV escrito por el Nano, solo con include_pressure en 1
Raw altitude(m)m3 decimalesAltura sobre la plataforma exactamente como la midió el barómetro, antes de cualquier procesamiento. Solo en CSV procedentes de registros ACLZ
  • El tiempo se mide desde el despegue. El Nano conserva los segundos anteriores a la confirmación del despegue, así que las primeras filas tienen tiempos negativos: 5 segundos a frecuencia completa y otros 3 segundos antes a 50 Hz en un registro ACLZ o a 20 Hz en un CSV.
  • Los tiempos se escriben con dos decimales de milisegundo, a partir del propio reloj del sensor, así que las filas están espaciadas de forma uniforme incluso a 833 Hz.
  • Con el modo híbrido activado, el descenso se registra a una frecuencia menor, así que el espaciado entre filas cambia. Use siempre la columna de tiempo en lugar de contar filas.
  • Los ejes de aceleración y giroscopio son los propios de la placa, que se alinean con el cohete según la orientación.
  • Cada fila de datos termina con una coma final, así que un analizador estricto verá un campo vacío al final de cada fila.

Altitude y Raw altitude comparten el mismo cero, así que puede representar una frente a otra y ver exactamente qué cambió el procesamiento. Ambas coinciden durante la mayor parte del vuelo y solo se separan donde el despegue, una carga de eyección o un pico de presión alteraron el barómetro.

Nombres de columna

La fila de nombres de columna en cada caso, exactamente como aparece:

CSV procedente de un registro ACLZ (Rev 4 y posteriores)
Time(ms),Altitude(m),Velocity(m/s),acceleration_x(mG),acceleration_y(mG),acceleration_z(mG),acceleration_total(mG),gyro_x,gyro_y,gyro_z,Board temp(C),pitch,roll,yaw,tilt,Pressure(hPa),Raw altitude(m)

CSV escrito por el Nano (Rev 4 y posteriores; Pressure(hPa) solo con include_pressure 1)
Time(ms),Altitude(m),Velocity(m/s),acceleration_x(mG),acceleration_y(mG),acceleration_z(mG),acceleration_total(mG),gyro_x,gyro_y,gyro_z,Board temp(C),pitch,roll,yaw,tilt,Pressure(hPa)

CSV procedente de un registro ACLZ (Rev 1 a 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C),Raw altitude(m)

CSV escrito por el Nano (Rev 1 a 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C)

Los registros ACLZ de firmware antiguo, anteriores a la columna de altitud bruta, se descomprimen sin ella.

Placas de revisión 1 a 3

Las placas sin sensor de movimiento usan el mismo archivo con la misma forma, solo que más sencillo. Faltan las columnas de movimiento, y la cabecera no tiene estadísticas de movimiento en su parte derecha. La columna Pressure(hPa) va en tercer lugar, justo después de Altitude, en ambos formatos, y un CSV procedente de un registro ACLZ añade Raw altitude(m) al final. Todo lo demás de esta página se aplica igual.