Mods gameboyzero : audio alternatif (pi0 , gpio et audio analogique)

Avant-propos :

Ce petit tutoriel a pour but l’utilisation de certains ports gpio afin d’obtenir une sortie audio analogique sur votre console portative.

Pour quelles raisons utiliser ce montage ? :

  • Si vous n’êtes pas regardant sur la qualité audio
  • Si vous souhaitez récupérer de la place dans votre boitier DMG
  • Si vous souhaitez réduire le nombres de soudures
  • Si vous souhaitez réduire le nombre de composants

En effet , récupérer le signal audio sur seulement 2 pins gpio du raspberry pi 0 nécessite de réfléchir aux avantages et inconvénient que cela peut induire …

Ce que vous gagnez en terme de place , de consommation électrique et de simplicité , sera fait au détriment de la qualité du son sur le haut parleur de 8-Ohm fournis dans nos kits ! Le but et de réduire les étapes d’assemblage sans totalement perdre le bruitage de nos jeux retro préféré …

Si vous faites ce choix , vous pourrez ainsi supprimer les étapes d’assemblage suivantes :

  • Démontage et soudures  du hub usb  :
    • Il devient inutile de le conserver dans le boitier , nous pourront toujours l’utiliser sur le port unique déjà prévus a cette effet sur le Raspberry pi 0
  • Soudures de la carte son :
    • La carte son usb est inutile car nous récupérons un signal analogique sur les ports gpio du pi0

* Il faudra tout de même conserver l’amplificateur audio pour obtenir un volume plus conséquent , à noter que si vous voulez supprimer l’effet de saturation lorsque l’amplification est maximal ,il faudra faire l’usage d’un filtre passe bas (ou filtre RC).

* Montage testé avec un amplificateur Pam 8302

* Le paramétrage des ports gpio en sortis pwm  , n’a été testé que sur une version 4.1 de recalbox , il semblerait que les nouvelles version ne prenne plus en compte cette configuration … (ou une modifications des fichiers DTO overlay serait nécessaire , mais nous n’avons pas tester cette option …)

Étape 1 : Mappage contrôleur gpio :

 

Nous partons du principe que dans cette configuration nous affecterons les boutons de la console au Joystick 1 (… Sur une gameboyzero nous n’utiliserons jamais un second contrôleur sur le gpio de toute façons ).

Pour cela nous allons configurer les sortis gpio pour ne mapper qu’un seul contrôleur , ainsi nous pourrons disposer de pins libre pour y récupérè le signal audio pwm .

Pour cela , dans le fichier recalbox.conf (modifiable par le biais du config manager) nous allons modifier la ligne suivante  comme ceci , et enregistrer notre modification :

Étape 2 : Activez la sortis audio pwm , sur les ports alternatif du gpio :

 

Le chipset Broadcom utilisé pour le Pi 0 n’a pas de véritable sortie analogique. Au lieu de cela, nous utiliserons deux broches  PWM ( Pulse With Modulation = Modulation Par Impulsion) affecter aux pins gpio ,afin de  «simuler» un signal audio.

Sur le Pi Zero, nous n’avons pas les broches PWM0 (broche # 40) et PWM1 (broche # 45) disponible généralement sur un pi B ou B+ .

Cependant sur le pi 0 il s’avère que même si ces pads ne sont pas exposés, nous pouvons rediriger ces signaux vers d’autres broches ;-p

Vous pouvez accéder à PWM0 sur le GPIO # 18 (ALT5) et PWM1 sur GPIO # 13 (ALT0) ou GPIO # 19 (ALT5) .

La modification consiste à définir manuellement les fonctions alt des pins GPIO sous recalbox.
En ajoutant simplement la ligne suivante à votre fichier config.txt, vous re-configurerez les broches au démarrage sans aucun logiciel ou service externe :

dtoverlay = pwm-2chan, pin2 = 13, func2 = 4

* Le fichier config .txt peut être édité en  accédant directement a la carte sd grâce a un adaptateur Usb/MicrosSD où  SD si vous disposez d’un lecteur SD-card.

Cette commande nous permet de définir deux canaux de sortie, mais un seul nous sera nécessaire. Nous affecterons donc  seulement le pin 13  . Pour des raisons de simplicité je vous recommande de n’en utiliser qu’un seul , il sera tout de même possible d’utiliser un deuxième haut parleur pour une sortis stéréo en réalisant un branchement en parallèle .

Étape 3 : Cablage pi0 et pcb :

 

Toujours pour des raisons de simplicité , ici je n’ai volontairement pas câblé le potentiomètre d’ajustement du volume (je modifie le volume par le menu son de recalbox ). Mais si vous souhaitez tout de même disposez de cette fonctionnalité il faudra le placé après l’amplificateur (ou utiliser l’ampli avec potentiomètre intégré), car l’intensité du signal audio pwm ne sera exploitable qu’une fois amplifié .

Conclusion :

De nombreuses variantes de ce montage peuvent être réalisées. gardez a l’esprit que votre sortie audio est récupérée sur les deux pins gpio prédéfinis dans le fichier config.txt (Audio + et ground) et doit être amplifiée et éventuellement filtrée .

Sources :

https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/overview

https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio

 

 

Laisser un commentaire