Plus loin avec la ZERO 2

On a reçu quelques exemplaires de la Raspberry Pi 2 et voilà un peu plus d'une semaine qu'elle sert de lecteur audio. On avait constaté initialement que la consommation était ridicule. Une semaine plus tard on peut effectuer un petit bilan et tester quelques idées, a priori loufoques et in fine pas tant que ça !

Quelques chiffres depuis la ligne de commande

Sur notre Raspberry Pi Zero nous avons installé un système sans interface graphique : pour notre projet de lecteur audio en "headless" nous n'en avons pas besoin.

On a installé le logiciel de lecteur squeezelite et c'est tout. On dispose d'une carte de 64Go et force est de constater qu'elle est très peu occupée !

Dans les lignes suivantes on a ouvert une session SSH et on écoute de la musique avec la Raspberry Pi Zero 2.

La partie "load average" nous indique que la Raspberry est en train de dormir durant la diffusion d'un morceau. On voit que l'utilisateur "pi" est connecté... Et voici un lien pour comprendre la partie load average.

Question de température, on obtient quelque chose autour de 40° sur une dizaine de minutes. C'est l'hiver et la température ambiante dans le salon est de 20°, la Raspberry ne fait pas grand chose et n'a pas de dissipateur collé sur le processeur.

J'aimerai installer un Postgres et un Grafana pour monitorer la température sur quelques heures et contrôler avec et sans radiateur. On verra ça plus tard.

On sait que la Zero 2 n'est pas la reine de la mémoire embarquée. Pour nos opérations, sur les 427Mo qui nous restent des 512Mo partagés avec la vidéo (dont on n'a pas besoin) on voit que l'on utilise 50Mo.

En conclusion temporaire, on constate que le système plus le lecteur audio est très facilement géré par la carte : elle ne consomme pas, elle ne chauffe pas. Dans ces conditions c'est une bonne candidate à de l'embarqué ou de l'enfouis car on a toujours dans l'idée de l'installer dans une fusée de Tintin imprimée en 3D !

Hub USB et réseau RJ45 ?

Dans un tiroir traînait un accessoire hub USB / RJ45. J'ai branché le HUB sur la prise (soudée, voir ici) USB dont dispose la Zero 2. La partie USB a été opérationnelle tout de suite.

Idem pour le réseau, on voit que l'on a une adresse IP attribuée.

En effectuant la prise en main à distance avec une session SSH sur l'IP réseau câble, on gagne en confort, il n'y a plus le petit décalage d'echo perçu avec une session sur le WIFI, surtout quand le WIFI est déjà utilisé pour l'audio !

En gros, RAS, rien à dire, on branche à chaud et ça fonctionne immédiatement. C'est vraiment un plaisir d'utiliser Linux et de voir que la plus grande majorité du temps les drivers sont dans le noyau du système, il n'y a rien à installer, le matériel est reconnu. Cela n'a pas toujours été le cas, mais depuis quelques années et les errances de Microsoft, ça fait du bien d'avoir un système qui fonctionne tout simplement et qui ne passe pas son temps à vous pourrir la vie avec les mises à jour, les drivers signés et la publicité quand on survole la barre des taches.

Another DAC bites the dust

Ce que j'apprécie avec Linux, c'est la facilité de gestion du matériel. Et on va encore une fois le tester : nous avons un DAC avec une entrée BNC uniquement et que l'on ne peut pas brancher sur le port USB de la carte. Pour pouvoir utiliser de DAC avec la Raspberry, il existe de nombreuses options, dont une qui traîne sur le bureau : une HiFaceTwo. C'est un équipement qui récupère le signal audio sur le port USB en entrée et le sort sur une prise RCA ou BNC (mon exemplaire).

C'est un équipement de qualité, bien qu'aujourd'hui un petit Topping D10 soit moins cher que la M2Tech tout en proposant en plus la fonction DAC.

Quoiqu'il en soit, branchons la M2Tech sur un des ports USB du HUB fraîchement branché et voyons si la Zero2 la reconnaît.

Pour cela, on tape la commande :

squeezelite -l

Bon, la M2Tech est reconnue !

On va pouvoir lancer le lecteur audio en lui demandant d'utiliser la sortie "Direct Hardware without any conversions".

On tape la commande suivante :

squeezelite -o hw:CARD=UAC2 -n HiFaceTwo

pour lancer le logiciel client du Logitech Media Server et transformer la Pi en player audio "haut de gamme", en nommant le lecteur "HiFaceTwo".

Le player est immédiatement opérationnel. On haut à gauche on a bien son nom qui apparaît.

Encore un DAC auquel Linux fait mordre la poussière, on va pouvoir écouter Jazzafip sur la Raspberry Pi Zero2.

Fort de l'expérience positive avec la hiFaceTWO, je me pose la question de savoir si la vieille hiFace, première du nom et que je n'ai JAMAIS réussi à faire marcher sous Windows, a une chance de fonctionner sous Linux.

Connection sur le port USB... Et hop, la copie d'écran confirme que ça fonctionne ! On pourrait lancer un autre squeezelite sur cette sortie audio en même temps. Enfin bon...

Base de données et Reporting ?

En regardant la température de la carte pour rédiger le début de cet article, je me suis dit que pour la voir évoluer au fil du temps, ce serait assez drôle de la stocker dans une base de données relationnelles, par exemple Postgres. Et pour montrer l'évolution de la température dans le temps, pourquoi ne pas utiliser Grafana ?

Ces deux outils sont des outils Open Source qui ont vraiment le vent en poupe. Ce sont des outils professionnels utilisés dans de grandes organisations internationales et la question se pose de savoir "si ça va marcher" sur la carte aussi grande que mon pouce.

Après quelques heures de travail, toute fonctionne ! Je suis complètement bluffé par la capacité à installer et faire fonctionner ces deux logiciels sur lesquels j'ai travaillé pour de grande organisation internationales. Ca fonctionnaient sur des machines sans rapport avec la Raspberry Pi Zero 2, la moins puissante des nouvelles cartes (si l'on compare aux Rasp 4 et 400).

Le point le plus déroutant : je n'ai constaté aucune différence de temps de réponse dans l'utilisation de Grafana (l'outil qui permet de fabriquer les jolis dashboards) sur la Rasp par rapport aux machines de mon activité professionnelle.

Si j'utilise les données récoltées par le projet documenté (un peu) sur github alors je peux constater quelques points intéressants :

  • la température est maintenue autour de 40/42° à l'air libre et c'est 10° de plus lorsque la carte est enfouie dans la fusée (c'est Moulinsart SA qui va faire la gueule)

  • le processeur est finalement très peu sollicité, moins de 2% en moyenne, de temps à autre un pic à 30%

  • la vitesse oscille entre 600 et 1000MHz, on est la plupart du temps à 700 et moins (cf la copie ci-dessus)

On notera que la carte mémoire est occupée à 5% pour l'instant, on verra la croissance de la base de données avec des injections de data toutes les 10 secondes.

Bon, voilà, la carte est enfouie dans la fusée et un anneau de leds (neopixel ring) anime la base de manière colorée. Le code a été écrit par ma chérie et est disponible sur le git. Il faut l'injecter dans un Arduino.

Conclusion

Je me suis bien amusé et c'est le principal. La nouvelle carte de la fondation est compétente et pas chère, c'est un petit plaisir. Je ne m'attendais pas à pouvoir installer de quoi grapher confortablement quelques paramètres système avec les outils classiques.

Je pense qu'il va falloir recommencer avec la nouvelle version du système d'exploitation qui vient d'arriver début novembre... Mais pas tout de suite ! Laissons un peu de temps pour des corrections du système qui nous faciliterons la tâche plus tard.

J'espère que l'article donnera envie à des lecteurs d'expérimenter de leur côté.