Oui ! Pour que le Pi Zero reste petit et peu coûteux, le filtre audio du casque n'est pas inclus. Pas de prise jack pour obtenir de la musique de votre Recalbox. Vous pouvez toujours obtenir de l'audio numériquement via HDMI, donc si vous branchez votre Pi sur un moniteur avec des haut-parleurs, cela fonctionnera très bien.
Ce n'est pas grave si vous avez branché votre Recalbox sur votre téléviseur dans votre salon, mais dans une borne d'arcade avec un écran de PC standard, ou un téléviseur... vous ne pouvez pas obtenir le son du HDMI.
Enfin, ce n'est pas vraiment vrai. Si vous utilisez un convertisseur HDMI-VGA, vous pourriez avoir la chance d'en avoir une qui a une sortie audio jack comme celui-ci.
Mais si vous utilisez un Pi zéro, vous voulez certainement l'intégrer dans un petit appareil, avec un petit écran TFT sur le bus SPI/I2C/DPI, et vous n'aurez pas de place pour ce convertisseur.
Comme décrit sur cette page, les autres Raspberry Pi utilisent 2 sorties PWM avec un circuit de filtrage pour créer la sortie sonore. Sur cette page, vous trouverez le véritable dispositif électronique intégré dans le Raspberry Pi pour créer le son.
Mais, si vous lisez attentivement, il utilise le PWM sur les GPIO 40 et 45 qui ne sont pas mis en évidence sur le Pi Zero.
La solution consiste à se positionner sur PWM0 sur GPIO 18 (ALT5) et PWM1 sur GPIO 13 (ALT0) ou GPIO 19 (ALT5) et à créer son propre circuit de filtrage.
La manipulation est décrite en détail sur cette page.
Avec Recalbox, le moyen le plus simple est d'ajouter cette ligne dans le fichier recalbox-user-config.txt
. Elle reconfigurera les broches au démarrage sans aucun logiciel ou service externe. Le PWMO sera sur la GPIO 18 (broche 12 sur le connecteur), et le PWM1 sur la GPIO 13 (broche 33 sur le connecteur).
dtoverlay=pwm-2chan,pin=18,func=2,pin2=13,func2=4
Comme décrit dans cette page, vous pouvez faire votre propre superposition avec le code source suivant :
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2708";
fragment@0 {
target = <&gpio>;
__overlay__ {
pinctrl-names = "default";
pinctrl-0 = <&pwm_audio_pins>;
pwm_audio_pins: pwm_audio_pins {
brcm,pins = <13 18>; /* gpio no ('BCM' number) */
brcm,function = <4 2>; /* 0:in, 1:out, 2: alt5, 3: alt4, 4: alt0, 5: alt1, 6: alt2, 7: alt3 */
brcm,pull = <0 0>; /* 2:up 1:down 0:none */
};
};
};
};
Si vous avez configuré buildroot et que vous avez déjà monté Recalbox, vous pouvez compiler les dts avec :
output/build/linux-FIRMWARE/scripts/dtc/dtc -@ -I dts -O dtb -o pwm-audio-pi-zero-overlay.dtbo pwm-audio-pi-zero-overlay.dts
Et vous copiez le fichier pwm-audio-pi-zero-overlay.dtbo
dans /boot/overlays
de votre Recalbox. La configuration est maintenant plus simple :
dtoverlay=pwm-audio-pi-zero
Vous pouvez tester si cela fonctionne sans créer le circuit de filtrage. Vous pouvez connecter un haut-parleur de casque directement entre la broche PWM et une masse comme indiqué dans la figure suivante.
Il devrait fonctionner, mais le son peut avoir des défauts.
Pour créer votre filtre, vous aurez besoin de certains composants électroniques :
Voici les schémas :
et le vrai filtre :
Vous devrez amplifier la sortie car les signaux sont filtrés et ont des niveaux très bas.
Vous pouvez utiliser un petit amplificateur 5V 2x3W.
Vous pouvez également ajouter un potentiomètre audio stéréo pour pouvoir régler le volume.