Utiliser une GBS8200 + un ESP8266 pour brancher une playstation en HDMI - upscaler open-source

Cet article est en grande partie une traduction du wiki du projet gbs-control, augmenté des informations dont j'ai pu avoir besoin lors de la réalisation de mon installation.

Un grand merci à Rama, auteur du logiciel, pour son aide lors de mes démarches, et pour sa patience. Merci également aux membres du discord PSXdev pour leurs réponses à certaines de mes interrogations.

GBS8220+ESP8266:schéma de montage

Matériel nécessaire

Pour le mod c-sync sur la PSX :

Pour le système upscaler :

Aucune affiliation entre moi et les sites d'achat ci-dessus. C'est simplement le matériel que j'ai utilisé et je suis donc sûr que ça fonctionne avec ces références.

C-sync mod : remplacer le signal composite par la synchro du GPU

Afin de pouvoir obtenir une bonne qualité d'image, il faut obtenir de la psx plusieurs signaux pour la vidéo : R, G, B et S. S signifie "synchronisation" et pour pouvoir récupérer ce signal, il faut modifier légèrement la psx pour que le signal S soit envoyé sur la voie normalement dédiée au composite ( qui est un amalgame des quatre en temps normal ).

Une fois cette modification effectuée, il ne sera plus possible d'utiliser la PSX sans le GBS82xx, puisque le signale composite n'est plus présent à la sortie A/V de la console.

Si vous ne désirez pas modifier la console, vous pouvez alternativement utiliser un "sync-stripper" qui extrait le signal S du composite, avec toutefois une légère baisse de qualité.

Comme on peut le voir ci-dessous, il s'agit de shunter le convertisseur numérique/analogique IC502 : Sur la carte mère PU-22 présente dans les SCPH-7502, ça se traduit comme ça :

diagramme de la PU-22

On voit à droite en rouge la voie CSYNC qui arrive de la pin 156 du GPU. À gauche, près de l'inscription L507, on aperçoit une résistance de 75 ohm qu'il faut déssouder.

PU-22 photo PU-22 photo (Source : https://shmups.system11.org/viewtopic.php?p=1341006#p1341006)

On bridge ensuite ces deux points avec une résistance de 680ohm.

Deux autres installations :

PU-22 photo

PU-22 photo

Cette valeur de résistance peut varier de 500 à 2500 ohm, car c'est une résistance de tirage. La sortie "A/V Multiout" de la PSX est donc désormais configurée pour émettre les signaux de cette façon ( en regardant la prise à l'arrière de la console, de gauche à droite ):

Num de Broche | Signal correspondant
      1       | Masse audio (AGND)
      2       | Audio Gauche (AL) 
      3       | Masse vidéo (VGND) 
      4       | Audio droit (AR)
      6       | Synchro (CSYNC)
      8       | Masse RGB 
      9       | Bleu (B) 
      11      | Rouge (R)
      12      | Vert (G) 

Pour la référence complète des broches de sortie du port A/V Multiout, voir ici :

https://pinouts.ru/Game/PlayStationAV_pinout.shtml

Ce sont tous les signaux dont nous aurons besoin pour obtenir une image et le son.

Upscaler : GBS + ESP

Extraire les signaux vidéo de la péritel

Sur le GBS82xx, on utilise le connecteur P11 pour fournir GND+RGBS. La solution décrite ici consiste à utiliser une prise péritel femelle pour récupérer chaque signal et l'envoyer au bon endroit.

D'après cette page ; https://pinouts.ru/Audio-Video-Hardware/Scart_pinout.shtml ; on sera donc intéressés par les broches suivantes à la sortie du câble RGB :

Num de Broche | Signal correspondant
              |
4             | Masse audio (AGND)
2             | Audio Gauche (AL)
6             |  Audio droit (AR)
              |
5             |  Masse B
7             |  Bleu  (B)
              |
8             |  Masse G
11            |  Vert (G)
              |
13            |  Masse R
15            |  Rouge (R)
              |
17            |  Masse vidéo (VGND)
18            |  Masse vidéo (VGND)
20            |  Synchro (CSYNC)

prise SCART RGB

Sources :

https://pinouts.ru/Audio-Video-Hardware/Scart_pinout.shtml

https://konsolowo.pl/6350-home_default/rgb-scart-cable-for-psx-ps2-ps3.jpg

Bien qu'il soit possible de n'utiliser qu'un seul fil de masse pour l'ensemble des signaux (qui lierait donc les broches 4, 5, 8, 13, 17 et 18), il est recommandé d utiliser un fil par masse et de le tresser autour du câble du signal qu'il accompagne, ceci afin de limiter les interférences. Celles-ci se traduiront à l'écran par des moirés des effets visuels disgracieux.

Installation de gbs-control sur l'ESP8266

Configuration de l'IDE Arduino

Il faut dans un premier temps ajouter la librairie permettant à l'IDE de communiquer avec l'ESP. Après avoir installé Arduino IDE, rendez-vous dans "Fichier">"Préférences".

Dans le champ "URL de gestionnaire de carte supplémentaire, ajouter :

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Si une url est déjà présente dans ce champ, ajoutez simplement la nouvelle après une virgule pour que les deux soient prises en compte.

Validez, puis rendez-vous dans "Outils", "Type de carte", "Gestionnaire de cartes" et rechercher esp8266, puis l'installer.

Vous devriez maintenant voir apparaitre différents types de cartes ESP dans le menu "Type de carte". Sélectionnez celle qui correspond à votre modèle.

Si vous n'êtes pas certain de votre modèle, choisissez "LOLIN(WEMOS) D1 R2 & mini".

Vous devez encore configurer la fréquence du CPU :

"Outils" > "CPU frequency" à "160 MHz"

"Outils" > "Flash size" à "4MB (FS:1MB OTA:~1019KB)" ( Troisième option )

"Outils" > "IwIP Variant" à "v2 Lower Memory"

Vous pouvez maintenant connecter votre ESP8266 à l'ordinateur.

Vérifiez dans "Outils" > "Port" que vous avez bien accès à celui-ci.

Installation de librairies supplémentaires : ESPAsyncTCP, ESPAsyncWebServer et ESP8266-ping

Il faut encore installer deux librairies avant de pouvoir utiliser l'upscaler.

Téléchargez sur le git du développeur "me-no-dev" les librairies suivantes :

https://github.com/me-no-dev/ESPAsyncTCP - Fichier zip

https://github.com/me-no-dev/ESPAsyncWebServer - Fichier zip

et décompressez les dans le dossier ~/Arduino/libraries sous Linux,
ou C:\Users\%USER%\Documents\Arduino\libraries sous Windows.

La dernière librairie à installer est disponible depuis le gestionnaire de bibliothèque ;
"Outils" > "Gestionnaire de bibliothèque" .

Recherchez et installez "ESP8266-ping".

Compilation et téléversement de gbs-control

Vous pouvez maintenant télécharger gbs-control - Fichier zip

Décompressez l'archive et ouvrez le fichier gbs-control.ino . Vous devriez pouvoir vérifier et téléverser le sketch sans problème.

Avant de tenter le premier démarrage de votre upscaler, il reste quelques réglages à effectuer sur le GBS.

Connexion des différents composants

Ajout de la résistance de 100 ohms sur le GBS82xx

Ajout R100

Il est nécessaire d'ajouter une résistance de 100 ohm entre S et GND sur le GBS. Il est possible de procéder comme sur l'image ci-dessus.

Vérification des potentiomètres

Vérifier que les potentiomètres près du connecteur P11 sont bien tournés au maximum vers la gauche. Dans l'idéal, ceux-ci seront dessoudés et remplacés par des liens directs (cf. image ci-dessus).

Installation du jumper

gbs mods overview

Pour utiliser l'ESP8266 comme contrôleur, il faut placer un jumper sur le connecteur P8.

Debug Pin

Pour le réglage automatique de l'image, l'ESP8266 doit avoir accès à certaines informations de timing. Pour cela, souder un câble sur la deuxième patte en partant de gauche (cf. photo ci-dessus) et la brancher à la broche correspondant à "MISO" sur l'ESP8266 ( GPIO 12 sur le schéma ci-dessous, pin 6 sur l'ESP).

Connexion du ESP8266 au GBS82xx

L'ESP8266 utilise les broches SDA et SCL du connecteur P5 :

 SCL -> SCL ou D1
 SDA -> SDA ou D2 

Vous pouvez vérifier le pinout du module Wifi pour être certain que vous avez sélectionné les bonnes broches :

ESP8266 pinout

Il suffit de tracer sur votre adaptateur les GPIO 4 et 5 pour savoir à quelle broche vous connecter.

Full install

Alimentation électrique

Il est recommandé d'alimenter le GBS et l'ESP via une alimentation 5V de 2 à 3 ampères. La consommation des deux contrôleurs est d'environ 0.5 A. Privilégier une alimentation de qualité.

Connexion à l'interface web du upscaler

Une fois toutes les connexions effectuées et le upscaler alimenté, un point d'accès Wifi "gbscontrol" devrait apparaitre. Vous pouvez vous y connecter avec le mot de passe 'qqqqqqqq' (q * 8). Vous pouvez modifier le SSID et le mot de passe du wifi aux lignes 73 et 74 du fichier gbs-control.ino .

Notes & Références

mod C-sync : https://shmups.system11.org/viewtopic.php?p=1341006#p1341006

manuel du GBS : https://www.arcadeworlduk.com/content/CGA-VGA-Manual.pdf

gbs-control : https://github.com/ramapcsx2/gbs-control

installation complète gbs+esp en anglais : https://github.com/ramapcsx2/gbs-control/wiki

psxdev discord help channel : https://discord.com/channels/642647820683444236/663664210525290507