Ou comment l'association GEBULL, petit GUL de province, a contribué à une étude scientifique.
À la fin du mois de novembre 2021, une balise de suivi d’oiseau nous a été confiée par le Groupe Ornithologique des Deux-Sèvres. Muette depuis 4 ans sur le dos d’une outarde canepetière, perdue pour la science mais recapturée dernièrement, nous avions pour consigne d’en extraire coûte que coûte les dernières données relevées.
Vue de la balise (presque) à son arrivée (on ne devrait juste pas voir la batterie dépasser).
Marquages lisibles :
Bird Tracking
Finders reward 25 EURO !!
Bts_v1.6_rev1.1 Nov. 2008
Les outardes sont des oiseaux migrateurs et protégés (symboles de la lutte contre l’accaparement de l'eau par les exploitants de mégabassines agricoles dans les Deux-Sèvres). Ils passent l’hiver dans le sud de l’Espagne ou du Portugal et sont suivis en France entre autre par le CNRS, et dans les Deux-Sèvres par le GODS, depuis plus de dix ans. Notre petite boîte à trésor avait donc beaucoup voyagé.
Au premier abord, la chose ne semblait pas aisée : il s’agit d’un dispositif extrêmement léger, valant (neuf) plusieurs milliers d’euros et surtout : scellé dans de la résine (pour être étanche). La première idée fut de le mettre sous un puissant projecteur, pour tenter de ré-activer les panneaux solaires (relativement dépolis) mais ce projet aurait nécessité de disposer du matériel de réception des données transmises par la balise en temps normal. En effet cette balise, quand elle est alimentée par sa batterie, relève divers paramètres environnementaux (position, vitesse de déplacement, pression atmosphérique, température…) qu’elle stocke dans une mémoire tampon. Cette dernière se décharge via fréquences radio de courte portée dans des récepteurs installés par les ornithologues autour des lieux de vie des animaux suivis.
Vue du dessus de la balise, avec ses panneaux solaires.
Mais en l’absence de la partie « réception » la balise ne communique pas. Et puis même si les panneaux solaires étaient légèrement dépolis, il y avait fort à parier que c’était surtout la batterie qui était défaillante, 12 ans après sa mise en service.
De l’extérieur, quelques pistes électriques étaient visibles, mais pas assez pour comprendre le circuit de l’engin. Perdue pour perdue, il fut décidé d’ouvrir la balise avec une lame tranchante le long des points de soudure structurelle côté panneaux solaires. Une fois la boîte ouverte, il fut constaté que la manœuvre avait endommagé une partie du circuit, écartant définitivement notre première piste.
Toutefois il fut également possible d’identifier les divers composants de l’engin :
- antenne d’émission,
- batterie (relevée pour la photo),
- micro-controleur général (toutes les pistes électriques convergent vers lui),
- une puce non identifiée,
- la mémoire EEPROM (avec ses huit grosses pattes),
- le module de communication radio locale Zigbee (support bleu),
- le module GPS (uBlox),
- l'antenne fractale (siglée d’un motif à triangles)…
Il y a encore un baromètre quelque part, mais nous ne l’avons pas identifié. Et pour la suite, c’est la puce EEPROM qui nous intéressait car c’est elle qui stocke les données entre deux transmissions.
Dans les entrailles de la bête (l'électronique seulement, l'autre est protégée on vous a dit…)
Il s’agissait d’une EEPROM SST25VF032B de 4 Mo. La puce fut confiée à l’un de nos adhérents qui se chargea de la dessouder du circuit électronique de la balise pour la ressouder sur un étrier de connexion (support bleu sur la photo suivante) à un programmateur d’EEPROM (modèle XGecu TL866II blanc et vert, qu’on va s’employer à faire tourner sous GNU+Linux au cours des prochaines séances… mais vous êtes les bienvenus en commentaire pour esquisser tout comment on aurait pu faire mieux). Les données furent récupérées sous la forme d’un unique fichier binaire de 4 Mo.
Extraction des données de la puce EEPROM : depuis programmateur d’EEPROM (boîtier blanc et vert) à l’ordinateur.
Une fois le fichier extrait, nous nous sommes employés à retrouver un sens à ce que l’on pouvait voir dans un éditeur hexadécimal. En parallèle nous avions contacté le fabricant de la balise pour lui exposer notre cas et lui demander des informations quant à la structure des données stockées dans l'EEPROM. La réponse du constructeur fut simple : « c’est non documenté et imprévisible ; la seule méthode pour récupérer des données est de ré-alimenter la balise en présence d’un récepteur ». Oups… on va devoir se passer de son aide.
En y regardant de plus près, les données étaient en texte simple et il s’agissait de trames CSV stockées sans ordre apparent dans la mémoire. Les trames étaient pré-fixées par un type de trame (A00, A01… G00, G01) et comportaient environ une dizaine de champs. Nous nous sommes concentrés sur les trames G00, car elles présentaient des valeurs identifiables à des coordonnées GPS, horodatées.
Une fois ces trames isolées, il est apparu qu’elles représentaient plus de la moitié du contenu de la balise, dans notre cas pour un total de 42 212 trames G00 dont nous avons pu interpréter et remettre en forme 6 champs (sur les 22 espérés par notre commanditaire). Après raffinement de ces données brutes (par ré-écritures successives des champs) nous avions un fichier CSV contenant les données les plus importantes, importables dans la base de donnée du GODS.
Exemple de trame G00 : G00,010617,102144,-4016766,462176276,44,,356,8,71,13,5
Réécriture de la longitude (le 3e champ) dans vim : %s/,-(\d[^,]*),/,-0.\1,/
(Quoi ? Vous ne parlez pas regex couramment ? Venez donc nous aider à ajouter des sources à Meta-Press.es, le projet en utilise plus de 400 pour les 1000 sources interrogeables…)
Mais nous avons poussé ce travail jusqu’à disposer d’une trace GPX valide, directement importable dans JOSM (le principal logiciel utilisé pour éditer la base de donnée du projet OpenStreetMap).
Exemple de présentation des données d’un point d’une trace GPX :
<trkpt lat="46.2176276" lon="-0.4016766"><ele>44</ele><time>2017-06-01T10:21:44Z</time><speed>0.00</speed></trkpt>
Sont alors apparues les pérégrinations d’une outarde canepetière dans la plaine de Niort, relevées en 42 211 mesures valides entre mai 2017 et novembre 2017 :
Dans cette capture d’écran de JOSM, le dégradé de couleurs marque le temps qui passe et permet de suivre l’oiseau sur ses lieux de vie successifs.
PS: une première version de ce billet est apparue sur le site web de Gebull en janvier 2022.
# bravo
Posté par Funix (site web personnel, Mastodon) . Évalué à 10 (+9/-0).
Moi je dis simplement bravo, j'adore la démarche et l'obstination pour arriver au résultat !
https://www.funix.org mettez un manchot dans votre PC
# Merci, très intéressant.
Posté par Luc-Skywalker . Évalué à 4 (+2/-0).
et chouette histoire.
Du coup, il me vient quelques réflexions/questions:
Envoyer le capteur au fabricant: puisqu'il semble toujours en activité (et qu'il a vendu son produit très cher selon ce que j'ai compris), est ce qu'il n'aurait pas pu procéder lui même à cette opération (moyennant rémunération
éventuellementsans doute) et récupérer l'intégralité des données ?vous n'avez pas tenté d'alimenter l'électronique par une voie extérieure pour redémarrer la machine ?
le côté rétro engineering me plaît et du coup je me demande comment à partir d'un fichier binaire tel que récupéré en dump de ROM on arrive à identifier des trucs comme:
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Merci, très intéressant.
Posté par gUI (Mastodon) . Évalué à 3 (+0/-0).
L'explication est dans le texte
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Merci, très intéressant.
Posté par ChocolatineFlying . Évalué à 5 (+5/-1).
pour etre plus precis ton fichier contient :
47 30 30 2C 30 31 30 36 31 37 2C 31 30 32 31 34 34 2C 2D 34 30 31 36 37 36 36 2C 34 36 32 31 37 36 32 37 36 2C 34 34 2C 2C 33 35 36 2C 38 2C 37 31 2C 31 33 2C 35
avec un bon editeur hexa tu as directement le texte dans la colonne ascii
[^] # Re: Merci, très intéressant.
Posté par Luc-Skywalker . Évalué à 3 (+1/-0).
Ok, je comprends mieux.
Mais ça reste du chinois hein !
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Merci, très intéressant.
Posté par gUI (Mastodon) . Évalué à 10 (+8/-0).
Non pas spécialement. Il y a des trucs à tenter rapidement si tu tombes sur un truc inconnu, à commencer par la commande
strings
qui tout simplement t'affiche les caractères affichables (La Palice, si tu nous entends…). Fais-le sur un binaire exécutable, tu peux être surpris de tout ce que tu vas pouvoir lire directement.En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Merci, très intéressant.
Posté par Siltaär (site web personnel, Mastodon) . Évalué à 9 (+7/-0).
Merci,
Voici quelques réponses :
Le fabriquant, qui me semble plutôt petit et artisanal, avait déclaré l'objet irrécupérable, donc on avait carte blanche. J'ai résumé nos opérations en anglais au fabriquant au cas où il aurait besoin de reproduire l'aventure (ou l'envie de nous en envoyer d'autres à ouvrir, mais nous n'avons pas eu de retours).
Nous avons abîmé physiquement une partie de la circuiterie en ouvrant le boîtier à l'aveugle. Et puis nous n'avions pas de base de réception avec nous. Au Groupe Ornithologique des Deux-Sèvres ils tentent avant tout de mettre les balises muettes récupérées bien exposées en plein soleil ou sous un gros projecteur (suivant la saison et la météo) avec un taux de réussite encourageant.
Je trouve le 3. déjà répondu par gUI et ChocolatineFlying, merci.
La liberté ne s'use que si on ne s'en sert pas.
[^] # Re: Merci, très intéressant.
Posté par Luc-Skywalker . Évalué à 4 (+2/-0).
Merci oui.
C'est quand même cette boîte qui a écrit le programme elle pourrait au moins aider à démerder le reste des données non ?
pas obligé de répondre, mais si je chipote c'est que ça ressemble à mes bricolages du moment à base d'ESP32/GPS/LoRa/batterie/solaire
;)
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Merci, très intéressant.
Posté par ElectronLibre63 . Évalué à 4 (+3/-0).
Je me suis dit exactement la même chose. Je pensais que c'était du matériel très spécifique, mais visiblement, non. Des associations ornitho pourraient s'associer pour faire développer ce type d'équipement qui pourrait alors ne coûter que quelques dizaines d'euros plutôt que des milliers.
La trame ressemble à une trame NMEA qui est souvent utilisée par les GPS.
[^] # Re: Merci, très intéressant.
Posté par Luc-Skywalker . Évalué à 4 (+2/-0).
Oui, cela s'achète tout fait chez LilyGo (par exemple) ou Heltec (par exemple) pour quelques dizaines d'euros.
Pour le premier, je sais qu'on trouve le design (la schématique) sur leur Github, pour l'autre je ne sais pas.
C'est un ESP32 + un module radio (868MHz en Europe) + un GPS + la gestion/charge de la batterie. Rien de bien sorcier à priori. Cela dit, peut être que l'appareil en question embarque d'autres capteurs vu que seules les données de localisation sur 22 ont pu être récupérées.
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Merci, très intéressant.
Posté par ElectronLibre63 . Évalué à 3 (+2/-0).
L'avantage en plus d'un développement maison, c'est que l'on connaît le format des données, ce qui permet ce type de récupération sans le concours de fabricants non coopératifs.
En connaissant les ordres de grandeurs des données que l'on recherche, (normalement, avec les données récupérées par la méthode normale avec les traceurs qui ont fonctionné) on peut essayer de retrouver les données manquantes. L'idéal étant d'avoir un traceur fonctionnel et de faire des relevés réguliers de l'EEPROM au fur et à mesure des enregistrements.
[^] # Re: Merci, très intéressant.
Posté par Luc-Skywalker . Évalué à 4 (+2/-0).
oui, en plus aujourd'hui, c'est "facile" et "pas cher".
Là, c'est un produit qui a pas mal de km au compteur, qui a coûté bonbon, d'ailleurs, il y a écrit "25€ rewards" dessus et pourtant le fabricant, toujours en service, ne fait rien.
C'est bof de sa part, sauf à voir que ça va peut être pousser à s'engager vers des solutions plus "Open Source"
;)
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Merci, très intéressant.
Posté par ChocolatineFlying . Évalué à 0 (+1/-1).
dis lui que c'est gratuit sauf frais de port (si c'etait le cas) a condition de pouvoir partager les données ici :p
[^] # Re: Merci, très intéressant.
Posté par 2PetitsVerres . Évalué à 7 (+5/-0).
Non, c'est une outarde canepetière. La chouette a déjà été retrouvée, apparemment.
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
# Il manque une photo du piou piou
Posté par Enzo Bricolo 🛠⚙🛠 . Évalué à 10 (+21/-0).
[^] # Re: Il manque une photo du piou piou
Posté par Enzo Bricolo 🛠⚙🛠 . Évalué à 6 (+4/-0).
Parce que pour les québéquouais (coubeh), une "outarde", c'est une "bernache du canada" …
[^] # Re: Il manque une photo du piou piou
Posté par SpaceFox (site web personnel, Mastodon) . Évalué à 4 (+2/-0). Dernière modification le 09 avril 2025 à 15:50.
Précision importante, parce que la Bernache du Canada en France n’est plus du tout protégée, c’est devenu une espèce envahissante dont même la LPO dit qu’il faut mener des campagnes de tir et de stérilisation des œufs. Le pire ? C’est que c’est même pas bon à manger.
La connaissance libre : https://zestedesavoir.com
[^] # Re: Il manque une photo du piou piou
Posté par Enzo Bricolo 🛠⚙🛠 . Évalué à 7 (+5/-0).
Maïté te dira que si tu mets suffisamment de foie gras par dessus et que tu flambes avec un soupçon d'armagnac, ça se laisse manger.
[^] # Re: Il manque une photo du piou piou
Posté par lym . Évalué à 1 (+0/-0).
Normalement, le classement EEE n'autorise pas la chasse même s'il peut y avoir des campagnes de régulation ("douce", par stérilisation après piégeage mais qui perturbe les autres espèces qui peuvent tomber dans les pièges même si relâchées, ou "dure" par tir mais avec le bénéfice de la sélectivité): Il me semble que c'est réservé au niveau au dessus (nuisible).
Cela n'empêche pas des arrêtés préfectoraux/municipaux quand une lutte locale est justifiée, voir même des propriétaires fonciers de s'en charger eux mêmes ou en délégation hors de ce cadre arrêtés, mais rien de faisable au niveau national dans ce cadre "envahissant".
Il y en a eu pour les perruches à collier par exemple, malgré la sympathie qu'éprouve pas mal de monde pour cet oiseau (dans certains parcs très colonisés par l'espèce, type Sceaux ou plus récemment Versailles, elles viennent becqueter dans les mains des gens). Car quand on observe un peu plus attentivement, le constat est fort différent même si cela fait (encore?) débat chez les ornithologues (mais l'impact des perruches déborde largement leur cadre et touche aussi les écureuils par exemple) et leur prolifération sans réel prédateurs (même si au moins un couple de buses semble, par chez moi, faire régulièrement menu exotique et semer la panique dans les vols de retour dortoirs en fin de journée regroupant typiquement plusieurs dizaines de perruches) est rapide…
[^] # Re: Il manque une photo du piou piou
Posté par SpaceFox (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
La bernache du Canada est classée « nuisible du premier groupe », donc chassable sur l’ensemble du territoire toute l’année.
La connaissance libre : https://zestedesavoir.com
[^] # Re: Il manque une photo du piou piou
Posté par lym . Évalué à 2 (+1/-0). Dernière modification le 12 mai 2025 à 10:18.
En effet, je l'ignorais. Je m'étonnes au passage de voir Geai/Pie, à en rester aux oiseaux, au 2nd groupe alors que les fameuses perruches ne sont toujours pas classées nuisibles. L'impact pour ce que j'en vois n'est pourtant, de très loin, pas du tout le même: Un nombre d'individus qui reste limité, ne se chiquent/disputent les nids qu'entre corvidés, font surtout les fossoyeurs d'animaux morts même si les corbeaux peuvent chasser jusqu'à petits lapins ou chatons de manière assez organisée.
Au delà, le sanglier dans le 3ème groupe, comment dire?!! Au vu de comment ils jardinent en agglomération et du nb d'accidents nocturnes sur les points de passages (6 percussions par des véhicules dans le km autour de chez moi depuis septembre dernier, en pleine "ville nouvelle" et j'en ait sans doute loupế) c'est un classement qui mériterait révision.
[^] # Re: Il manque une photo du piou piou
Posté par SpaceFox (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Oui, on est d’accord, le classement n’a aucun sens. On pourrait parler du statut du renard aussi, enfin bref.
La connaissance libre : https://zestedesavoir.com
# Logiciel libre pour piloter un programmateur d'EEPROM TL866II
Posté par Siltaär (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Voici programme libre pour utiliser le programmateur d'EEPROM mis en œuvre dans ce journal :
https://gitlab.com/DavidGriffith/minipro
La liberté ne s'use que si on ne s'en sert pas.
# Fabricant...
Posté par lym . Évalué à 2 (+1/-0). Dernière modification le 12 mai 2025 à 09:11.
Merci pour cette dépêche intéressante, un peu moins merci au fabricant qui n'a ici même pas assuré le service minimum à la fois côté récupération des données et au niveau design, afin que ce soit rendu plus simple (il aurait par exemple pu réserver une empreinte pour un connecteur afin d'éviter le retrait, avec toujours un risque de dégât, de la mémoire en prévision de récupération des données post-mortem)!
Je suis par contre étonné de voir du zigbee là dedans tant la portée est limitée (compensé par le réseau maillé via les noeuds sur secteur dans un usage domotique, mais pas ici)! Bon, vu la date Lora/Sigfox n'étaient peut-être pas une option.
Pour la structuration des données, surtout au vu de la faible capacité de l'EEPROM, je trouve assez étrange de voir stocké cela sous forme texte: Pour y stocker des données numériques codées sur un octet ASCII, on a un rapport 8 niveau place vs un stockage hexa.
Au moins cela a simplifié la récupération a défaut de coopération du fabricant, mais rien que cet aspect démontre qu'ils n'ont pas été malins: Un exemple classique, c'est les bitstream de contenu de FPGA (qui contiennent la fusemap de la logique programmée) que les outils de génération sortent également sous une forme ASCII de données pourtant à 99.9% numérique.
En embarqué, ou on est souvent contraint par la taille des stockages, il y a ceux qui prennent le marteau pilon de la compression des données pour enfoncer un clou (avec un impact de la décompression sur les temps de démarrage, des librairies de décompression à ajouter…) et ceux qui réfléchissent et passent ces fichiers bitstream dans une moulinette simple qui convertit ascii->hexa et gagnent un facteur 8 sur les données simplement (et sans impact temps de boot au chargement du FPGA ni ajout de librairies de décompression).
A l'avenir, surtout vu le prix de ces joujous, il faudrait à mon sens ajouter quelques obligations au cahier des charges tenant compte de cette expérience!
# Partager le fichier
Posté par damiend . Évalué à 2 (+2/-0).
Pourquoi ne pas partager le fichier et laisser le public voir s'il ne pourrait pas extraire plus de champs que vous ?
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.