Carnet de fabrication

Marelleo

Une boîte qui raconte une histoire quand on pose une figurine dessus. Je l'ai construite pour mes trois enfants, sans rien connaître à l'électronique, et j'ai tout appris en cassant des trucs.

15 octobre 2026

La boîte Marelleo terminée, un cube beige imprimé en 3D posé sur une table en bois, avec un cercle gravé sur le dessus. Deux figurines en bois peint, turquoise et corail, sont posées à côté et dessus.

Tout a commencé par un agacement en vacances

Cet été, en vacances avec des amis et une petite tribu d’enfants, je découvre la Toniebox. Et franchement, je trouve ça très cool. L’enfant pose une figurine sur la boîte, l’histoire démarre. Il la retire, ça s’arrête. Pas d’écran, pas de menu, pas de parent à aller chercher. Un enfant de deux ans comprend le principe en une seconde, ce qui est à peu près le plus haut niveau d’ergonomie qu’on puisse atteindre.

Le geste est parfait. Le modèle, nettement moins. Toutes ces boîtes marchent pareil : l’objet est vendu à un prix plus ou moins raisonnable, et l’argent se fait ensuite, sur le contenu. Que ce soit la Lunii et son catalogue fermé, la Yoto et ses packs de cartes, ou la Toniebox et ses figurines, chaque nouvelle histoire est un achat, dans un catalogue que je ne choisis pas, sur un objet que je ne contrôle pas. On n’achète pas un lecteur, on achète un abonnement déguisé en jouet en bois. Et ça, ça me saoule assez franchement.

En parallèle, ça fait des années que je me dis que j’aimerais faire de l’électronique. Pas en dilettante : vraiment comprendre. Sauf que je n’y connais rien. J’ai un fer à souder dont je me sers tous les trois ans pour recoller le fil d’un casque, jamais pour fabriquer quoi que ce soit. Le genre de type qui sait ce qu’est une résistance sans avoir jamais eu à en choisir une.

Les deux envies se sont rejointes dans la voiture du retour. Ce serait ça, mon projet. Un lecteur RFID, un tag, une boîte qui lit une piste audio selon ce qu’on pose dessus. Pas pour en faire un produit. Juste pour mes enfants, et pour apprendre.

Deux découvertesv0

La breadboard, ou le droit de se planter

Je savais déjà ce que je ne voulais pas. Un Raspberry Pi, c’est un ordinateur complet pour jouer un MP3 : trop gros, trop gourmand, et il met vingt secondes à démarrer. Un enfant qui pose sa figurine n’attend pas vingt secondes, il repart jouer. Et à l’autre bout, les puces vraiment bas niveau, celles qu’on programme en C avec une fiche technique de 400 pages, sont beaucoup trop ardues pour un débutant qui voudrait entendre une histoire le soir même.

En cherchant, je tombe sur deux choses qui vont rendre le projet possible. L’ESP32 en carte de développement d’abord : un microcontrôleur avec le WiFi intégré, assez costaud pour décoder du MP3, assez simple pour se programmer comme un Arduino, et vendu une poignée d’euros. Et la breadboard ensuite, cette plaque percée où l’on enfiche les composants sans rien souder.

Ça a l’air d’un détail. C’est tout le projet qui bascule. Sur une breadboard, se tromper ne coûte rien : on débranche, on recommence, on n’a rien abîmé. Quand on apprend, c’est exactement la propriété dont on a besoin.

Alors je lis des docs, je discute avec Claude, je dessine des branchements sur un carnet. Et très vite, beaucoup trop vite pour que ce soit mérité, j’ai un montage qui lit une piste audio quand on pose un tag dessus. C’est moche, c’est un plat de spaghettis en fil de cuivre, le haut-parleur est à nu sur la table. Mais ça marche. Quelques heures, et j’ai un truc qui raconte des histoires. Je crois que je n’avais pas été aussi content d’une chose fabriquée de mes mains depuis l’enfance.

Un ESP32 enfiché sur une breadboard blanche, relié par une dizaine de fils de couleur à un lecteur NFC rouge dont la LED est allumée.
Le premier montage. Un ESP32 sur la breadboard, le lecteur NFC au bout de quelques fils, une LED rouge qui dit que ça vit. Pas une seule soudure.

Ce qui a brûlé

Le potentiomètre, la fumée, et l’odeur de fart à ski

La suite est moins glorieuse. Pour régler le volume, je mets un potentiomètre, ce petit bouton rotatif qui n’est rien d’autre qu’une résistance variable. Sauf que mal câblé, il ne règle plus rien du tout : il devient un simple fil entre le plus et le moins. Ça porte un nom, ça s’appelle un court-circuit, et ça chauffe terriblement vite.

Il a fumé. Et il a dégagé une odeur très particulière, que j’ai mis un bon moment à identifier avant de tomber dessus d’un coup : du fart à ski. De la cire qui brûle. Depuis, je la reconnais immédiatement, et ce n’est jamais une bonne nouvelle.

La batterie a été l’autre chantier, et celui qui m’a fait réfléchir. On ne branche pas une cellule lithium sur deux fils et on n’en parle plus. Il faut un contrôleur de charge, c’est-à-dire une puce dédiée qui décide quand et comment la remplir, qui s’arrête au bon moment et qui coupe avant la bêtise. Il faut aussi la fixer pour de bon, parce qu’une batterie lithium qui se balade dans un boîtier et qui se fait pincer, c’est précisément le scénario des vidéos qu’on ne veut pas regarder.

Une batterie lithium plate de 3000 mAh tenue dans une main.
3000 mAh, 3,7 V. Plate, légère, et pas du tout anodine.
Une petite carte de charge bleue avec une prise USB-C et un connecteur blanc.
La carte de charge, et son connecteur blanc qui n'était pas le mien.

Et là, détail idiot : le connecteur de ma batterie ne correspondait pas à celui de la carte de charge. Deux petites fiches blanches qui se ressemblent, deux pas différents, incompatibles. Alors j’ai fait ce qu’on fait à vingt-trois heures un mardi quand on y est presque : j’ai coupé le connecteur et soudé la batterie en dur.

Conséquence immédiate, et que je n’avais pas vue venir : plus de connecteur, donc plus moyen de débrancher quoi que ce soit, et aucun interrupteur dans le montage. La boîte était allumée en permanence. Vingt-quatre heures sur vingt-quatre. Une cellule lithium soudée à la va-vite dans un objet qui ne s’éteint jamais, posé dans une chambre d’enfant. Écrit comme ça, ça se passe de commentaire.

C’est à ce moment-là que j’ai arrêté de prendre ça à la légère. Pas par peur, mais parce que j’ai compris que je n’étais plus en train de bricoler un gadget sur un coin de table : j’étais en train de poser un objet électrique dans la vie quotidienne de mes enfants. Tout le reste du projet découle de cette prise de conscience.

Note d'atelierv1

De la breadboard à la plaque à pastilles

La première conséquence a été de quitter la breadboard, et ce n’était pas qu’une question de sécurité.

Une breadboard tient par friction. Chaque fil est retenu par un ressort minuscule, et c’est merveilleux pour essayer, désastreux pour durer. Il suffit de déplacer le montage pour qu’un contact se perde, et la panne qui en résulte est bien pire qu’une panne franche : elle est intermittente. On cherche un bug dans son code pendant une heure et demie, on relit vingt fois la même fonction, et c’est un fil qui ne touche plus.

Une plaque à pastilles verte sur laquelle sont soudés un ESP32 et plusieurs petits modules.
Le même montage que sur la breadboard, mais soudé. Il survit à un déplacement sur la table, et c'est déjà beaucoup.

L’étape suivante, c’est la plaque à pastilles : la même grille de trous, mais en circuit imprimé, et chaque composant y est soudé. On perd le droit à l’erreur, on gagne un montage qui tient. C’est là que j’ai vraiment appris à souder, et surtout que j’ai compris que mes soudures de réparation n’avaient rien à voir avec des soudures de fabrication. Réparer, c’est refaire une liaison qui existait. Fabriquer, c’est en faire cent d’affilée, toutes propres, toutes identiques, en sachant que la cent-unième est celle qui lâchera.

Le boîtier

Mes enfants ont dévissé le bouton jusqu’à arracher les fils

Pour le boîtier, j’ai eu beaucoup de chance : François Lagunas m’a prêté son imprimante 3D et m’a aidé à faire les premiers essais. Sans lui je serais encore en train de découper du carton à la règle. J’ai dessiné mes modèles sur Fusion 360 en licence loisir, qui est gratuite, et j’ai imprimé.

Le modèle 3D du boîtier dans Fusion 360 : un cube aux arêtes arrondies, avec un cercle sur le dessus, un bouton cylindrique et le nom gravé sur la face avant.
Le boîtier dans Fusion 360. Le cercle du dessus marque la zone de pose, le trou à côté reçoit le bouton, et la fente sur le flanc laisse passer l'USB-C.

La première version était trop grande et trop fragile. Et le contrôle qualité est arrivé plus vite que prévu, sous la forme de trois enfants de 21 mois, 5 ans et 7 ans.

Ils ont cassé le commodo en le tournant comme des brutes. Le bouton de volume a fini par tourner sans butée, dans le vide, encore et encore, et en tournant il a enroulé les fils sur eux-mêmes jusqu’à tous les arracher. J’ai ouvert la boîte sur un petit nid de cuivre torsadé. C’est là que j’ai appris la règle la plus importante de tout le projet : un enfant de cinq ans ne tourne pas un bouton, il le dévisse. Et il ne s’arrête pas quand ça résiste. Il s’arrête quand ça cède.

Un potentiomètre tenu entre deux doigts, cinq fils de couleur soudés à ses cosses.
Le potentiomètre et ses cinq cosses : trois pour le volume, deux pour l'interrupteur qui éteint la boîte en bout de course. Ce sont ces fils-là qui se sont enroulés.

Alors j’ai recommencé. J’ai repris toutes les mesures au pied à coulisse, composant par composant, pour que chaque trou tombe pile où il faut et que chaque pièce soit tenue par le plastique plutôt que par ses fils. J’ai épaissi les parois, ajouté des logements, baissé la hauteur. Version après version, l’objet a cessé de ressembler à un prototype pour commencer à ressembler à un objet.

Toujours dans l’idée que rien ne doit lâcher, j’ai aussi abandonné les vis autoforeuses. Visser directement dans du plastique imprimé, ça tient une fois, deux fois, et à la troisième la matière se fend le long des couches : le trou ne retient plus rien et la pièce est bonne à réimprimer. La vraie réponse s’appelle un insert en laiton. On le pose sur le trou, on vient dessus avec la panne du fer à souder, le laiton chauffe, fait fondre le plastique autour de lui et s’y noie. En refroidissant, on a un pas de vis métal pris dans la pièce, qu’on peut visser et dévisser cent fois.

Le fond du boîtier imprimé avec des inserts en laiton noyés dans le plastique aux quatre coins.
Les inserts laiton noyés au fer à souder. Quatre minutes de travail, et des vis qu'on peut défaire autant de fois qu'on veut.

Et puis il y a eu le seul test qu’aucun argument technique ne passe à ma place : ma femme a aimé la boîte. Pas poliment : elle l’a posée sur l’étagère du salon, au milieu des objets qu’on ne range pas quand on sonne à la porte. Ça tranche au passage le parti pris du cube, dont je n’étais pas sûr. Un objet pour enfants qu’on n’a pas besoin de cacher, c’est un objet qui finit par servir.

Sur la photo d’ouverture, il reste de tout ça : un cercle gravé sur le dessus, qui dit où poser la figurine parce que l’antenne est juste dessous, le bouton de volume à côté, le bouton de lecture, et le nom en relief dans la paroi avant. Les figurines sont des bonshommes en bois peint avec une pastille NFC collée sous les pieds. N’importe quel objet ferait l’affaire : une petite voiture, un jeton, un caillou plat. C’est l’enfant qui décide ce qui raconte quoi, et c’est très exactement ce que je voulais.

La cartev2

J’ai voulu que plus rien ne pendouille

À ce stade, j’avais une version qui marchait plutôt bien. Mais un montage à fils, même bien soudé, reste un montage à fils. Il y a toujours un câble qui tire sur une soudure, un module qui pend au bout de ses pattes, un connecteur qui se déboîte quand on secoue. Or je venais de passer quelques semaines à mesurer, très empiriquement, à quel point mes enfants secouent.

Donc j’ai changé de catégorie et je me suis lancé dans la conception d’une carte imprimée. Tout ce qui était éparpillé, factorisé sur une seule carte : l’alimentation, le chargeur, l’amplificateur, le lecteur de carte SD, les connecteurs. Chaque pièce à sa place, rien qui bouge, rien qui dépasse.

J’ai utilisé Claude pour passer de mon montage à fils à un schéma propre, et c’est là que la répartition des rôles est devenue intéressante. Il lit très bien une fiche technique, repère qu’une broche a besoin d’une résistance de rappel, calcule une valeur, va chercher un brochage dans la bibliothèque plutôt que de le recopier de mémoire. Mais il ne sait pas router. Le routage, c’est-à-dire dessiner physiquement le chemin de chaque piste de cuivre entre les composants sans jamais en croiser une autre, c’est moi qui l’ai fait, à la main, dans KiCad. 491 pistes. Des soirées entières à déplacer des traits d’un dixième de millimètre pour faire passer une liaison entre deux pattes espacées de huit dixièmes.

Capture de KiCad montrant le routage de la carte : un rectangle vert couvert de pistes rouges, les connecteurs annotés sur les bords, et une zone hachurée en haut marquée KEEP-OUT ZONE sous l'antenne.
Le fichier de routage. Chaque trait rouge est une piste de cuivre posée à la main. En haut, la zone hachurée sous l'antenne du module WiFi : aucun cuivre n'a le droit d'y passer, sinon la portée s'effondre.

Ce fichier, il faut le regarder à la loupe avant de l’envoyer, et pour une raison très concrète : on ne commande pas une carte à l’unité. Le minimum est de cinq, fabriquées et montées d’un seul coup. Une erreur dedans, ce ne sont pas des retouches à faire, ce sont cinq cartes bonnes à jeter et la facture entière.

Alors je lui ai fait relire tout le schéma, ligne à ligne. Il y a trouvé trois choses que je n’aurais jamais vues, et chacune aurait coûté la commande.

Note d'atelier

Les trois erreurs trouvées avant la commande

La résistance qui aurait tout tué. Pour fabriquer le 3,3 V dont le processeur a besoin, j’utilise un abaisseur de tension, et j’avais mis autour de lui deux résistances formant un diviseur. C’est la méthode normale pour régler la tension de sortie. Sauf que la puce que j’avais choisie existe en deux familles : une à tension réglable, et une à sortie fixe. J’avais pris la fixe. Avec mon diviseur, la régulation aurait lu une tension bien plus basse que la réalité, conclu que la sortie était trop faible, et poussé. Le calcul donne 13,7 V sur un rail prévu pour 3,3. Le module WiFi, la carte SD, le lecteur NFC : tous morts dans la seconde qui suit la mise sous tension.

La diode à l’envers. Dans KiCad, la pastille numéro 1 d’une diode est la cathode, et mon fichier la posait dans l’autre sens. Une diode inversée à cet endroit, c’est le 5 V qui ne sort pas, donc le 3,3 V qui n’existe pas, donc une carte qui ne démarre pas du tout. Cinq cartes muettes d’un coup, et aucun moyen de s’en apercevoir sans les faire fabriquer.

Et le contrôleur qui ne contrôlait rien. KiCad vérifie automatiquement que les pistes respectent les distances minimales. Le mien était configuré avec une distance minimale de zéro. Il tournait, il affichait zéro erreur, et il validait absolument n’importe quoi, en silence. C’est le pire type de bug : l’outil qui te rassure.

Une fois, le rapport s’est inversé et ça m’a fait un plaisir bête : c’est moi qui ai repéré que deux composants de ma nomenclature étaient en rupture de stock, avant lui. On en a tiré un petit programme qui interroge le catalogue du fabricant et rend le stock et le prix de chaque référence, pour que ça n’arrive plus jamais en aveugle. Une référence n’est pas un acquis : elle se revérifie le jour de la commande, pas la veille.

La livraison

160 euros de cartes, et rien ne se passe

J’ai commandé chez JLCPCB, qui fabrique la carte et y pose les composants. Pour 160 euros j’en ai reçu cinq, déjà montées, de quoi en garder une et en offrir aux cousins et aux amis. Ouvrir ce colis a été un des très bons moments du projet. Des cartes vertes, nettes, les composants parfaitement alignés, mon nom écrit dessus, sorties d’un fichier que j’avais dessiné sur mon canapé.

La carte imprimée verte terminée, avec le module ESP32, le porte-carte microSD, plusieurs connecteurs blancs sur les bords et le nom Marelleo en sérigraphie.
La carte reçue de JLCPCB, composants posés. Mon nom en sérigraphie, et 491 pistes dessinées à la main dessous.

Premier contact avec l’objet fabriqué : je n’arrive pas à brancher l’USB. L’usine avait ajouté sous la prise une petite bande de matière, une amorce de rupture qui sert à tenir la carte pendant l’assemblage et qu’on est censé casser à la réception. Il a fallu que j’ose la casser à la main sur une carte à trente euros. Ça m’a pris dix bonnes minutes de contemplation.

Ensuite je branche, je teste. Et rien ne se passe. La LED du lecteur NFC clignote, mais aucune figurine n’est reconnue, rien ne joue, rien n’apparaît sur le réseau. Rien.

J’ai passé un quart d’heure à me dire que j’étais un vieux fou qui venait de cramer 160 balles dans des cartes inutiles, et que c’était bien fait pour moi. Mauvais moment, sincèrement. Puis j’ai cherché, méthodiquement, en débranchant les faisceaux un par un.

Le coupable tenait dans deux fils. J’avais inversé les deux conducteurs du milieu sur la nappe du lecteur NFC, ceux qui portent la liaison série. Cette liaison se croise toujours : ce que l’un émet, l’autre doit l’écouter. Branchée droite, les deux extrémités parlent en même temps et personne n’écoute. Le module s’allume, sa LED clignote joyeusement, et il ne répond jamais. C’est le genre de panne qui a l’air d’une panne grave et qui est juste une inattention.

Et le meilleur est pour la fin. J’avais réparé le câble, et ça ne marchait toujours pas. Pour deux raisons empilées : d’une part le programme n’interroge le lecteur qu’une seule fois, au démarrage, donc tant qu’on ne redémarre pas, la réparation est invisible. D’autre part, le bouton d’extinction ne coupe rien du tout tant que l’USB est branché, parce qu’il agit sur le transistor de la batterie et que l’USB alimente la carte par un autre chemin. Je passais donc mon temps à « redémarrer » une carte qui ne redémarrait pas, pour tester une réparation déjà faite.

Le câble enfin débranché et rebranché, la ligne tant attendue est tombée sur la console :

console
PN532 pret
bibliotheque : 4 figurine(s)
volume : 3 [3-21]

Et j’ai cru pendant trente secondes que c’était encore cassé, parce que je n’entendais rien. Le bouton de volume était resté en butée basse, au minimum. Il y a une justice poétique à finir une journée de débogage sur un problème de volume.

Mais à part ça : la carte a marché du premier coup, sans aucune retouche. Pas un fil volant, pas une piste à gratter, pas une résistance à remplacer. Pour une première carte dessinée par quelqu’un qui ne savait pas ce qu’était une empreinte trois mois plus tôt, je ne pensais vraiment pas que ça arriverait.

Il ne restait plus qu’à tout remonter dans le boîtier, cette fois pour de bon.

Le boîtier ouvert, la carte verte vissée au fond et le lecteur NFC fixé sous le couvercle.
Le montage final, couvercle ouvert.
Vue de dessus de la carte vissée dans le fond du boîtier imprimé, faisceaux branchés.
La carte en place sur ses inserts. Plus rien ne pendouille.

Le logiciel

« Papa, on a déjà écouté celle-là »

C’est la remarque qui a déclenché toute la partie logicielle, et c’est celle qui ramène au point de départ. Une boîte avec un catalogue figé, même un catalogue à moi, redevient exactement le problème que je voulais éviter. Il fallait que le contenu nous appartienne, et qu’il puisse changer sans outil, sans câble et sans moi.

Tout passe par une page web, parce qu’il n’y a pas d’écran

La boîte sert sa propre page. On tape son adresse dans un navigateur, depuis le téléphone ou l’ordinateur, et on y voit les figurines, les histoires présentes sur la carte SD et ce qui joue en ce moment. Rien à installer, rien à mettre à jour, pas de compte.

Pour la toute première mise en route, elle ouvre son propre réseau WiFi. Le téléphone qui s’y connecte affiche tout seul la page de réglage, exactement comme dans un hôtel : la boîte répond sa propre adresse à n’importe quelle question de nom de domaine, ce qui pousse le téléphone à ouvrir la page sans qu’on lui demande rien. On choisit son réseau dans une liste, on tape le mot de passe, elle rejoint la maison et referme son réseau derrière elle.

La première version faisait ça en Bluetooth. Ça marchait, mais il fallait une application dédiée, ce qui est intenable pour un objet qu’on voudrait offrir, et la pile Bluetooth pesait 300 Ko de mémoire, soit neuf pour cent de tout ce dont dispose la puce, pour servir une seule fois dans la vie de la boîte. Je l’ai jetée sans regret.

Ses propres MP3

On envoie les fichiers depuis la page, ils arrivent sur la carte SD, on les associe à une figurine. Une figurine porte autant de pistes qu’on veut, dans l’ordre qu’on veut, et elles s’enchaînent jusqu’à la dernière sans reboucler. Ça ouvre tout : enregistrer sa propre voix pour raconter une histoire aux enfants quand on n’est pas là, mettre les musiques qu’ils réclament en boucle, déposer ce qu’on trouve en ligne. MP3 et M4A, les deux formats qui sortent d’un téléphone ou d’un Mac sans avoir à convertir quoi que ce soit.

Une figurine, une URL, et voilà une radio

Une piste n’est pas forcément un fichier. On peut donner une adresse web à une figurine, et la boîte s’y connecte pour lire le flux au fil de l’eau, sans rien stocker. Elle ouvre la connexion, reçoit l’audio par petits morceaux, les décode et les envoie à l’amplificateur en gardant toujours quelques secondes d’avance en réserve, pour absorber les hoquets du réseau. Si la connexion tombe, elle réessaie plusieurs fois avant d’abandonner, parce qu’un WiFi de maison a ses trous et qu’un enfant de deux ans n’a pas à comprendre pourquoi la musique s’est arrêtée.

Mes enfants ont donc des stations de radio qui ressemblent à des bonshommes en bois, et je trouve ça très satisfaisant.

Et elle se met à jour toute seule, par le WiFi

C’est la partie dont je suis le plus fier, parce qu’elle règle un problème propre aux objets finis. La boîte est vissée, montée, posée dans le salon. Si je veux corriger quelque chose, je ne vais pas la démonter tous les quinze jours. Donc elle va chercher ses nouvelles versions toute seule.

Elle interroge une adresse fixe, écrite en dur dans son programme et volontairement impossible à changer depuis le réseau. C’est un choix de sécurité : une boîte qui accepterait qu’on lui dise où chercher son logiciel accepterait qu’on lui fasse installer n’importe quoi, et quelqu’un sur le même WiFi suffirait.

S’il existe une version plus récente, un bouton apparaît dans la page. Elle la télécharge dans une seconde zone de mémoire, celle qui ne tourne pas, vérifie l’empreinte du fichier reçu, et ne bascule dessus que si tout est intact. Une coupure de courant en plein transfert ne la rend donc jamais muette : au pire elle redémarre sur l’ancienne version, comme si de rien n’était.

Note d'atelier

Le filet de sécurité, et la fois où il n’aurait rien pu faire

Reste le cauchemar d’un objet fermé : une version qui démarre correctement mais dont le réseau est cassé. Elle est valide, la boîte bascule dessus, et il n’existe plus aucun chemin pour la corriger. D’où une période d’essai : une version fraîchement installée doit prouver qu’elle sait se connecter. Trois démarrages sans jamais voir le réseau, et la boîte revient d’elle-même à la précédente, avant même d’allumer sa radio.

Ça a servi pour de vrai. Une version que j’avais publiée rouvrait son portail de configuration alors qu’elle connaissait parfaitement le réseau de la maison : elle lisait ses identifiants enregistrés trop tôt, avant que la radio ne soit démarrée, et concluait qu’elle n’en avait aucun. Je n’ai rien eu à faire. Au bout de trois démarrages, elle est revenue toute seule à la version d’avant, et j’ai pu réparer tranquillement.

Même famille d’erreur, en plus drôle : chaque boîte ouvre un réseau qui porte les quatre derniers chiffres de son adresse matérielle, pour que deux boîtes dans la même maison restent distinctes. Sauf que je lisais cette adresse avant le démarrage de la radio, moment où elle répond six zéros. Toutes les boîtes du monde se seraient appelées Marelleo-0000.

Et une fois, le filet n’aurait rien pu faire. Mon script de publication ne compilait qu’un seul des deux matériels, le prototype. La carte imprimée aurait reçu l’image de l’autre : brochage audio et carte SD permutés, mémoire cherchée sur le mauvais bus, et un en-tête annonçant 16 Mo de mémoire sur une puce qui en a 8. Le pire, c’est que la période d’essai ne l’aurait même pas rattrapée, puisque le WiFi, lui, aurait parfaitement fonctionné. Elle serait devenue sourde et aveugle en se croyant en bonne santé. On a trouvé ça juste avant d’appuyer sur le bouton.

Dernière anecdote, pour ceux que le détail amuse. Un jour, la mise à jour s’est mise à échouer sans le moindre message d’erreur : le transfert démarrait, avançait, et la boîte redémarrait d’un coup, en silence. Or une panne silencieuse en dit long. Pas d’erreur veut dire que le programme n’a pas eu le temps d’en écrire une, donc qu’il ne s’est pas arrêté, mais qu’il a été interrompu. La tâche de téléchargement disposait de 8 Ko de pile, et j’y avais posé un tampon de 4 Ko. Il ne restait plus rien pour la poignée de main chiffrée de la connexion sécurisée. C’est le silence lui-même qui était l’indice.

Ce que ça donne

Trois enfants, trois usages que je n’avais pas prévus

C’est le meilleur moment du projet, et il n’était dans aucun cahier des charges. Chacun s’est approprié la boîte à sa façon, et aucune des trois façons n’est celle que j’avais imaginée.

Une figurine posée, une histoire qui tourne. Au milieu des autres objets, elle ne dépareille pas, et c'est à peu près tout ce que je lui demandais.

7 ans

Ses playlists de musique sur une figurine, ses histoires sur une autre, et des podcasts sur les insectes. Elle choisit, elle réclame des ajouts, elle gère son catalogue.

5 ans

Des histoires. Beaucoup d'histoires, enchaînées sur une même figurine jusqu'à la dernière piste, et réécoutées jusqu'à ce que je les connaisse par cœur.

21 mois

Ses berceuses, et ses podcasts pour tout-petits en direct. Merci France Inter et Radio Pomme d'Api.

Une figurine, un geste, et chacun a sa propre boîte dans la même boîte. C’est exactement ce que je cherchais au départ, et c’est arrivé par le logiciel plutôt que par le catalogue. La différence tient en une phrase : personne ne me vend le contenu, et personne ne peut me le retirer.

Dommage collatéral

J’ai acheté une imprimante 3D et monté un atelier à la cave

Il reste une conséquence que je n’avais pas prévue, et elle ne concerne pas la boîte.

Je commençais à abuser sérieusement de la gentillesse de François, dont l’imprimante avait sorti tous mes boîtiers. Et surtout, je prenais beaucoup trop de plaisir à tout ça : les soirées, les week-ends, des heures parfaitement indéfendables passées à devenir maniaque sur un arrondi de deux millimètres ou sur la profondeur d’un logement. Je me suis dit que ce ne serait pas mon dernier projet d’électronique, parce que j’aime vraiment ça. Alors j’ai acheté une Bambu Lab A1.

Je me suis raconté que c’était un achat utile : les pièces de rechange qu’on ne rachète plus, les jouets qu’on répare au lieu de les jeter, le rangement sur mesure. Tout ça est vrai. Ce n’était pas la raison.

Et je l’ai installée dans le salon. Une machine d’un demi-mètre de côté, qui souffle, qui vibre, qui tourne quatorze heures d’affilée et qui sent le plastique chaud, au milieu de la pièce où Marceau apprend à marcher. Sur le moment, ça m’a paru parfaitement raisonnable. Je me suis fait sortir dans les règles, et c’était entièrement mérité : on n’installe pas une unité de production dans un salon.

La buse d'une imprimante 3D en train de déposer du plastique fondu sur le plateau.
Regarder une imprimante travailler est un piège : on s'assoit cinq minutes devant, on y passe une heure.

J’ai donc tiré une ligne réseau par CPL jusqu’à la cave et je m’y suis monté une station d’impression. Et c’est franchement mieux que ce que j’imaginais : je lance une impression depuis le canapé, elle tourne dans le noir deux étages plus bas, et je descends chercher la pièce le lendemain matin. Plus de bruit et plus d’odeur de plastique chaud à l’étage, et une pièce de vie qui reste une pièce de vie. La cinquième version du boîtier est sortie de là. C’est celle qui est sur la photo d’ouverture.

Tout est en ligne

Si vous voulez la construire

J’ai mis tout ce qu’il faut dans un dépôt public : github.com/Zebra-Rodeo/marelleo.

Les trois pièces du boîtier à imprimer, les fichiers de fabrication de la carte prêts à déposer chez JLCPCB avec la nomenclature et les positions des composants, le code du micrologiciel, et une documentation qui part de zéro : quoi acheter et pour combien, dans quel ordre s’y prendre, le brochage de la version sur modules, et les pièges qui m’ont coûté des soirées. Le tout sous licence MIT, donc faites-en ce que vous voulez.

On peut commencer par la version sur breadboard, sans souder une seule fois, et ne commander la carte que si on y prend goût. C’est le chemin que j’ai suivi, et c’est celui que je conseille : la breadboard est l’endroit où se tromper ne coûte rien.

Et il y a deux façons de s’en servir. La refaire telle quelle, en suivant les fichiers, pour obtenir la même boîte que celle de mes enfants. Ou la prendre comme point de départ : un autre boîtier, un autre haut-parleur, d’autres boutons, le code modifié à votre goût. Une seule chose à savoir dans ce cas, et elle est écrite en gros dans le dépôt : le micrologiciel est écrit pour ce montage-là, le brochage vit dans le code, et un fil déplacé veut dire une ligne à changer. Je l’ai signalée parce que c’est exactement le genre de détail qui fait chercher une panne pendant une soirée.

Si vous en construisez une, j’aimerais beaucoup la voir.

Le nom

D’où vient Marelleo

De marelle, ce jeu où l’on avance en posant le pied sur une case. Mais surtout de Marceau, Ella et Léonie, à qui la boîte appartient.

Merci à François Lagunas pour l’imprimante, les conseils et la patience. Et à ma femme, qui a vécu des mois avec ce projet étalé sur les soirées et les week-ends, et qui a dit oui à l’imprimante avant que j’aie pu placer un seul argument.

Arnaud Aubry
Arnaud Aubry Founder, building and sharing what I learn