Le concept
piCorePlayer est une distribution ultra-légère basée sur Tiny Core Linux, optimisée pour les systèmes audio. Elle permet de transformer un Raspberry Pi en client ou serveur audio compatible avec Lyrion Music Server (anciennement Logitech Media Server ou Squeezebox). Cette solution permet de diffuser de la musique de manière synchronisée ou indépendante dans plusieurs pièces, avec un contrôle centralisé. Elle offre une faible empreinte système (environ 50 Mo en RAM), un démarrage rapide (moins de 30 secondes sur un Raspberry Pi 5), et une excellente stabilité grâce à son fonctionnement en mémoire vive.
Matériel nécessaire
- Un Raspberry Pi 5 (ou Pi 3/4 pour le serveur principal).
- Un ou plusieurs Raspberry Pi Zero 2 W pour les autres pièces.
- Une carte microSD (8 Go minimum, classe 10 recommandée, vitesse d’écriture > 30 Mo/s pour minimiser les latences).
- Une ou plusieurs enceintes actives ou un ampli avec enceintes passives (impédance 4-8 Ω, puissance recommandée 3-10 W par canal).
- Une carte DAC HAT par Raspberry Pi (recommandée pour une meilleure qualité sonore) :
-
- Pour le Raspberry Pi 3/4/5 : HiFiBerry DAC+ (par exemple, modèle DAC+ Standard, résolution 192 kHz/24 bits, SNR 112 dB, alimentation via GPIO, consomme environ 100 mA).
- Pour les Raspberry Pi Zero 2 W : HiFiBerry MiniAmp (résolution 192 kHz/24 bits, SNR 100 dB, amplificateur intégré 2×3 W, consomme environ 150 mA, GPIO utilisés : I2S pour l’audio, compatible avec les pins 12, 35, 38, 40).
6.Une connexion réseau stable :
-
- Ethernet recommandé pour le serveur principal (100 Mbps minimum, latence < 5 ms).
- Wi-Fi activé sur les Raspberry Pi Zero 2 W (Wi-Fi 802.11n, 2,4 GHz, débit minimum 10 Mbps, latence < 20 ms).
(Optionnel) Un écran tactile 7 pouces et un bouton poussoir (voir les bonus à la fin de l’article).
Pourquoi privilégier l’Ethernet ? Une connexion filaire offre une latence plus faible (typiquement < 1 ms) et un débit stable, essentiels pour une synchronisation audio multiroom. Le Wi-Fi, bien que viable (latence typique de 5-20 ms sur un réseau 2,4 GHz), peut introduire des décalages si le réseau est saturé ou si le signal est faible (RSSI < -70 dBm).
Étape 1 : Télécharger et flasher piCorePlayer
Accéder au site officiel : https://www.picoreplayer.org.
Télécharger la dernière version stable compatible avec votre Raspberry Pi (par exemple, piCorePlayer 8.x pour Raspberry Pi 5, ou une version spécifique pour Zero 2 W si indiquée).
Flasher l’image sur une carte microSD avec un outil comme :
- Raspberry Pi Imager (version 1.8 ou ultérieure).
- Balena Etcher (version 1.18 ou ultérieure).
Insérer ensuite la carte microSD dans le Raspberry Pi concerné.
Activation préalable du Wi-Fi (recommandée pour les Raspberry Pi Zero 2 W) : Avant d’insérer la carte microSD dans le Raspberry Pi, configurez-la sur votre ordinateur pour activer le Wi-Fi et l’accès SSH. Créez un fichier wpa_supplicant.conf dans la partition boot avec le contenu suivant :
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid= »Votre_SSID »
psk= »Votre_mot_de_passe »
key_mgmt=WPA-PSK
}
Créez également un fichier vide nommé ssh (sans extension) dans la partition boot pour activer l’accès SSH dès le premier démarrage. Cette méthode est fortement recommandée pour les Raspberry Pi Zero 2 W, car leurs ports, notamment le port mini-HDMI, sont fragiles et risquent d’être endommagés lors de branchements fréquents. De plus, configurer l’appareil via SSH évite d’avoir à utiliser un écran et un clavier, ce qui est plus pratique pour un appareil compact comme le Zero 2 W.
Étape 2 : Premier démarrage
Brancher le Raspberry Pi à l’alimentation (et au réseau si Ethernet).
Relever son adresse IP via l’interface de votre box internet ou un outil comme Advanced IP Scanner (Windows) ou nmap (Linux/macOS, commande : nmap -sn 192.168.1.0/24 pour un réseau classique).
Se connecter en SSH ou accéder à l’interface web via un navigateur.
Attribuer un nom clair à chaque appareil (par exemple : « salon », « cuisine », « chambre »).
Instructions pour se connecter en SSH :
- Sur Linux ou macOS : Ouvrez un terminal et utilisez la commande suivante :
ssh tc@adresse_ip
Par exemple, si l’adresse IP de votre Raspberry Pi est 192.168.1.100, tapez :
ssh tc@192.168.1.100
Entrez le mot de passe par défaut piCore lorsque demandé.
- Sur Windows : Téléchargez et installez un client SSH comme PuTTY (disponible sur https://www.putty.org/). Lancez PuTTY, entrez l’adresse IP du Raspberry Pi dans le champ « Host Name (or IP address) », laissez le port par défaut (22), et cliquez sur « Open ». Une fenêtre de terminal s’ouvrira ; connectez-vous avec l’utilisateur tc et le mot de passe piCore.
Si c’est votre première connexion, vous pourriez voir un message de sécurité demandant de confirmer l’empreinte de la clé SSH. Acceptez en cliquant sur « Oui » (Windows) ou en tapant « yes » (Linux/macOS).
Identifiants SSH par défaut :
Utilisateur : tc
Mot de passe : piCore
Étape 3 : Choisir le mode de fonctionnement
piCorePlayer propose trois modes :
- Player : le Raspberry Pi devient un client audio (lecture uniquement, charge CPU < 5 % sur un Zero 2 W).
- Server : le Raspberry Pi héberge Lyrion Music Server (LMS, charge CPU ~20 % sur un Pi 5 avec 10 clients).
- Player + Server : le Raspberry Pi joue les deux rôles (idéal pour la pièce principale, charge CPU ~25 % sur un Pi 5).
Exemple de configuration multiroom :
- Salon : piCorePlayer sur Raspberry Pi 5 en mode Player + Server avec une carte DAC HAT (HiFiBerry DAC+, sortie I2S, résolution 192 kHz/24 bits).
- Cuisine, chambre : piCorePlayer sur Raspberry Pi Zero 2 W en mode Player uniquement, connecté en Wi-Fi, avec une carte DAC HAT (HiFiBerry MiniAmp, sortie I2S, amplificateur 2×3 W).
Étape 4 : Installer Lyrion Music Server (LMS)
Sur le Raspberry Pi configuré en mode Server :
- Accéder à l’onglet LMS dans l’interface web de piCorePlayer (port par défaut : 80).
- Cliquer sur « Install LMS ».
- Choisir la dernière version stable (par exemple, LMS 8.5.x).
- Redémarrer l’appareil à la fin de l’installation (temps estimé : 2-3 minutes sur un Pi 5).
L’interface LMS est alors accessible via :
http://adresse_ip_du_pi:9000
Depuis cette interface, il est possible de :
- Gérer les lecteurs (synchronisation, volume, playlists).
- Ajouter des plugins (Spotify, Tidal, etc.).
- Lire des radios internet (latence réseau < 50 ms recommandée).
- Scanner une bibliothèque locale ou distante (NAS, formats supportés : FLAC, ALAC, MP3, WAV, jusqu’à 192 kHz/24 bits).
- Optimisation réseau pour LMS : LMS utilise le protocole TCP sur le port 9000 pour l’interface web et le port 3483 (TCP/UDP) pour la communication avec les clients Squeezelite. Assurez-vous que ces ports sont ouverts sur votre routeur et que la bande passante disponible est d’au moins 1 Mbps par client pour des fichiers FLAC 44,1 kHz/16 bits (environ 0,5 Mbps pour du MP3 320 kbps).
Étape 5 : Configurer les clients
Pour chaque Raspberry Pi en mode Player :
Accéder à son interface web.
Dans l’onglet « Main Page », définir le rôle sur « Player Only ».
- Renseigner l’adresse IP du serveur LMS principal.
- Dans l’onglet « Squeezelite Settings », configurer la sortie audio :
- Sélectionner la carte DAC HAT (par exemple, hw:CARD=sndrpihifiberry pour une HiFiBerry).
- Définir les paramètres audio : taux d’échantillonnage (par exemple, -r 44100:192000 pour supporter 44,1 kHz à 192 kHz), format (par exemple, -o hw:0 pour sortie directe).
- Ajuster la latence si nécessaire : paramètre -a 80 pour un tampon de 80 ms (réduit les décalages en multiroom, mais peut augmenter la charge CPU).
- Redémarrer.
Chaque client apparaîtra automatiquement dans l’interface LMS.
Détails techniques pour les Raspberry Pi Zero 2 W :
Les cartes DAC HAT comme la HiFiBerry MiniAmp utilisent l’interface I2S (pins 12, 35, 38, 40) pour transmettre les données audio. Assurez-vous que piCorePlayer a bien détecté la carte via la commande aplay -l (en SSH), qui devrait lister snd_rpi_hifiberry_dac.
La HiFiBerry MiniAmp intègre un amplificateur de 2×3 W (classe D, efficacité > 85 %), adapté à des enceintes de 4-8 Ω. Si la consommation dépasse 150 mA, utilisez une alimentation 5V/2A dédiée pour le Zero 2 W.
Vérifiez la qualité du signal Wi-Fi : un RSSI < -70 dBm peut introduire des coupures audio. Utilisez la commande iwconfig wlan0 (en SSH) pour vérifier le signal.
Optimisation de la synchronisation : Pour minimiser les décalages entre les pièces, ajustez le paramètre de latence réseau dans LMS (Settings > Advanced > Network) à 50-100 ms. Testez la latence réelle avec ping adresse_ip_du_client depuis le serveur (idéalement < 20 ms).
Contrôle depuis un smartphone ou une tablette
Android : application Squeezer (version 2.3 ou ultérieure).
iOS : application iPeng (version 9 ou ultérieure).
Interface web disponible via :
http://adresse_ip_du_serveur:9000
Synchronisation des lecteurs
Dans l’interface de LMS, il est possible de :
- Synchroniser plusieurs lecteurs pour une diffusion simultanée (décalage < 10 ms si latence réseau < 20 ms).
- Les garder indépendants pour une lecture dédiée par zone.
Dépannage de la synchronisation :
Si un décalage est perceptible, vérifiez la latence réseau avec ping ou iperf3 (installez iperf3 via tce-load -wi iperf3 et testez avec iperf3 -c adresse_ip_du_client).
- Augmentez le tampon audio dans Squeezelite (-a 100 pour 100 ms) si des coupures surviennent.
- Assurez-vous que le CPU du serveur n’est pas saturé (utilisez top en SSH ; charge > 80 % peut causer des décalages).
Dépannage technique
Problèmes courants et solutions
Carte DAC HAT non détectée :
Vérifiez que la carte est correctement fixée (pins GPIO bien alignés).
Confirmez la détection avec aplay -l. Si elle n’apparaît pas, éditez /boot/config.txt (sur la carte microSD) pour activer le pilote correspondant, par exemple :
dtoverlay=hifiberry-dac
Redémarrez après modification.
Coupures audio sur un client Wi-Fi :
Vérifiez la qualité du signal (iwconfig wlan0, RSSI > -70 dBm).
Réduisez les interférences en changeant de canal Wi-Fi sur votre routeur (canal 1, 6 ou 11 recommandé).
Augmentez le tampon Squeezelite (-a 120 pour 120 ms).
Latence réseau élevée :
Testez avec ping ou iperf3. Si la latence dépasse 50 ms, vérifiez la charge réseau (utilisez iftop pour voir le trafic).
Priorisez le trafic LMS sur votre routeur via QoS (ports 9000 et 3483).
Bonus 1 : Utiliser un écran tactile 7 pouces avec Jivelite
Pour un Raspberry Pi installé dans une pièce de vie, l’ajout d’un écran tactile 7 pouces est très pratique. Cela permet de contrôler localement la lecture audio, visualiser les pochettes et naviguer dans la bibliothèque.
Matériel requis :
- Écran tactile officiel Raspberry Pi 7 pouces (résolution 800×480, interface DSI).
- Alimentation 5V/3A minimum (écran + Pi + DAC HAT = ~500 mA).
- Boîtier intégrant écran, Raspberry Pi et carte DAC HAT.
Installation :
Connecter l’écran (nappe DSI et alimentation via GPIO : 5V sur pins 2/4, GND sur pin 6).
Installer la carte DAC HAT sur le Raspberry Pi avant de fixer l’écran (vérifiez que les GPIO I2S ne sont pas en conflit avec l’écran).
Démarrer piCorePlayer.
Accéder à l’interface web, aller dans « Main Page » puis « Tweaks ».
Activer Jivelite, cliquer sur « Save » puis « Reboot ».
Au redémarrage, l’interface Jivelite s’affiche automatiquement (résolution par défaut 800×480).
Astuce :
Dans « Tweaks » > « Jivelite Skin », sélectionner le thème HD pour un rendu adapté à l’écran 7 pouces tactile.
Bonus 2 : Ajouter un bouton physique Play/Pause
Un bouton Play/Pause physique peut s’avérer très utile pour un accès rapide à la lecture, notamment dans la cuisine ou une chambre.
Matériel requis :
- Un bouton poussoir (type arcade ou standard, contact NO, 3-5 V).
- Deux fils Dupont.
- (Facultatif) Une résistance 10kΩ en pull-down pour éviter les faux déclenchements.
Connexions GPIO :
Un fil du bouton vers GPIO 17 (pin 11, entrée numérique, 3,3 V).
L’autre vers GND (par exemple, pin 9).
Si vous utilisez une résistance pull-down, connectez-la entre GPIO 17 et GND.
Vérification des GPIO :
La HiFiBerry DAC+ et MiniAmp utilisent les GPIO pour I2S (pins 12, 35, 38, 40). Le GPIO 17 est libre, mais vérifiez avec gpio readall (nécessite WiringPi) pour confirmer qu’aucun autre périphérique ne l’utilise.
Script à utiliser :
Créer le fichier /home/tc/playpause.sh avec le contenu suivant :
#!/bin/bash
while true; do
if [ « $(gpio -g read 17) » = « 0 » ]; then
echo « TOGGLE » | nc -q 0 localhost 9090
sleep 0.5
fi
sleep 0.1
done
Prérequis et automatisation :
Installer l’utilitaire WiringPi :
tce-load -wi wiringpi
Ajouter le script au démarrage via /opt/bootlocal.sh :
/home/tc/playpause.sh &
Dans l’interface web, aller dans « Backup », puis cliquer sur « Save » pour sauvegarder les paramètres.
Optimisation :
Pour réduire la charge CPU du script (boucle infinie), augmentez le sleep à 0.2 s (impact négligeable sur la réactivité). Si le bouton déclenche des actions non désirées, ajoutez un débouncing logiciel :
if [ « $(gpio -g read 17) » = « 0 » ]; then
sleep 0.05
if [ « $(gpio -g read 17) » = « 0 » ]; then
echo « TOGGLE » | nc -q 0 localhost 9090
sleep 0.5
fifi
En conclusion…
Avec ces compléments techniques, l’installation devient non seulement fonctionnelle, mais également optimisée pour des performances audio de haute qualité. Les cartes DAC HAT garantissent une intégration compacte et une excellente fidélité sonore (SNR > 100 dB), tandis que les ajustements réseau et Squeezelite assurent une synchronisation précise (décalage < 10 ms). Ce système multiroom est une solution DIY puissante et accessible pour les audiophiles exigeants.