Le manuel de l
Ce manuel détaille toutes les caractéristiques et le fonctionnement de notre minuscule altimètre de fusée Nano V1.

Le format du journal de vol

PDF

Chaque vol est sauvegardé sur le lecteur du Nano sous la forme d'un journal de vol nommé flightlog<tag>-<n>.aclz, accompagné d'une page flightinfo<tag>-<n>.html qui résume le vol. L'étiquette correspond aux quatre derniers caractères du numéro de série du Nano et n est le numéro de vol.

Par défaut, le journal est un fichier ACLZ, le format compressé propre au Nano. Si vous réglez log_format sur 0 dans les paramètres, c'est un fichier CSV. Cette page décrit les deux, ainsi que les colonnes de chacun.

Astuce
Le plus simple pour consulter un vol est de l'envoyer sur Altimeter Cloud, qui le présente sous forme de graphiques et de valeurs claires. Cette page s'adresse à ceux qui veulent travailler directement sur les données brutes. Voir la page Altimeter Cloud.

Pourquoi ACLZ est le format par défaut

ACLZ enregistre exactement le même vol qu'un CSV, avec la même précision, dans environ un quinzième de l'espace, et nous recommandons de le garder par défaut.

  • Des vols plus longs. Jusqu'à 38 000 échantillons dans un journal, contre 22 000 pour un CSV (20 000 avec include_pressure). À 417 Hz, c'est la différence entre capturer intégralement une longue descente et manquer de place.
  • Plus de vols sur le lecteur. Un vol typique pèse quelques dizaines de kilo-octets en ACLZ, de sorte que le lecteur contient les 39 vols que le Nano conserve. En CSV, une dizaine de vols typiques remplissent le lecteur, et un journal CSV complet en occupe à lui seul la majeure partie.
  • Plus de données. Chaque journal ACLZ conserve aussi l'altitude brute, exactement telle que mesurée par le baromètre avant tout traitement, ainsi que la pression. Vous voyez donc toujours ce qu'ont fait TrueFuse et TruePath, et Altimeter Cloud peut tracer la courbe brute à côté de la courbe traitée.
  • Rien n'est perdu à la compression. Le CSV téléchargé depuis Altimeter Cloud est exactement celui que le Nano aurait écrit, chiffre pour chiffre.
  • Signé deux fois. Le Nano signe le fichier lui-même et le CSV qu'il génère, de sorte qu'un CSV téléchargé depuis Altimeter Cloud peut toujours être vérifié seul.
  • Plus rapide à manipuler. Les petits fichiers se copient et s'envoient plus vite, ce qui se remarque surtout lors de l'envoi direct depuis le Nano en USB.

Un fichier ACLZ ne s'ouvre pas dans un tableur. Envoyez-le sur Altimeter Cloud (gratuit, sans compte) pour voir les graphiques et télécharger un CSV, ou ouvrez la page d'infos du vol qui l'accompagne pour un aperçu rapide directement sur le lecteur. Ne choisissez CSV que si vous devez ouvrir les journaux directement dans un tableur et que vos vols sont assez courts.

ACLZ (par défaut)CSV
Échantillons par volJusqu'à 38 000Jusqu'à 22 000 (20 000 avec include_pressure)
Taille d'un vol typiqueQuelques dizaines de KoQuelques centaines de Ko
Colonne d'altitude bruteOuiNon
Colonne de pressionOuiToujours sur Rev 1 à 3 ; sur Rev 4 et ultérieures seulement avec include_pressure
S'ouvre dans un tableurNon : envoyez-le, puis téléchargez un CSVOui
SignatureEd25519, sur le fichier et sur le CSV qu'il génèreEd25519, sur le fichier

Le fonctionnement interne d'ACLZ, et la façon de le lire avec votre propre logiciel, sont décrits dans le manuel logiciel, avec un convertisseur de référence.

Structure d'un journal CSV

Un CSV, qu'il soit écrit par le Nano ou téléchargé depuis Altimeter Cloud, comporte trois parties dans cet ordre : un bloc de lignes d'en-tête avec un résumé du vol et les paramètres d'enregistrement, une seule ligne vide, puis une ligne de noms de colonnes commençant par Time(ms), suivie d'une ligne par échantillon enregistré.

Si vous écrivez un analyseur, cherchez la ligne qui commence par Time(ms) plutôt que de compter les lignes, et traitez tout ce qui suit comme des données. L'en-tête est organisé en paires libellé et valeur côte à côte, pour une lecture claire dans un tableur : une paire à gauche, une paire au milieu et, à partir de la révision 4, une autre paire à droite avec les valeurs de mouvement.

L'en-tête

L'en-tête contient tout ce qu'il faut pour comprendre le vol sans lire une seule ligne de données.

  • Résumé du vol. L'apogée et son instant, la hauteur et l'instant d'atterrissage, la vitesse ascensionnelle maximale, la vitesse d'atterrissage et le nombre moyen d'échantillons par seconde.
  • Identification. Le nom de l'appareil, les trois numéros de concurrent et le numéro de série.
  • Conditions et paramètres. La température de la carte et la tension de la batterie au début et à la fin du vol, la version du firmware, la révision de la carte et chacun des paramètres du vol, comme la fréquence d'échantillonnage, le mode hybride, l'orientation, la protection au décollage, le rapport d'échantillonnage et l'arrêt de l'enregistrement.
  • Traitement. Les versions de TrueFuse et TruePath qui ont traité le vol et si TrueFuse a été appliqué, la façon dont le décollage a été confirmé et dont l'instant du décollage a été fixé.
  • Révision 4 et ultérieures. L'angle du rail, l'axe dominant, les décalages et la qualité d'étalonnage, le décalage de synchronisation des capteurs et une éventuelle saturation. La partie droite ajoute des statistiques de mouvement : instants de fin de combustion et d'éjection, vitesses en fin de combustion et en descente, accélérations maximales et moyennes pendant la montée, la combustion et la descente, ainsi que le tangage, le roulis, le lacet et l'inclinaison au décollage.
  • Les vols récupérés comportent une ligne Recovered,1.
  • Adjusted log indique « no » pour un vol d'origine, et signale si le journal a depuis été recalculé sur Altimeter Cloud avec une autre pression ou température.

Le champ Verification hash contient la signature numérique Ed25519 du journal, qui permet à chacun de confirmer que le fichier n'a pas été modifié. Les journaux des firmwares antérieurs à 1.52 contiennent ici un hachage HMAC-SHA256. Voir Vérification des journaux de vol.

La chaîne de paramètres

Un seul champ Settings string regroupe sur une ligne la configuration utilisée pour le vol. Les clés configurables correspondent aux options de la page Paramètres.

CléContenu
fpPression au niveau de la mer utilisée pour calculer la hauteur (hPa), fixée à 1013,25
ftTempérature utilisée (°C), fixée à 15
utUtilisation ou non de la température du capteur, toujours 0
ssFréquence d'échantillonnage (Hz)
srRapport d'échantillonnage
msÉchantillons maximum
ldHauteur de détection du décollage (m)
lpProtection au décollage (mG)
slVerrouillage au démarrage
rsArrêt de l'enregistrement
mpComportement après l'atterrissage
hmMode hybride
orOrientation
seSynchronisation des capteurs (Rev 4 et ultérieures)
os, ii, kfRéglages internes de traitement de la pression (suréchantillonnage et filtre)
rcpLa référence au sol relevée au décollage
rmiInstant du décollage, en millisecondes
cgx, cgy, cgzDécalages d'étalonnage du gyroscope enregistrés (Rev 4 et ultérieures)
cax, cay, cazDécalages d'étalonnage de l'accéléromètre enregistrés (Rev 4 et ultérieures)
zbbIndicateur de test interne, toujours 0 lors d'un vol normal
sda, sdm, sdn, sdsRéférence au sol au démarrage : moyenne tronquée et médiane de l'altitude des mesures sur la rampe, leur nombre et leur dispersion (cm)
sbf, sbtLa première mesure du capteur de pression après la mise sous tension et sa mesure à la fin de sa mise en température (hPa)
Important
Ne modifiez pas un journal de vol si vous voulez qu'il reste valide. La signature couvre chaque octet du fichier : la moindre modification, même un seul chiffre ou un espace ajouté, fait qu'elle ne correspond plus, et Altimeter Cloud ne l'acceptera pas. Si vous voulez travailler sur les données, copiez d'abord le fichier, modifiez la copie et gardez l'original en lieu sûr.

Les colonnes de données

Après la ligne vide et les noms de colonnes, chaque ligne est un échantillon enregistré, dans cet ordre. Les colonnes de mouvement (accélération, gyroscope, tangage, roulis, lacet et inclinaison) existent sur les cartes de révision 4 et ultérieures.

ColonneUnitéFormatDescription
Time(ms)ms2 décimalesTemps depuis le décollage, le décollage valant zéro
Altitude(m)m3 décimalesHauteur au-dessus de la rampe, après TrueFuse et TruePath
Velocity(m/s)m/s2 décimalesVitesse verticale, calculée à partir de l'altitude traitée
acceleration_x(mG)mGNombres entiersAccélération selon l'axe X de la carte
acceleration_y(mG)mGNombres entiersAccélération selon l'axe Y
acceleration_z(mG)mGNombres entiersAccélération selon l'axe Z
acceleration_total(mG)mG1 décimaleModule de l'accélération totale, gravité de 1 g retirée, donc proche de zéro au repos
gyro_x°/sNombres entiersVitesse de rotation autour de l'axe X
gyro_y°/sNombres entiersVitesse de rotation autour de l'axe Y
gyro_z°/sNombres entiersVitesse de rotation autour de l'axe Z
Board temp(C)°C2 décimalesTempérature du capteur, une ligne sur 50 et vide sur les lignes intermédiaires
pitchdegrés2 décimalesAngle d'attitude, suivi par le gyroscope à partir de son zéro sur la rampe
rolldegrés2 décimalesAngle d'attitude, suivi par le gyroscope à partir de son zéro sur la rampe
yawdegrés2 décimalesAngle d'attitude, suivi par le gyroscope à partir de son zéro sur la rampe
tiltdegrés2 décimalesAngle par rapport à la verticale
Pressure(hPa)hPa6 décimalesPression de l'air correspondant à l'altitude traitée, calculée avec l'atmosphère standard. Toujours présente dans un CSV issu d'un journal ACLZ ; dans un CSV écrit par le Nano, seulement avec include_pressure réglé sur 1
Raw altitude(m)m3 décimalesHauteur au-dessus de la rampe exactement telle que mesurée par le baromètre, avant tout traitement. Uniquement dans les CSV issus de journaux ACLZ
  • Le temps est mesuré depuis le décollage. Le Nano conserve les secondes précédant la confirmation du décollage, donc les premières lignes ont des temps négatifs : 5 secondes à pleine fréquence, et 3 secondes de plus avant cela à 50 Hz dans un journal ACLZ ou 20 Hz dans un CSV.
  • Les temps sont écrits au centième de milliseconde, à partir de l'horloge propre du capteur, de sorte que les lignes sont régulièrement espacées même à 833 Hz.
  • Avec le mode hybride activé, la descente est enregistrée à une fréquence plus basse, l'espacement des lignes change donc. Utilisez toujours la colonne de temps plutôt que de compter les lignes.
  • Les axes d'accélération et de gyroscope sont ceux de la carte, alignés sur la fusée selon l'orientation.
  • Chaque ligne de données se termine par une virgule, de sorte qu'un analyseur strict verra un champ vide à la fin de chaque ligne.

Altitude et Raw altitude partagent le même zéro : vous pouvez tracer l'une contre l'autre et voir exactement ce que le traitement a modifié. Les deux se superposent sur la majeure partie du vol et ne divergent que là où le décollage, une charge d'éjection ou un pic de pression a perturbé le baromètre.

Noms de colonnes

La ligne des noms de colonnes dans chaque cas, exactement telle qu'elle apparaît :

CSV issu d'un journal ACLZ (Rev 4 et ultérieures)
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 écrit par le Nano (Rev 4 et ultérieures ; Pressure(hPa) seulement avec 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 issu d'un journal ACLZ (Rev 1 à 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C),Raw altitude(m)

CSV écrit par le Nano (Rev 1 à 3)
Time(ms),Altitude(m),Pressure(hPa),Velocity(m/s),Board temp(C)

Les journaux ACLZ des anciens firmwares, antérieurs à l'ajout de la colonne d'altitude brute, se décompressent sans elle.

Cartes de révision 1 à 3

Les cartes sans capteur de mouvement utilisent le même fichier sous la même forme, en plus simple. Les colonnes de mouvement sont absentes, et l'en-tête n'a pas de statistiques de mouvement dans sa partie droite. La colonne Pressure(hPa) est en troisième position, juste après Altitude, dans les deux formats, et un CSV issu d'un journal ACLZ ajoute Raw altitude(m) à la fin. Tout le reste de cette page s'applique de la même façon.