Une Pirate Box de poche

Auteur avatarYann S. | Dernière modification 13/06/2026 par Mr Patate

Introduction

L'OpenBiblioBox est un petit boîtier qui crée son propre réseau Wi-Fi. Quand on s'y connecte avec un téléphone ou un ordinateur, une page s'ouvre toute seule et permet de consulter, télécharger et déposer des fichiers, le tout sans Internet et sans laisser de véritable trace en ligne.

Le projet s'inspire directement de la célèbre PirateBox, créée en 2011 par David Darts, et de sa cousine la LibraryBox : l'idée d'un espace de partage libre, anonyme et local, déconnecté du réseau mondial et de sa surveillance. Ces projets sont plutôt à l'abandon, difficile à installer pour des novices faute à un manque de mise à jour de la doc. Ce tuto propose l'installation d'un


Quelques idées d'usages :

  • Biblio de festival ou d'événement : partager programme, affiches et ressources sans imprimer ni passer par un cloud.
  • Partage de photos d'atelier : chacun dépose et récupère les photos, sans groupe de messagerie ni compte.
  • Supports de cours hors-ligne : distribuer documents et exercices en classe, même sans réseau.
  • Bibliothèque de modèles 3D : un catalogue hors-ligne de fichiers STL/OBJ/SVG libres dans un fablab.
  • Mur d'expression numérique : recueillir textes, dessins et sons déposés par le public lors d'un événement.
  • Kiosque à zines et fanzines : faire circuler des publications auto-éditées, dans l'esprit du samizdat.
  • Dead drop de quartier : une boîte aux lettres numérique locale et anonyme, sans intermédiaire.
  • Bibliothèque de secours : partager documents utiles en cas de coupure d'Internet ou en zone blanche, sur batterie.
  • Outil de médiation critique : rendre tangibles un réseau, un serveur et les traces numériques, pour en débattre.


Cette version donne une seconde vie à un M5Stack Core (un petit boîtier à base de puce ESP32) qui dormait dans un tiroir. Aucune soudure n'est nécessaire, et aucune connaissance en programmation n'est requise : on copie des fichiers tout faits, on règle quelques options dans un seul fichier, et c'est prêt.

Ce tutoriel est écrit pour une personne novice en code mais à l'aise avec l'environnement informatique et la manipulation de fichiers. Chaque étape est détaillée.


Le projet est publié sous licence CC0 : vous pouvez le copier, le modifier et le réutiliser librement. Le projet a été créé avec l'assistance du modèle d'IA Claude d'Anthropic.


Pour l'instant je n'ai pas trouvé l'astuce pour utiliser l'écran pour pouvoir afficher une image de lancement et des infos pratiques sans affecter la lecture et écriture sur la carte SD. L'écran du M5 n'est pas utilisé dans cette première version mais c'est me semble-t-il le point d'amélioration pour utiliser pleinement le potentiel du M5. Sinon un esp32 avec un lecteur de carte suffirait en théorie mais pas testé. A vous de jouer et partager !

Matériel

  • M5Stack Core (Core v1 / Basic / Gray — à base d'ESP32). C'est le boîtier avec un écran, trois boutons et un emplacement pour carte microSD.
  • Une carte microSD (jusqu'à 32 Go), avec un adaptateur pour la brancher sur votre ordinateur.
  • Un câble USB-C pour relier le M5Stack à l'ordinateur.
  • (Optionnel) une batterie externe (« power bank ») USB pour faire fonctionner la box sans ordinateur, n'importe où.

Outils (logiciels, gratuits)

  • Thonny : un logiciel simple pour copier les fichiers sur le M5Stack (thonny.org).
  • Le firmware MicroPython pour ESP32 (fichier que l'on télécharge, voir étape 2).

Étape 1 - Comprendre comment ça marche

L'Open BiblioBox repose sur trois éléments :

  1. Le M5Stack crée un réseau Wi-Fi local (comme une petite box Internet, mais sans Internet). Son cerveau, la puce ESP32, fait tourner un mini site web.
  2. La carte microSD stocke les fichiers à partager (dans un dossier biblio).
  3. Le programme (en langage MicroPython) fait le lien : il affiche la page web, gère les téléchargements et les dépôts.

Quand quelqu'un rejoint le Wi-Fi « Open BiblioBox », son téléphone détecte qu'il faut « se connecter au réseau » et ouvre automatiquement la page d'accueil (c'est ce qu'on appelle un « portail captif », comme dans les hôtels et les gares).

Il n'y a donc rien à installer pour les visiteurs : juste se connecter au Wi-Fi.

Étape 2 - Installer MicroPython sur le M5Stack

MicroPython est le « langage » que le M5Stack va comprendre. On l'installe une seule fois.

  1. Téléchargez le logiciel Thonny sur https://thonny.org et installez-le.
  2. Téléchargez le firmware MicroPython pour ESP32 ici : https://micropython.org/download/ESP32_GENERIC Prenez le fichier .bin le plus récent en haut de la liste.
  3. Branchez le M5Stack à l'ordinateur avec le câble USB-C.
  4. Dans Thonny, allez dans Outils → Options → Interpréteur, choisissez « MicroPython (ESP32) » et le port COM/USB correspondant à votre M5Stack (pour vérifier le numéro du port COM, vous pouvez aller sur Windows dans démarrer/paramètres/périphériques et chercher dans la liste).
  5. Cliquez en bas sur « Installer ou mettre à jour MicroPython », sélectionnez le port et le fichier .bin, puis lancez l'installation.

Étape 3 - Préparer la carte microSD

  • Branchez la carte microSD sur votre ordinateur (via l'adaptateur).
  • Formatez-la en FAT32 (clic droit sur la carte → Formater → système FAT32).
  • Décompressez l'archive OpenBiblioBox.zip.
  • Copiez le contenu du dossier carte_SD/ à la racine de la carte. À la fin, la carte doit contenir directement :
    • un dossier biblio/ (vos fichiers à partager : PDF, images, audio, modèles 3D…),
    • un dossier pending/ (laissez-le vide, la box s'en sert pour la modération).
  • Mettez quelques fichiers d'exemple dans biblio/.
  • Éjectez proprement la carte SD.
  • Insérez la carte dans le M5Stack.

Étape 4 - Personnaliser la box (un seul fichier à modifier)

Tout se règle dans le fichier config.py (dossier code_a_flasher/). Ouvrez-le avec un éditeur de texte simple comme le BlocNote et modifiez les valeurs entre guillemets :

  • SSID : le nom du réseau Wi-Fi (ce que les gens verront pour se connecter en Wifi).
  • WIFI_PASSWORD : laissez vide "" pour un réseau ouvert (esprit PirateBox), ou mettez un mot de passe.
  • ADMIN_PASSWORD : à changer impérativement — c'est le mot de passe du panneau d'administration.
  • WELCOME_TITLE et WELCOME_MESSAGE : le titre et le message d'accueil (vous pouvez y mettre un manifeste, des consignes, le nom de votre événement…).
  • DEFAULT_MODE : le mode de départ (read = lecture seule sans dépôt possible par les utilisateurs, open = dépôt libre, mod = dépôt modéré).

Pas besoin de toucher au reste du code : config.py est fait pour ça.

Étape 5 - Copier le code sur le M5Stack

  1. Dans Thonny, menu Affichage → Fichiers : un panneau apparaît à gauche, avec « Cet ordinateur » en haut et « Appareil MicroPython » en bas.
  2. En haut, naviguez jusqu'au dossier code_a_flasher/.
  3. Sélectionnez les 9 fichiers .py (cliquez sur le premier, puis Maj+clic sur le dernier).
  4. Clic droit → « Téléverser vers / » (Upload to /).
  5. Les fichiers apparaissent dans le panneau du bas : ils sont maintenant dans la mémoire du M5Stack.


Le seul fichier que vous aurez parfois à re-téléverser après modification, c'est config.py.

Étape 6 - Démarrer et tester

  1. Appuyez sur le bouton rouge de reset sur le côté du M5Stack (à côté du port USB-C). Un petit jingle sonore confirme le démarrage.
  2. Sur votre téléphone, ouvrez les réglages Wi-Fi et connectez-vous au réseau « Open BiblioBox ».
  3. La page d'accueil doit s'ouvrir toute seule. Sinon, ouvrez un navigateur et tapez l'adresse 192.168.4.1.
  4. Vous voyez la liste des fichiers : essayez d'en télécharger un.
  5. Pour administrer : allez sur 192.168.4.1/admin et entrez le mot de passe défini dans config.py.


L'écran du M5Stack reste volontairement éteint dans cette version : tout se pilote depuis le téléphone, et couper l'écran économise la batterie quand la box tourne sur une power bank.

Étape 7 - Utiliser les trois modes de partage

Depuis le panneau d'administration (/admin), vous choisissez le mode. Le réglage est mémorisé même après une coupure de courant.

  • Lecture seule : les visiteurs peuvent seulement télécharger.
  • Dépôt ouvert : les visiteurs peuvent aussi déposer des fichiers, qui apparaissent immédiatement.
  • Dépôt modéré : les fichiers déposés attendent votre validation dans l'admin avant d'être visibles par tous.

Dans l'admin, vous pouvez aussi : supprimer des fichiers un par un, vider tout le dossier biblio, voir l'espace libre sur la carte, et régler la taille maximale des dépôts (curseur de 2 à 20 Mo).

Côté formats : presque tout est accepté (documents bureautiques, images, audio, vidéo, modèles 3D comme STL/OBJ/SVG, archives…). Seuls les fichiers dangereux (programmes exécutables, scripts) sont refusés, avec un message d'explication.

Étape 8 - BONUS : rendre la box autonome et nomade

  • Alimentation : branchez le M5Stack sur une power bank USB. Comme l'écran est éteint, l'autonomie est meilleure. La box redémarre toute seule dès qu'elle est alimentée (le jingle confirme).
  • Limites de connexions : L'ESP32 du M5Stack accepte officiellement jusqu'à 10 clients connectés en même temps sur son point d'accès, mais dans le cadre de ce projet le nombre de connexion simultanées est limité à pour plus de stabilité. C'est aussi un projet à vocation de ré-emploi d'un matériel de fonds de tiroirs, l'ESP32 et le serveur créé ne permets pas plusieurs téléchargement ou téléversements en simultané... Il faudra être patients et coordonnées pour l'utiliser, c'est la limite du projet.
  • Personnalisation : changez le message d'accueil dans config.py selon l'événement. Vous pouvez aussi pré-charger la carte SD avec une sélection thématique (zines, documents libres, créations des participants…).

Comment ça marche ?

Observations : que voit-on ?

Une fois la box allumée (un petit jingle confirme le démarrage), un nouveau réseau Wi-Fi « Open BiblioBox » apparaît dans la liste des réseaux disponibles sur n'importe quel téléphone ou ordinateur à proximité. En s'y connectant, une page web s'ouvre automatiquement — sans rien taper — et affiche la bibliothèque de fichiers, avec leurs noms et leur taille. On peut alors télécharger un document d'un simple appui, et, selon le mode choisi, en déposer soi-même. Toute l'expérience se déroule sans aucune connexion à Internet : la box est un petit monde numérique autonome, qui tient dans la main et fonctionne même au milieu de nulle part.

Mise en garde : qu'est-ce qui pourrait faire rater l'expérience ?

  • La carte SD doit être formatée en FAT32 (pas en exFAT ni NTFS), sinon la box ne la lit pas et n'enregistre rien.
  • Les dossiers biblio et pending doivent être présents à la racine de la carte, en minuscules et sans accent.
  • Ne pas oublier de changer le mot de passe administrateur dans config.py avant tout usage public.
  • La box gère confortablement 4 à 5 personnes connectées en même temps : au-delà, ça devient instable. Les téléchargements se font les uns après les autres, donc privilégier des fichiers légers si beaucoup de monde se connecte.
  • Si le M5Stack n'apparaît pas dans le logiciel lors de l'installation, il manque presque toujours le pilote USB (CP210x) à installer sur l'ordinateur.
  • Le réseau de la box ne donne pas accès à Internet, c'est normal et voulu : certains téléphones affichent un avertissement « pas d'accès Internet », qu'on peut ignorer.

Explications

Le M5Stack contient une puce ESP32, capable de créer un réseau Wi-Fi et de faire tourner un petit serveur web. Le programme MicroPython :

  • crée le réseau Wi-Fi (« point d'accès ») ;
  • répond à toutes les demandes des navigateurs avec sa propre page (le portail captif qui s'ouvre tout seul) ;
  • lit et écrit les fichiers sur la carte microSD ;
  • gère trois modes (lecture / dépôt / dépôt modéré), mémorisés dans la mémoire permanente de la puce.

Applications : dans la vie de tous les jours

La même technologie est partout autour de nous, souvent sans qu'on la remarque : les portails Wi-Fi des hôtels, gares et aéroports qui ouvrent une page d'accueil dès qu'on se connecte fonctionnent sur le même principe de « portail captif ». Les box Internet de la maison créent un réseau local exactement comme le fait l'Open BiblioBox. Comprendre cet objet, c'est comprendre comment circulent les données autour de soi, ce qu'est un serveur, et pourquoi un service peut très bien fonctionner sans passer par un cloud lointain. C'est aussi une façon concrète de réaliser que le partage de fichiers ne dépend pas forcément des grandes plateformes, et qu'on peut reprendre la main sur ses propres données.

Vous aimerez aussi

  • La PirateBox et la LibraryBox, les projets historiques qui ont inspiré celui-ci.
  • Les expériences autour de Meshtastic / LoRa, pour créer des réseaux de communication longue portée sans opérateur.
  • Tout atelier de réemploi de matériel électronique : donner une seconde vie à un appareil oublié plutôt que d'en acheter un neuf.
  • Les ateliers de fabrication numérique en fablab (impression 3D, découpe) auxquels la box peut servir de bibliothèque de modèles.

Éléments pédagogiques

Objectifs pédagogiques

  • Découvrir concrètement comment fonctionne un réseau et un site web, sans Internet.
  • Comprendre la notion de décentralisation et de partage pair-à-pair local.
  • Aborder la question des traces numériques et de la vie privée de façon tangible.
  • Donner une seconde vie à du matériel (réemploi, culture maker).
  • S'initier sans peur au code : modifier un fichier de configuration, copier un programme.

Pistes pour animer l'expérience

  • Bibliothèque clandestine : pré-charger des documents libres et inviter le public à les récupérer.
  • Boîte à contributions : en mode dépôt modéré, recueillir les créations des participants lors d'un atelier.
  • Débat sur la vie privée : à partir de la page « En savoir plus », questionner ce qu'est une trace numérique, ce que voit (ou non) un réseau.
  • Atelier réemploi : montrer comment un objet « inutile » redevient utile.
  • Détournement : imaginer collectivement d'autres usages (dead drop de quartier, biblio de secours en zone sans réseau, mur d'expression lors d'un événement…).

Sources et ressources

Licence

Ce tutoriel et le code associé sont publiés sous CC0 1.0 Universal (domaine public). Vous pouvez les copier, les modifier, les distribuer et les réutiliser librement, même à des fins commerciales, sans demander la permission.


Dernière modification 13/06/2026 par user:Mr Patate.

Commentaires

Draft