Raspberry Pi : Transformer votre enceinte en enceinte connectée grâce à Balena Sound

Matthieu Legouge
Spécialiste Hardware
04 mai 2020 à 17h36
0
Dock audio smartphone

Caster de la musique très simplement sur n'importe quelles enceintes ou système hi-fi à l'aide d'un Raspberry Pi et un tout petit budget ! C'est ce que nous vous proposons dans ce tutoriel où nous allons découvrir pas à pas un OS destiné à cet effet : balenaSound.

AirPlay, Bluetooth et Spotify Connect pour faire revivre votre matériel audio

Nous sommes nombreux à disposer de matériel audio « d'ancienne génération », avec des amplis, chaînes Hi-Fi et autres enceintes qui offrent un son de grande qualité, mais sans fonctionnalités modernes, notamment en termes de connectivité sans-fil et de compatibilité avec les applications populaires que nous sommes de plus en plus nombreux à utiliser au quotidien (Spotify, Deezer, Tidal, Qobuz et ainsi de suite).

Il est en effet assez agréable d'accéder simplement à ces services et d'utiliser notre smartphone comme une simple télécommande afin de caster nos albums préférés en multiroom, sur une enceinte connectée, ou un téléviseur.

Faut-il pour autant remplacer nos matériels qui ne disposent pas de ces fonctionnalités ? Heureusement non et les solutions pour caster de l'audio sur ces appareils ne manquent pas, les plus connues étant sans conteste celles de Google et d'Amazon avec le Chromecast et l'Echo Input. D'autres solutions sont évidemment présentes sur le marché, avec chacune leurs avantages, inconvénients et limitations ; mais elles partagent souvent un même point faible, à savoir d'être des systèmes propriétaires d'une part et de couter plus ou moins chères de l'autre.


Raspberry Pi : DIY par excellence

Alors comment transformer vos vielles enceintes pour leur apporter des fonctionnalités sans fil et utiliser vos appareils mobiles comme télécommande ?

Pour prolonger notre guide Raspberry Pi, nous vous proposons aujourd'hui de découvrir une solution très peu couteuse (dès 20 €, oui oui !), relativement simple à mettre en œuvre, efficace et qui vous évite d'avoir affaire à un assistant vocal (ou pas, à vous de décider). Dans cet article qui fera office de test et de tutoriel, nous allons voir comment faire ceci à l'aide d'un simple Raspberry Pi et de balenaSound, un OS qui vous permet de diffuser des flux audio à partir de plusieurs sources sur un ou plusieurs périphériques audio.

Avec quels matériels s'équiper pour utiliser balenaSound ?

Avant de rentrer dans le vif du sujet, il convient d'abord de savoir ce que nous avons besoin pour faire fonctionner balenaSound et métamorphoser nos systèmes audio qui dormaient au grenier.
BalenaSound tourne sur la plupart des versions de Raspberry Pi et autorise donc une assez grande souplesse concernant le matériel requis, ce qui vous laisse finalement le choix selon vos besoins et envies, mais aussi en fonction du budget que vous désirez allouer à ce projet.

Pour résumer, il faut réunir :

  • Un Raspberry Pi, au choix entre les versions Zero W ; 3A ; 3B et 3B+ et Pi 4 B. Dans notre cas nous avons utilisé un Raspberry Pi 3B+.

Vous trouverez de plus amples informations concernant le choix du Raspberry Pi en consultant notre article dédié. Enfin, notons que la solution la moins onéreuse (Pi Zero W) demande d'acquérir un DAC à connecter sur les broches GPIO. Il s'agit d'un convertisseur numérique vers analogique qui offre une meilleure qualité audio, mais qui dans ce cas permet surtout de palier à l'absence de sortie audio sur ce modèle.

Pimonori Pirate Audio
Un Pi Zero W équipé d'un HAT Pimonori Pirate Audio feront parfaitement l'affaire



  • Une paire d'enceintes, une chaîne Hi-Fi, ou autres systèmes audio, ainsi qu'une connectique au choix : jack 3.5 mm ou RCA.

En option :

  • Un boitier pour Raspberry Pi.

Boitier Pi 3B / DAC
Il existe de nombreux boitiers pour Raspberry Pi, mais attention à bien choisir un produit compatible avec votre modèle, et si besoin avec un DAC

Oui, nous avons déjà évoqué le cas du boitier ci-dessus. En vérité, il n'est pas nécessairement indispensable, mais il permet de protéger votre installation notamment contre les mauvaises manipulations et les courts-circuits. D'un autre côté, il faut bien dire que certains boitiers sont très pratiques et embarquent des fonctionnalités supplémentaires. On pense par exemple au boitier avec support VESA, à ceux qui permettent d'intégrer un HAT comme c'est le cas du DAC que nous évoquons ci-dessous, une ventilation, ou encore un bouton power on / off et ainsi de suite. Esthétiquement parlant, un boitier s'intégrera aussi bien mieux dans votre bureau ou votre salon, un point qui n'est pas négligeable vu l'application qui en est faite ici.

  • Un convertisseur numérique vers analogique (DAC).
PiFi DAC + v2.0
Le PiFi DAC + v2.0, une carte d'extension peu couteuse dotée d'une puce PCM 5122

Il n'est pas indispensable, mais permet, selon les modèles, d'augmenter considérablement les performances audio de votre Raspberry Pi. Dans notre cas, nous sommes équipés du DAC PCM 5122 d'InnoMaker, qui offre des taux d'échantillonnage allant jusqu'à 384 kHz/32 bits. Vous retrouverez la liste officielle des DAC compatibles sur le GitHub de balenaLabs. Si vous possédez déjà un DAC pour votre framboise, rien ne vous empêche de tester son bon fonctionnement, même si celui-ci n'est pas présenté dans la liste. Si c'est le cas, n'hésitez pas à nous dire à quel DAC vous avez eu recours et si celui-ci fonctionne bien avec balenaSound.

Mise à jour du 04/05/20 :

Test du boitier Nuxii XG +


À la recherche d'un boitier capable d'accueillir notre installation destinée à balenaSound, nous avons pu obtenir et tester un exemplaire du Nuxii XG +, un Pi Case de conception française qui nous semble parfaitement adapté à bien des situations : media center, console rétrograming et ainsi de suite.

Affichant une compatibilité avec une grande variété de HAT et de DAC, le Nuxii XG + apparait comme un choix très pertinent dans notre cas. Par ailleurs, son caractère modulaire lui assure une grande polyvalence, il est ainsi possible d'obtenir un boitier évolutif, prenant en charge notamment un écran LCD, un récepteur infrarouge et sa télécommande, ou encore un bouton poussoir avec LED.

Hormis cela, opter pour un boitier est également un atout pour protéger notre installation de la poussière et des courts-circuits, tout en profitant d'un objet qui s'intègre à un décor de salon. Sur ce point, le Nuxii XG + est parfait, sobre et épuré, solide et très bien construit, en bref : efficace.

Test Pi case Nuxii XG x balenaSound_1
© Matthieu Legouge pour Clubic

Après test, qu'en est-il du boitier Nuxii XG + dans notre cas précis ? Nos besoins étaient les suivants : protéger notre installation avec un boitier compatible DAC et dans l'idéal avoir la possibilité d'éteindre/allumer notre Pi à l'aide d'un simple bouton plutôt que de devoir passer par balenaCloud et être ensuite dans l'obligation de redémarrer manuellement notre Pi. À ce sujet, si vous cherchez à programmer cette fonction dans balenaOS, vous trouverez les informations nécessaires dans ce post de forum de balena.

Revenons-en au boitier : son montage est facile, le Raspberry Pi se fixe avec ses entretoises, toutes les visseries nécessaires sont fournies avec le boitier. L'emplacement censé accueillir l'écran LCD est laissé vide ici puisque nous n'en avons pas l'utilité, il est remplacé par un plexi transparent, lui aussi fourni. La façade embarquant le bouton poussoir nécessite quant à elle d'avoir un peu de colle forte sous la main, 4 câbles de raccordement présertis l'accompagnent. Enfin, vous avez le choix entre deux capots et plusieurs coloris, nous avons opté pour le transparent. Pour terminer, 4 pieds adhésifs apportent l'adhérence et la stabilité nécessaire au boitier.

Test Pi case Nuxii XG x balenaSound_2
© Matthieu Legouge pour Clubic

D'un côté le boitier XG + nous a comblés par ses évidentes qualités, mais d'un autre son utilisation dans le cadre de notre projet avec balenaSound a été moins convaincante. La seule et unique raison est que pour profiter du bouton et de la fonction power on/off, nous devons nous passer du capot de ce Nuxii XG +. Bien obligé d'utiliser les broches GPIO déportées sur notre DAC, l'embout des câbles reliant le bouton au Pi vient bloquer la fermeture du capot une fois qu'ils sont en place. En gros, il manque un demi-centimètre. Inutile d'essayer de "forcer", les broches GPIO risqueraient de plier. Nous devons donc faire un choix : utiliser le bouton poussoir et laisser notre installation prendre la poussière, ou placer le capot et tirer une croix sur le bouton poussoir.

Hormis cela, l'autre inconvénient avec ce boitier est sans doute l'accès difficile à la carte SD. Dans le cadre d'une installation qui n'est pas vouée à bouger, cela ne pose aucun problème, mais si vous avez besoin d'avoir régulièrement accès à la carte microSD, c'est déjà plus délicat. Il ne s'agit pas pour autant d'un défaut, la carte SD se déloge assez facilement, mais pas à la main ! Dans mon cas, cela fonctionne très bien avec une pince brucelle.


Remarques sur le choix du matériel et le budget requis

En introduction de cet article, nous avons insisté sur le fait que la solution présentée est très accessible en matière de budget. À voir le matériel nécessaire, il est facile de penser que ce n'est pas le cas, avec une facture qui peut vite monter si l'on s'équipe avec un Pi 4 B, un DAC et un boitier, sans compter la connectique et la carte microSD. Seulement, à l'instar de bien des projets pilotables avec un Raspberry Pi, celui-ci est propice à la réutilisation et au recyclage de matériels, à offrir une seconde vie à de l'électronique qui attendait peut-être sagement dans un placard.

balenaSound_test_1
Notre configuration de test est assez minimaliste : kit d'enceintes 2.0 Edifier, Pi 3B+ et DAC InnoMaker © Matthieu Legouge pour Clubic

C'est évidemment le cas des enceintes, l'objectif n'étant pas ici d'aller acheter un système audio ; mais c'est aussi le cas des différents accessoires nécessaires, sans parler du matériel optionnel. En clair, si vous avez un ou plusieurs Raspberry Pi au fond d'un tiroir, c'est l'heure de les dépoussiérer ! D'un autre côté l'achat d'un Pi 4 n'est, par exemple, pas vraiment recommandé. Un modèle moins cher fait parfaitement l'affaire et rendra à peu de choses près le même service que le Pi 4 dans ce cas précis. À titre d'exemple et pour prendre mon cas, il me restait deux Pi 3 B + d'un précédent projet, plusieurs cartes microSD qui attendaient que je leur trouve un emploi, ainsi qu'une paire d'enceintes de très bonne facture que j'utilisais à vrai dire assez rarement. Au final ce projet m'aura coûté 25 €, car je suis pointilleux sur la qualité sonore et ai ressenti la nécessité d'investir dans un DAC.

balenaSound : prérequis et logiciels à télécharger

Réunir le matériel c'est une chose, mais il va aussi falloir mettre un peu les mains dans le cambouis. Rassurez-vous, rien de bien compliqué, la mise en œuvre de ce projet est finalement relativement simple.

balenaSound_logo

Côté logiciel vous aurez besoin de :
  • balenaEtcher, ou tout autre outil permettant de flasher votre carte SD, comme Raspberry Pi Imager par exemple.
  • balenaSound : c'est le cœur du projet, à installer sur votre Raspberry Pi et à télécharger directement depuis GitHub.
  • balena CLI tools : il s'agit d'une interface en ligne de commande, à déployer sur votre ordinateur afin de "poussez", de déployer, l'OS sur votre Raspberry Pi.

Enfin, un compte balenaCloud (gratuit jusqu'à 10 projets) est nécessaire. Il vous permettra de paramétrer et gérer votre Raspberry Pi depuis votre ordinateur, à l'aide d'un votre navigateur web via le dashboard de balenaCloud.

Maintenant que nous avons tout le nécessaire, ne nous reste plus qu'à mettre en place et faire fonctionner notre projet !

Installer et utiliser balenaSound : le tutoriel

Connectez-vous sur balenaCloud

Pour commencer, vous devrez vous connecter à balenaCloud. Si vous n'avez pas encore de compte, la démarche est très simple puisque balenaCloud autorise la connexion via vos identifiants GitHub ou Google. Malgré tout, rien ne vous empêche de vous inscrire via le processus classique.

Créer le projet sur le dashboard de balenaCloud

Une fois sur le dashboard, cliquez sur "create application" afin de créer votre premier projet. Il s'agira dans un premier temps de lui trouver un nom, si possible pas trop complexe, car nous en aurons besoin de le taper dans l'interface de commande. Choisissez ensuite votre appareil ainsi que le type d'application "Starter".

Create application_balenaCloud.JPG


Ajouter un appareil à votre projet

Maintenant que votre projet est créé, ajoutez-lui un appareil en cliquant sur "Add device". Conservez les réglages de base, à savoir le type d'appareil ainsi que l'OS et sa version. Concernant la connexion réseau, vous avez le choix entre Ethernet ou WiFi + Ethernet. Notez bien que si vous choisissez seulement Ethernet, votre Pi devra être connecté à votre box avec son câble, ce qui peut s'avérer assez contraignant. Néanmoins, si vous optez pour l'une ou l'autre de ces options, vous pourrez revenir sur votre choix plus tard. Une fois le formulaire remplit, ne vous reste plus qu'à télécharger balenaOS.

balenaCloud_add_device.JPG

Comme précisé sur cette capture d'écran, faites bien attention à ne pas sélectionner votre réseau Wi-Fi 5 GHz si votre appareil ne le permet pas.

Flashez votre carte SD avec Etcher

Munissez-vous de votre carte SD et flashez-y l'image disque de balenaOS fraichement téléchargée. Etcher se charge de tout, même du formatage de la carte. Toutefois, si comme moi votre carte mémoire était partitionnée, je vous recommande alors vivement d'effectuer un formatage propre et dans les règles de l'art avec un utilitaire comme SD Card Formatter.

Flash_Etcher.JPG

Démarrez votre Raspberry Pi

Lorsque votre carte SD est prête, insérez-la dans le Raspberry Pi puis connectez l'alimentation afin de le démarrer. Inutile de le connecter à un écran, la seule chose que vous verrez est un fond d'écran avec le logo de balena.

balenaCloud_Online.JPG

Une fois démarré, l'appareil va se connecter au dashboard de balenaCloud. Au bout de quelques minutes, vous devriez le voir apparaitre avec, si tout s'est bien passé, la mention "Currently online". Si un problème survient, ne vous invitons à bien vérifier votre connexion à internet ainsi que le bon état de votre carte SD. Si le problème ne vient pas de là, d'autres solutions de dépannage sont disponibles sur le site internet de balena.

Installer balena CLI tools sur votre ordinateur

À ce stade, votre appareil est logiquement visible sur le tableau de bord et n'attends plus qu'à être transformé en un récepteur Bluetooth, AirPlay et Spotify Connect ! Pour ce faire c'est maintenant que nous avons besoin de balenaSound, projet que nous avons normalement déjà téléchargé depuis GitHub - voir "balenaSound : prérequis et logiciels à télécharger".

Avant de déployer balenaSound, il est nécessaire d'installer balena CLI tools sur notre ordinateur. Optez pour la méthode la plus simple sous Windows et macOS, à savoir le fichier exécutable. Une fois l'installation terminée, ouvrez une invite de commande (cmd) ou Windows PowerShell puis tapez les deux commandes suivantes afin de vous assurer de la réussite de l'installation :

>balena version

>balena help

Une liste regroupant l'essentiel des commandes apparait à l'écran.

balena CLI tools.JPG

Déployer balenaSound sur le Raspberry Pi

Balena CLI tools va simplement nous permettre de déployer balenaSound sur notre Raspberry Pi, l'opération est relativement rapide et simple.

Premièrement, il faut s'assurer que nous sommes dans le bon répertoire, celui où est situé le dossier nommé "balena_sound_master" (le dossier doit être décompressé). Pour cela, nous utilisons la commande CD, aussi connue sous le nom de CHDIR.

Pour ceux qui ne sont pas habitués à l'utilisation de ces commandes, voici un exemple simple. Le répertoire se trouve sur un autre disque que C:/ ? S'il se trouve sur le disque D:/, dans le répertoire Téléchargements, tapez simplement CD D:/Téléchargements. Pour remonter dans la hiérarchie des répertoires tapez CD... Pour vous rendre directement dans le répertoire, vous pouvez également copier/coller son chemin depuis l'explorateur de fichiers en utilisant la commande CD suivi d'un espace, puis le chemin du dossier.

Le lancement de la commande qui suit requiert une autorisation pour accéder à votre compte balenaCloud. Si nécessaire, tapez balena login afin de vous connecter au tableau de bord.

balena login.jpg

Maintenant que vous êtes dans le bon répertoire et que vous avez autorisé la connexion à balenaCloud, munissez-vous du nom de votre projet puis entrez la commande suivante : balena push . Dans notre cas cela donne balena push bSound_Matt.

Après quelques minutes de patience et si tout a réussi, vous devriez contempler cette jolie licorne, signe que l'installation est un succès !

bsound_release.jpg

Dans le tableau de bord, votre projet devrait désormais montrer que tout est opérationnel, comme le montre la capture d'écran ci-dessous. Dès lors, vous pouvez connecter votre matériel hi-fi à votre Raspberry Pi pour commencer à l'utiliser. Nous y reviendrons un peu plus loin après avoir abordé le cas du DAC.

balena_dashboard.JPG


Ajouter un DAC et améliorer les performances audio du Pi

L'ajout d'un DAC à votre configuration peut être particulièrement pertinent si votre Hi-Fi propose un son de grande qualité. En effet, nativement les performances audio d'un Raspberry Pi ne sont pas exceptionnelles, un DAC sous forme de HAT pour le Pi permet de pallier ce souci et d'améliorer significativement ses capacités audio.


Notre configuration de test ne contient pas de matériel haut de gamme, en raison de la situation actuelle (je rappelle que nous sommes actuellement confinés, pour ceux qui liraient cet article en 2077), je n'ai pu mettre la main que sur une paire d'enceintes Edifier R1280T. Ce sont des enceintes simples et sans reproches avec une puissance RMS de 42 W, un son relativement neutre qui fait preuve de belles qualités dans les basses comme dans les aigus.

balenaSound_test_2
Un boitier compatible et quelques entretoises ne seront pas de trop © Matthieu Legouge pour Clubic

Le Hi-Fi DAC HAT que nous avons choisi a toutefois montré son intérêt lors de ce test. Équipé d'une puce PCM 5122 de Texas Instruments et d'un amplificateur TPA 6130A2, ce DAC signé InnoMaker embarque de l'électronique de qualité qui fait toute la différence. Testé avec et sans DAC, nos enceintes sonnent en effet bien mieux en ayant recours au DAC. À l'oreille, on le ressent clairement lorsque nous poussons le son de nos enceintes qui reste clair et équilibré même à puissance maximale. Dans l'immédiat, le seul reproche que l'on peut faire à ce DAC est d'être livrée sans entretoise, ce qui fait craindre pour les broches GPIO avec un maintien perfectible du HAT.

Configurer le DAC avec balenaSound

Une fois le DAC correctement monté, connecté sur les broches broches GPIO du Pi, il est nécessaire d'apporter quelques modifications à notre config' via le tableau de bord de balenaCloud afin d'activer l'interface audio I2S sur les broches GPIO du Pi.

Il convient d'abord de désactiver l'audio intégré. Pour cela, rendez-vous dans l'onglet « Device configuration » puis modifier la variable en indiquant audio=off, comme le montre cette capture d'écran.

Configuration balenaSound_1.JPG


Sur cette même page, cliquez ensuite sur "Add custom variable" puis entrez BALENA_HOST_CONFIG_dtoverlay comme nom. La case "Value" dépend du DAC choisi, dans notre cas nous avons entré la valeur allo-boss-dac-pcm512x-audio. Comme indiqué plus haut, vous retrouverez les différentes valeurs en fonction de votre DAC sur le GitHub du projet.

Configuration balenaSound_DAC.JPG

Profitez de votre musique avec AirPlay, Bluetooth et Spotify Connect

À ce stade, plus de raison d'attendre pour caster votre musique sur vos enceintes en profitant des différentes fonctionnalités que nous avons offertes à notre Raspberry Pi grâce à balenaSound.

À l'ouverture de Spotify, on aperçoit ainsi la disponibilité d'un nouvel appareil avec Spotify Connect. L'appareil est également détecté par vos smartphones, tablettes et autres laptops en activant le Bluetooth ou encore via AirPlay pour les utilisateurs de produits Apple.

balenaSound_Bluetooth.jpg
balenaSound_SpotifyConnect.JPG


Conclusion : avantages et inconvénients de balenaSound et du Pi

balenaSound est une solution simple à prendre en main, peu coûteuse à mettre en œuvre grâce au Pi et agréable à utiliser avec son tableau de bord minimaliste.

Nous n'avons pas eu le temps de nous étaler ici sur toutes les fonctionnalités que nous offre balenaOS, mais elles sont assez larges et nous disposons d'un accès complet grâce au terminal où entrer nos commandes au sein du dashboard. Les possibilités sont également grandes puisque nous pouvons créer plusieurs projets sur un seul et même appareil, notamment avec des applications comme balenaDash et Sense.
Disponible depuis la v2 de balenaSound, le multiroom est également un ajout très intéressant qui permet de réaliser un système audio connecté sur mesure, un genre de "Sonos du pauvre" !

Les avantages sont multiples, d'autant que balenaSound fonctionne à merveille et le risque de rencontrer des problèmes est minime ! Mais nous avons noté également quelques inconvénients à l'usage, notamment en raison de la difficulté à trouver un boitier disponible en boutique pour notre Pi, compatible avec un DAC HAT.

Il en existe quelques-uns qui sont vendus pour une bouchée de pain grâce à l'impression 3D, mais c'est surtout l'absence de bouton power on/ off sur le Pi qui gêne. Il est en effet nécessaire de passer par le tableau de bord, ou débrancher l'alimentation du Pi pour l'éteindre, ce qui est assez embêtant, car nous n'avons pas toujours la main sur le tableau de bord et pas forcément accès facilement à la prise secteur sur laquelle est connecté le Pi. En outre, il vous suffit d'oublier de déconnecter le Bluetooth, ou vos enceintes, pour y diffuser du contenu involontairement. Si nous voulons faire de notre Pi une solution de streaming efficace et durable, un boitier compatible muni d'un bouton power on/ off semble indiqué. Nous reviendrons mettre à jour cet article afin de vous présenter la solution que nous avons retenue.

Les alternatives à balenaSound

Bien d'autres solutions sont envisageables pour caster et diffuser du contenu audio, et même vidéo, à l'aide d'un Raspberry Pi. Elles sont chacune différentes dans ce qu'elles proposent, avec leurs fonctionnalités, avantages et inconvénients, mais pourront vous sembler plus pertinentes selon vos besoins. On peut notamment citer Volumio, RuneAudio, Pi Music Box, Max2Play, ou encore moOde.
Modifié le 07/05/2020 à 16h59
17
15
Partager l'article :
Voir tous les messages sur le forum

Les actualités récentes les plus commentées

Twitter signale le billet de Trump menaçant de tirer sur les émeutiers
Premier vol habité de Crew Dragon : un décollage historique réussi, à revoir en replay !
Windows 10 mise à jour de mai 2020 : demandez la liste des bug déjà connus !
Voiture électrique : un nouveau barème pour le bonus écologique et la prime à la conversion
Trump signe un décret sur les réseaux sociaux, mais que contient-il ?
5G : le Royaume-Uni veut une alliance de 10 pays pour contrer les équipementiers chinois comme Huawei
StopCovid : l'Assemblée nationale adopte officiellement l'application, qui sera disponible dès ce week-end
Porsche va devoir limiter les ventes de la Taycan pour réussir à contenter les clients
Un supercalculateur a simulé l'impact qui aurait fait disparaître les dinosaures
Bouygues Telecom lance une offre dématérialisée, avec une box incluse dans les Smart TV Samsung
scroll top