Transparence. Cet article a été rédigé par Claude, l’IA d’Anthropic avec laquelle j’ai conçu ce projet, à partir de nos échanges et de la documentation du Jukebox. Les rendus 3D, les captures et le graphique viennent aussi de ce travail ; les photos de fabrication sont les miennes. Je l’ai relu et validé. La section « Le point de vue de l’IA » est celle de Claude.

La vieille radio de la cuisine avait fait son temps. Plutôt que d’en racheter une, j’ai voulu fabriquer la nôtre : une radio murale à écran tactile, qui donne l’heure, la météo, la température des pièces et lance nos webradios d’un geste. On l’a baptisée le Jukebox.

Le vrai cahier des charges tenait en une phrase, et les habitués du bricolage domestique la connaissent sous un nom : le WAF, Wife Acceptance Factor. L’objet doit être beau, se faire oublier, et marcher tous les matins sans que personne n’ait à « redémarrer un truc ». Idéalement pendant dix ans.

Le Jukebox terminé, habillé de son tissu noir et crème, posé avant d’être accroché (ici avec l’interface d’origine, encore bleue)

Cet article raconte le design au sens large : la boîte, la façade, l’interface, le son, et ce qui ne se voit pas, la fiabilité.

Le cahier des charges

Avant le matériel, on a fixé ce que le Jukebox devait faire, et surtout ne pas faire :

  • Une seule chose à l’écran, en permanence : l’heure en grand, la météo, les températures de la maison et les radios. Pas de bureau, pas de navigateur visible, pas de menu.
  • Pas de lecture automatique. Au démarrage, la radio est sélectionnée mais reste en pause. C’est à nous d’appuyer sur Lecture.
  • Un arrêt automatique après trois heures sans aucune action, pour la radio oubliée en partant. Deux minutes avant, l’écran prévient.
  • Pas de bouton de volume physique. C’était tentant pour le style, mais un bouton de plus, c’est un trou de plus dans la façade et une pièce de plus qui vieillit.
  • Discret la nuit : l’écran baisse à presque rien de 22 h à 7 h, et un toucher le rallume une minute.

Le matériel

ÉlémentChoix
OrdinateurRaspberry Pi 4 (4 Go), Raspberry Pi OS
ÉcranRaspberry Pi Touch Display 2, 7 pouces, tactile
AmpliCarte DigiAMP+, qui alimente aussi le Pi : une seule alimentation pour tout
Haut-parleurs2 × SB Acoustics SB65WBAC25-4 (6,5 cm)
SondesClé Zigbee Sonoff ZBDongle-P, Zigbee2MQTT, sondes Sonoff SNZB-02
RadiosWebradios déclarées dans Navidrome, sur le NAS de la maison

Tout a commencé par un prototype tout simple : l’écran posé sur une planche, le logiciel déjà fonctionnel.

Le premier prototype : l’écran tactile sur une planche nue, avec la première version de l’interface

Les haut-parleurs ont été une affaire. Le premier essai utilisait des excitateurs (des Dayton Audio DAEX25Q-4), ces petits moteurs qui font vibrer une surface pour la transformer en haut-parleur. Sur le papier, l’idée était élégante : une façade sans aucune grille, c’est la planche elle-même qui chante.

Au dos de la planche : un excitateur à gauche, le Raspberry Pi coiffé de la DigiAMP+ au centre, la clé Zigbee à droite

En vrai, le son était désagréable, et l’un des deux faisait couper l’ampli. On est revenus à de vrais haut-parleurs, petits mais sérieux.

Un des deux haut-parleurs SB Acoustics SB65WBAC25-4 de 6,5 cm

La boîte

Contrainte de départ : une seule scie sauteuse, et un objet assez fin pour s’accrocher au mur d’une cuisine.

Vue arrière du modèle 3D : la planche, le cadre en tasseau, le compartiment central du Pi et une chambre close pour un haut-parleur

  • Une planche de 410 × 140 mm porte l’écran et les deux haut-parleurs.
  • Un cadre arrière en tasseau de 30 × 10 mm. La cote n’est pas un hasard : les borniers de la DigiAMP+ font 28 mm de haut.
  • Deux chambres closes d’environ 0,2 litre, une par haut-parleur, fermées par des dos en MDF de 3 mm collés. Un haut-parleur dans une petite boîte fermée a plus de grave et moins de résonances qu’à l’air libre.
  • Un compartiment central ouvert pour le Pi et l’ampli, pour qu’ils respirent.
  • À l’intérieur des chambres, des disques de coton collés à plat sur les parois amortissent les réflexions, et les passages de câbles sont colmatés pour que les chambres soient vraiment étanches.
  • Accroché par un fil et deux pitons sur une seule vis : un seul trou dans le mur. Deux patins en caoutchouc en bas l’empêchent de bouger et de vibrer.

En pratique, ça s’est fait en trois temps : découper les deux trous des haut-parleurs dans la planche, coller le cadre et les cloisons au serre-joint, puis vérifier que tout tient en place.

La planche découpée : les deux trous des haut-parleurs et la fenêtre de l’écran

Collage du cadre en tasseau et des cloisons, au serre-joint

Le cadre terminé : les deux chambres des haut-parleurs aux extrémités, le compartiment du Pi au centre

Avant de couper quoi que ce soit, Claude a écrit un script Python pour Blender qui génère le modèle 3D à partir des cotes. Changer une épaisseur, relancer le script, regarder le rendu : on a validé l’assemblage sur écran avant de toucher au bois.

La façade

Toute la boîte est habillée d’un tissu d’ampli guitare noir et crème, du type « Salt & Pepper » des amplis Marshall. Le tissu fait aussi office de grille devant les haut-parleurs : on ne les voit pas, on les entend. L’écran est posé par-dessus le tissu, sans découpe compliquée.

Le dos, tissu posé et agrafé, avant la pose des fonds : les deux haut-parleurs dans leurs chambres, l’électronique au centre

Une chambre de haut-parleur avant fermeture : le câble passe dans la cloison, avant d’être colmaté

Pour la finition, on a utilisé le même script Blender pour essayer des variantes sans rien acheter :

Six variantes de façade en rendu 3D : liseré laiton, cadre en noyer, plaque laiton, joues en noyer

Liseré laiton, cadre en noyer, joues en bois, plaque gravée… Le choix final, c’est la version qui fait la couverture de cet article :

  • des coins métalliques noirs façon flight-case, comme sur les amplis de scène ;
  • un liseré doré de 3 mm en ruban vinyle, collé sur le bord noir du verre de l’écran ;
  • une petite plaque en laiton « Jukebox ».

La pose viendra quand les pièces seront là. L’intérêt des rendus, c’est d’avoir tranché le débat avant de dépenser quoi que ce soit.

L’interface

Le logiciel est une petite application maison : un serveur en Python et une page web affichée en plein écran par Chromium. Elle sert aussi de télécommande : la même page s’ouvre depuis un téléphone de la maison.

L’écran du Jukebox : l’heure, la date, la météo, les températures du dehors, du salon et des chambres, et les radios

Sur cet écran de 7 pouces :

  • L’heure, grande et lisible de l’autre bout de la cuisine.
  • La météo de Météo-France : les prochaines heures, les sept jours, et la pluie dans l’heure.
  • Les sondes : dehors et le salon en grand, avec la tendance et le minimum et le maximum du jour, puis les trois chambres sur une ligne.
  • Les radios, avec leurs logos. La radio en cours est en haut, avec le volume et le bouton Lecture.

Le thème « tissu » est né de la façade. L’interface d’origine était bleue, froide, très « tableau de bord ». On l’a réaccordée au tissu :

  • un noir chaud, un texte crème, des accents laiton ;
  • de fins liserés dorés autour des cartes ;
  • l’horloge et les températures dans une police à empattements (C059).

Une première version de l’horloge, en caractères fins, était élégante mais moins lisible de loin. Elle est passée en gras : en cuisine, on lit l’heure en passant.

Le son : du réglage à l’oreille à la mesure

Deux haut-parleurs de 6,5 cm ne feront jamais trembler les murs. Mais entre un son « petite boîte » et un son agréable, il y a beaucoup de marge, et c’est là qu’on a passé le plus de temps.

D’abord le câblage. La fiche des haut-parleurs n’indique pas lequel des deux fils est le « + ».

Les sorties de la DigiAMP+ : rouge sur le +, noir sur le −, câblé de la même façon des deux côtés

Pour vérifier la phase, Claude a fait jouer au Jukebox le même extrait de musique dans deux versions, A puis B, annoncées par une voix de synthèse. La bonne version sonne nettement plus pleine. Au passage, on a découvert que gauche et droite étaient inversées au câblage. C’est corrigé par logiciel, sans ressouder.

Ensuite l’oreille. Une fois les chambres fermées, on a réglé l’égaliseur en direct, morceau après morceau, avec des comparaisons A/B :

  • « grave un peu juste, son un peu boxy » ;
  • puis « manque de coffre » ;
  • puis « ça sonne rikiki ».

Chaque remarque a donné une correction : un coupe-bas plus bas, du grave, de l’élargissement stéréo, et surtout un grave virtuel. Ce filtre ajoute les harmoniques des notes trop basses pour ces petits haut-parleurs, et l’oreille reconstitue la note. C’est l’astuce des enceintes Bluetooth.

Enfin la mesure. J’ai enregistré le Jukebox au téléphone, sur un morceau que je connais par cœur. Claude a :

  1. aligné cet enregistrement à la milliseconde près sur le fichier FLAC d’origine ;
  2. comparé les deux, bande de fréquence par bande.

Le micro d’un téléphone n’est pas un micro de mesure, mais la tendance était nette :

Courbes avant et après le réglage final : la résonance de la boîte à 250 Hz disparaît, l’aigu dur s’adoucit

  • Un pic de +7 dB à 250 Hz, étroit. C’était le vrai son « boxy » : une résonance de la boîte. Notre premier réglage coupait un peu plus haut, à côté, et creusait au passage une zone utile.
  • Un médium aigu trop présent entre 2 et 5 kHz, d’où le côté « petit » et dur.
  • Un aigu un peu terne, en partie filtré par le tissu.

Le réglage final retire le pic par une encoche étroite, adoucit le médium aigu et rend un peu d’air. Une deuxième mesure, au même endroit, a confirmé l’effet : la résonance a disparu. Ce qui reste, sous 200 Hz, c’est la physique de deux haut-parleurs de 6,5 cm. Pour finir, on a monté le volume général d’un cran : à fond, ça reste propre, sans grésillement.

Les sondes de la maison

Le Jukebox est aussi le centre Zigbee de la maison. Une sonde dehors, une au salon, une dans chaque chambre : leurs températures s’affichent sur l’écran.

Le problème est arrivé avec les chambres. Les sondes sur pile ne relaient pas le signal, et depuis la cuisine, la plus éloignée captait le Pi à la limite de la coupure. Elle décrochait à chaque redémarrage. Une autre est restée muette dès le premier jour, et a fini par vider sa pile à force de chercher le réseau.

La solution tient en deux prises connectées Zigbee, une dans le couloir et une au salon. Branchées au secteur, elles relaient le signal. Mais il y a une subtilité : une sonde garde le relais par lequel elle s’est connectée la première fois. Il a donc fallu réappairer chaque sonde à son emplacement définitif, pour qu’elle choisisse la prise la plus proche.

SondeSignal avantSignal après
Chambre la plus éloignée0 à 25~100
Deuxième chambre~35~115
Troisième chambremuette~155
Dehors~21~100

(Qualité de liaison Zigbee, ou LQI, sur une échelle de 0 à 255.)

Chaque mesure est désormais enregistrée, une par minute et par sonde, conservée un peu plus d’un an. À l’écran, toucher une sonde affiche sa courbe. Et depuis un PC, une page « Historique » superpose toutes les pièces, en température, en humidité ou en point de rosée, utile en hiver pour savoir où la buée menace :

Page Historique : les températures de la maison sur une semaine, toutes les pièces superposées, avec un tableau des minimums, moyennes et maximums

Le pic de près de 40 °C sur la courbe « Extérieur », ce n’est pas la canicule : c’est la sonde, passée dans mes mains et au soleil pendant les manipulations.

La fiabilité, ou le design qu’on ne voit pas

Un objet familial se juge sur le jour où il ne marche pas. On a donc pris le problème à l’envers : qu’est-ce qui peut casser, et que se passe-t-il alors ?

Ce qui peut arriverCe qui se passe
Le navigateur planteIl est relancé aussitôt, sans bulle « Restaurer les pages ? »
Le navigateur se fige sans planterL’écran est surveillé : 5 minutes sans signe de vie, et le navigateur est relancé
Le Pi se bloque complètementLe chien de garde matériel du Pi le redémarre
Coupure de courantAu retour, tout revient seul en moins d’une minute, radio sélectionnée mais en pause
Le NAS est éteintLa liste des radios est gardée en mémoire sur le Pi : les flux viennent d’Internet, la radio fonctionne
Une mise à jour casse quelque choseSeuls les correctifs de sécurité Debian s’installent seuls, sans redémarrage. Navigateur, noyau et logiciels Zigbee ne bougent qu’à la main

Des détails comptent aussi pour le WAF :

  • pas de curseur de souris, même après un toucher ;
  • pas de menu au toucher long ;
  • pas de zoom au pincement ;
  • pas de retour arrière par balayage.

Un bug est remonté en route, typique du Raspberry Pi. Le Pi n’a pas d’horloge sauvegardée : au démarrage, son heure retarde, puis elle saute de plusieurs heures quand il se met à l’heure par le réseau. L’arrêt automatique « trois heures sans activité » croyait donc que trois heures s’étaient écoulées, et coupait la musique au bout de quatre secondes. Il compte désormais le temps écoulé indépendamment de l’heure.

Enfin, la surveillance. Le Jukebox expose de petites vérifications de santé, que mon instance Uptime Kuma interroge en continu :

  • la radio et son réseau Zigbee ;
  • les sondes muettes ;
  • l’écran figé ;
  • l’état de la carte SD : erreurs de lecture, passage en lecture seule, volume écrit par jour.

Une sauvegarde quotidienne part vers mon PC. Le test final était simple : débrancher, rebrancher, chronométrer. 46 secondes plus tard, tout était revenu.

Il reste un point, et c’est le plus important à dix ans : la carte SD. Celle du Pi est une carte grand public de 2019, et c’est toujours elle qui lâche en premier. Prochaine étape : une carte « haute endurance », et un clone de secours rangé dans un tiroir. Ce jour-là, la réparation se résumera à changer la carte.

Le point de vue de l’IA

Cette section est écrite par Claude.

Sur ce projet, je n’ai pas seulement conseillé : avec l’accord d’Etienne, j’avais un accès SSH au Pi, et j’ai écrit et modifié le logiciel, joué les tests de phase, appliqué les réglages d’égaliseur en direct, appairé les sondes. Ce qui a le mieux marché, c’est l’aller-retour entre ce qu’Etienne entend et ce que je mesure. Ses mots, « boxy », « rikiki », « manque de coffre », m’orientaient, et l’enregistrement au téléphone m’a montré que la résonance n’était pas là où je la cherchais. Sans la mesure, j’aurais continué à corriger à côté.

J’ai aussi fait des erreurs, et elles méritent d’être dites :

  • Une boucle trop pressée. Pour réparer une sonde, j’ai relancé une opération en boucle toutes les quatre secondes. Chaque relance faisait échouer la précédente.
  • Une commande qui m’a visé moi-même. Pendant un test, une commande destinée à figer le navigateur a aussi figé ma propre session SSH, parce que le motif recherché figurait dans ma ligne de commande.
  • Un fichier d’identifiants affiché en clair pendant un audit, parce que mon masquage cherchait un mot-clé que le fichier ne contenait pas. Je l’ai signalé tout de suite à Etienne. Une erreur de ce genre se rattrape en changeant le secret, pas en la taisant.

Rien de grave, mais c’est exactement pour cela que chaque modification a une sauvegarde de la version précédente. Et c’est pour cela qu’Etienne garde la main sur ce qui sort de la maison : cet article, par exemple.

En résumé

Le Jukebox n’a rien d’exceptionnel pièce par pièce : un Raspberry Pi, un écran, deux petits haut-parleurs, des prises connectées. Ce qui en fait un objet qu’on garde, c’est la somme des petites décisions :

  • une boîte pensée avant d’être coupée ;
  • un tissu qui a dicté les couleurs de l’interface ;
  • un son corrigé à la mesure plutôt qu’au hasard ;
  • et surtout une fiabilité traitée comme une fonction à part entière.

Le meilleur compliment, à la maison, ne sera pas « qu’est-ce que c’est beau ». Ce sera, dans quelques années : « ah, on a toujours la même radio ? »