Le projet
Une luciole est un petit boîtier avec une radio et un ruban de LED. Fixée sur un vélo, elle écoute les lucioles autour d'elle et leur parle, directement, de boîtier à boîtier. Il n'y a rien à configurer et rien à connecter : on l'allume, elle cherche ses voisines.
Seule, une luciole fait sa propre lumière. Plusieurs lucioles ensemble font ce qu'une seule ne peut pas faire : elles prennent un rythme commun, s'accordent sur une couleur, et une impulsion lancée par l'une passe de vélo en vélo. Le but est de rendre visibles les relations entre les gens qui roulent ensemble, pas de synchroniser des guirlandes.
Le projet est pensé pour des rassemblements de cyclistes, où des centaines ou des milliers de lucioles peuvent se croiser. Première sortie : la Critical Mass de Bruxelles du vendredi 30 octobre 2026, avec les Merveilleux Fous Roulants.
Principes
- Simple à assembler : des composants prêts à brancher, pas de circuit sur mesure.
- Accessible : un coût unitaire assez bas pour équiper plusieurs cyclistes.
- Autonome : aucune connexion Internet, aucun téléphone, aucun serveur.
- Ouvert : le code et les plans sont publics, et chacun peut changer les animations, les formes et les usages.
- Collectif : une luciole vaut plus quand elle en rencontre d'autres.
Ce qu'on voit
Le ruban est une jauge. Il montre à quel point la luciole est accompagnée.
Chaque luciole a un bouton. Un appui envoie une onde : un front blanc traverse le ruban, puis l'onde gagne les voisines de proche en proche et chacune adopte sa couleur au passage. Dans une foule, l'onde s'éloigne du vélo qui l'a lancée et peut parcourir tout le peloton.
Tout cela repose sur des règles locales. Chaque luciole ne connaît que ce qu'elle entend autour d'elle, et les figures d'ensemble naissent de ces règles sans coordination centrale. La simulation montre ces règles sur un peloton de 20 000 vélos dont 1 000 lucioles.
Matériel
Une luciole, c'est trois pièces du commerce, sans soudure :
- un module M5Stack NanoC6 (puce ESP32-C6) ou AtomS3 Lite (ESP32-S3) ;
- un ruban de LED SK6812 branché sur le port Grove du module, 10 LED dans le kit de départ, jusqu'à 144 ;
- une batterie externe USB (power bank) pour une sortie de plusieurs heures.
Les modules se parlent en ESP-NOW, un protocole radio d'Espressif sans point d'accès Wi-Fi, ici en mode longue portée. La portée entre deux vélos dépend beaucoup des corps et des obstacles : de quelques dizaines de mètres dans un peloton dense à quelques centaines en terrain dégagé.
La prise en charge de l'AtomS3 Lite est en cours de validation sur matériel.
Installer ou mettre à jour une luciole
Le firmware s'installe par USB depuis cette page, sans rien télécharger. La même procédure sert pour les mises à jour. Comptez deux minutes.
Avant de commencer
- Branchez la luciole à l'ordinateur avec un câble USB-C qui transporte les données (certains câbles ne font que charger).
- Sous Linux, votre compte doit être dans le groupe
dialout, puis il faut se déconnecter et se reconnecter. Windows et macOS n'ont rien à installer. - Fermez tout programme qui utiliserait déjà le port (moniteur série, Arduino).
Le module (NanoC6 ou AtomS3 Lite) est reconnu automatiquement. Le nombre de LED est enregistré dans la luciole. Il peut être changé plus tard en réinstallant, ou par la console avec leds N.
Cliquez sur le bouton, choisissez le port de la luciole dans la fenêtre du navigateur, puis cliquez sur Install. À la fin, le ruban montre l'arc-en-ciel.
Vérifier
Après l'installation, le bouton propose Logs & Console. La première ligne de la luciole donne sa version et son module :
luciole: Luciole² 1414 | fw 6.0.0 | carte M5NanoC6 | protocole 1 (min 1) | … | ruban 10 LED
Commandes utiles dans cette console : version, leds 30 (puis redémarrage), onde (lance une onde comme un appui sur le bouton), help.
Compatibilité dans le temps
Les lucioles ne se parlent qu'entre elles, donc une luciole installée aujourd'hui doit encore comprendre celles de l'an prochain. Le format des messages radio est figé dans un contrat, et chaque nouvelle version du firmware doit continuer à le lire. Les animations, elles, peuvent changer librement. Le détail est dans le code source, section « Contrat radio ».
Liens
- Code source sur GitHub : firmware, cette page, la simulation.
- Simulation d'un Critical Mass : 20 000 vélos, 1 000 lucioles, les mêmes règles que le firmware, des appuis sur les boutons au hasard ou à la souris.