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.
Matériel nécessaire
- Un fer Ă souder
- quelques cables Dupont femelle/femelle
Pour le mod c-sync sur la PSX :
- une PSX équippée d'une carte mère PU-22 (SCPH-750x, et quelques SCPH-900x)
- une résistance de 680 Ohms
Pour le système upscaler :
- un câble péritel RGB PSX
- un adaptateur VGA > HDMI (optionnel)
- une carte GBS8200/8220
- une carte ESP8266
- une résistance de 100 ohm
- une prise péritel femelle
- un jumper de carte mère
- une alimentation 5V 2A
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 :
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.
(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 :
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)
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
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
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 :
Il suffit de tracer sur votre adaptateur les GPIO 4 et 5 pour savoir Ă quelle broche vous connecter.
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