---
title: "Un badge à 41 £ sait si vous devez courir après le bus"
locale: "fr"
url: "https://irz.fr/fr/articles/tfl-badger-departures-board-fr"
markdown_url: "https://irz.fr/fr/articles/tfl-badger-departures-board-fr.md"
category: "tech"
tags: ["e-paper", "micropython", "embarqué", "transport", "basse-consommation"]
published_at: "2026-08-24T16:45:00.000Z"
author: "Jules Garnier"
translation: "https://irz.fr/en/articles/tfl-badger-departures-board-en.md"
---

# Un badge à 41 £ sait si vous devez courir après le bus

Marcio Lopes a transformé un badge e-ink Pimoroni Badger 2350 en tableau de départs pour son arrêt de bus londonien : sans clé API, sans compte, environ une semaine par charge.

Accroché près de la porte d'un appartement londonien, un badge de poche fait un travail que beaucoup confient encore à leur téléphone : dire s'il faut courir après le bus. Six lignes de départs pour l'arrêt d'en face, la météo du jour en pied de page, un petit pourcentage de batterie dans le coin. L'objet tourne depuis quelques semaines sur sa batterie intégrée — environ une semaine par charge, parfois dix jours.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

Le matériel ne coûte pas cher et ne demande aucune soudure. Le Badger 2350 de Pimoroni est un badge e-paper de 2,7 pouces à quatre niveaux de gris, piloté par un RP2350, vendu 41,25 £ avec batterie, boîtier et dragonne.[3](https://shop.pimoroni.com/products/badger-2350) Son propriétaire, Marcio Lopes, a publié le 16 août l'application MicroPython complète sous licence MIT, et le relais d'Adafruit trois jours plus tard lui a déjà trouvé un public.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)[4](https://blog.adafruit.com/2026/08/19/live-tfl-bus-arrivals-weather-departure-board-on-a-pimoroni-badger-2350-e-ink-badge/)

## L'image est gratuite

Tout part d'une propriété physique. Un écran e-paper conserve la dernière image affichée sans consommer le moindre courant. Tant qu'aucun bus n'arrive, le tableau peut rester figé des heures sans dépenser un milliampère — c'est l'inverse exact d'un écran LCD, qui doit être rétroéclairé en permanence pour rester lisible.

Cette gratuité a une contrepartie : les mises à jour sont lentes et coûteuses, alors chaque pixel compte. L'écran mesure 264 × 176 pixels — mesuré sur l'appareil, précise la documentation du projet, parce qu'une estimation faite sur la fiche d'un autre modèle lui a d'abord fait perdre deux lignes de bus sur le papier.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350) La police occupe 6 × 12 pixels, ce qui donne une grille assez étroite pour six départs, une barre de titre et la météo, mais trop juste pour le moindre luxe typographique.

Les quatre niveaux de gris ont eux aussi réservé une surprise. Une première version zébrait les lignes du tableau pour aérer la lecture ; le gris choisi s'est rendu noir à l'écran sous le mode de rafraîchissement rapide, et le zébrage est reparti à la poubelle. Le tableau final est noir sur blanc, point.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

## Sans clé ni compte

Les horaires théoriques ne suffisent pas ici : ce qui rend l'objet utile, c'est le temps réel. L'application interroge donc l'API ouverte de Transport for London, qui expose les prédictions d'arrivée arrêt par arrêt. Le portail officiel de TfL fixe la limite anonyme à 50 requêtes par minute, et propose une clé gratuite pour monter à 500.[5](https://api-portal.tfl.gov.uk/)

Le badge, lui, se rafraîchit toutes les deux minutes. Environ trente requêtes par heure, soit 1 % du plafond anonyme : pas besoin de clé, pas de compte, pas d'inscription. Un appel passé à l'un des arrêts configurés par le projet le 24 août renvoyait bien des prédictions en direct, sans le moindre identifiant.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

> Le budget réseau
> **Largement sous le plafond**
> - limite anonyme officielle de l'API TfL: 50/min
> - requêtes réellement envoyées par le badge: ~30/h
> - entre deux rafraîchissements du tableau: 2 min
> Sources : portail API TfL ; documentation du projet.

La météo suit un autre chemin : le service wttr.in, interrogé une fois par heure, en HTTP pur — la négociation TLS échoue sur cette carte, alors que celle vers TfL passe sans problème. Un détail de firmware qui a coûté une soirée à quelqu'un, quelque part.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

## Dormir efface tout

Entre deux rafraîchissements, le badge s'endort profondément. Et là, le firmware impose une contrainte qui a façonné tout le logiciel : le sommeil profond équivaut à un redémarrage complet. Chaque réveil efface la mémoire vive. Les derniers départs connus, la météo, l'horodatage doivent donc être réécrits dans la mémoire flash avant de dormir, puis relus à chaque réveil.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

Cette amnésie permanente a failli tuer le projet. Pendant environ quarante-huit heures, le badge est resté figé sur sa dernière image : une exception lors de l'armement du réveil avait été silencieusement avalée, et l'appareil s'était endormi sans aucun moyen de se réveiller — après environ 1 400 cycles. Le correctif arme désormais le minuteur avec relance vérifiée : l'appareil refuse de dormir tant qu'aucun réveil n'est confirmé.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

Autre découverte du même genre : la fonction censée donner le niveau de batterie ne renvoie que 100 % ou 0 %. L'application calcule donc elle-même le pourcentage à partir de la tension mesurée, via une courbe de LiPo — et lit cette tension avant d'allumer le Wi-Fi, dont l'activité fausse la mesure.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

## La nuit, il ralentit

De 22 h 30 à 5 h 30, le badge cesse de traquer les bus. Il se réveille une fois par heure pour mettre à jour l'horloge, la batterie et la météo, puis se rendort. Une pression sur le bouton A achète trente minutes d'horaires en direct pour les insomniaques.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

Quand la batterie descend à 3,45 V, l'application bascule sur un écran statique de batterie faible, dessiné une seule fois — l'e-paper le garde affiché gratuitement — puis ne se réveille plus que tous les quarts d'heure pour guetter un chargeur. La logique tient en une ligne : quand le badge ne peut plus garantir l'heure juste, il s'éteint sur un avertissement plutôt que de laisser des horaires trompeurs sous les yeux. Sur le forum, Marcio Lopes assume ce choix : sans lui, on partirait courir pour rien.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)

Avec toute cette parcimonie, l'autonomie annoncée tient environ une semaine par charge, parfois dix jours — chiffres de l'auteur, sur son propre usage, à prendre comme tel.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)

## L'arrêt d'à côté

Fin juillet, des travaux ont fermé l'arrêt habituel. La panne a révélé un angle mort : l'endpoint des arrivées ne sait pas qu'un arrêt est fermé — il continue de servir des horaires pour un arrêt où plus aucun bus ne s'arrêtera. La fermeture vit sur un endpoint séparé, consulté une fois par heure.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

L'application surveille donc cet endpoint, et quand une fermeture est déclarée, elle affiche une bannière inversée « Abbey Road Closed », change le titre de l'en-tête et va chercher les départs de l'arrêt voisin — ceux-là seuls étant exploitables. La documentation interne formule le principe mieux que personne : des horaires pour un arrêt où aucun bus ne viendra sont pires que pas d'horaires du tout, parce qu'ils se lisent comme actionnables.[2](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)

> **Deux données, deux politiques d'échec**
> - Le pied de page disparaît s'il devient trop vieux.: Météo
> - L'alerte tient jusqu'à une réponse vide officielle de TfL.: Fermeture
> - La cadence commune aux deux vérifications secondaires.: 1 fois/h
> Conception documentée dans HANDOFF.md du dépôt.

Si wttr.in tombe, le pied de page météo finit par disparaître : une information manquante est honnête, une information périmée ne l'est pas. À l'inverse, une alerte de fermeture ne s'efface jamais sur simple échec réseau — elle tient jusqu'à ce que TfL réponde explicitement que tout est rentré dans l'ordre. Mieux vaut marcher pour rien vers un arrêt rouvert que rester derrière un panneau « fermé » fantôme.

## Ce qui reste

Dans le fil de discussion, un premier commentaire rappelle la fragilité du modèle : un utilisateur allemand raconte avoir monté le même type de tableau pour ses bus, jusqu'à ce que l'API qu'il utilisait ferme. Un objet ambient dépend entièrement de la politique d'ouverture de ses données — TfL pourrait demain durcir ses quotas ou son contrat d'utilisation.[1](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)

Il reste un schéma transférable, lui. Étiqueter ce qui est périmé, retirer ce qui est mort, crier quand on ne sait plus : trois décisions banales dans un logiciel web, rarissimes dans un objet censé vivre des semaines sans personne. Ce badge de 41 £ ne fait pas grand-chose — six lignes, une heure juste, une phrase de météo — et c'est à peu près tout ce qu'on lui demande. Il ne rate jamais l'occasion de dire ce qu'il ignore.

## References

1. [Marcio Lopes, Badger 2350 as a live TfL bus arrivals board — forum Pimoroni, 16 août 2026](https://forums.pimoroni.com/t/badger-2350-as-a-live-tfl-bus-arrivals-board/29051)
2. [marciolopes93/tfl-bus-arrivals-badger2350 — dépôt GitHub (README et HANDOFF.md)](https://github.com/marciolopes93/tfl-bus-arrivals-badger2350)
3. [Pimoroni Badger 2350 — fiche produit officielle](https://shop.pimoroni.com/products/badger-2350)
4. [Adafruit Blog, Live TfL bus arrivals + weather departure board on a Pimoroni Badger 2350, 19 août 2026](https://blog.adafruit.com/2026/08/19/live-tfl-bus-arrivals-weather-departure-board-on-a-pimoroni-badger-2350-e-ink-badge/)
5. [Transport for London — portail API et limites d'utilisation](https://api-portal.tfl.gov.uk/)
