ZenAmiSixaxis II

Description

Le module permet de connecter une manette PS3 à un AMIGA via le bluetooth.

Il utilise un module ESP32 WROOM-32D USB-C 30 broches (attention à bien vérifier les broches, tout les modules ne sont pas identiques !).

Celui-ci se paramètre via une interface web disponible via WIFI.

Le module n'est PAS alimenté par l'AMIGA, il faut le connecter à un "chargeur" USB (ou via "POW", voir plus loin).

Deux jumpers sont présents :

INIT : si relié lors de la mise sous tension, met les paramètres d'usine dans le module.

POW : permet d'inter-connecter l'alimentation des modules, ce qui permet de connecter l'usb sur un seul module lorsqu'il y en a deux, le deuxième étant alimenté par ce connecteur. Il est aussi possible d'alimenter le module depuis une source externe 5V en utilisant ce connecteur (broche 1, la plus proche du texte "POW" : 5V, broche 2, la plus proche de "J2" : GND).

Il est possible de scripter les touches de la manette pour "aider" dans certains jeux.

Une option "MOUSE" permet, si est est cochée, de simuler une souris depuis la manette : en appuyant sur le bouton "SELECT", on passe de la fonction manette à la fonction souris, et vice-versa. Les boutons CROIX et CARRE simulent respectivement les boutons gauche et droit de la souris, le joystick analogique gauche, les directions.

Un temps maximal d'inactivité (Inactivity timeout), en secondes, déconnecte la manette si aucune activité n'a été detectée pendant ce temps.

Il est possible d'assigner un numéro à la manette associée au module, celui-ci sera affiché sur les leds rouges "1 2 3 4" de la manette, ce qui permettra de mieux l'identifier.

Enfin, une indication de la présence du 5V de l'AMIGA permet de savoir si le module est connecté correctement, et que la machine est allumée.

Attention : pour éviter de détruire les mosfets (petits composants à 3 broches), il est conseillé de mettre une vis plate sur le connecteur DB9 pour que le métal de celui-ci soit relié à la masse de la carte.

La led bleue sur le module clignote suivants les cas ci-après :

. Tentative de connexion au wifi : la led clignote brièvement.

. Mode AP : la led clignote deux fois par seconde.

. Mode Souris : la led clignote quatre fois par seconde.

Note: Le site ne fonctionnera pas sur les navigateurs web de l'Amiga, car il utilise du javascript et des websockets.

Connexion au réseau WIFI

Lorsque le module est neuf, ou qu'il a été ré-initialisé, ou qu'il ne trouve pas son réseau WIFI, celui-ci est en mode AP (poit d'accès), et propose un point d'accès "zenAmiSix-<numéro>" (numéro dépend du module, et permet d'en allumer plusieurs à la fois).

Il suffit de connecter son ordinateur sur ce point d'accès (mot de passe par défaut : 123456789), et d'ouvrir un navigateur internet à l'adresse : http://192.168.4.1

Il faut ensuite renseigner le SSID ("WIFI SSID") et le mot de passe de votre WIFI ("WIFI PASS"), sur lequel le module se connectera.

Pour chaque ligne modifiée, il faut cliquer sur le bouton "SEND" de cette ligne, pour qu'elle soit envoyée dans le module.

Avant de redémarrer le module, Il faut donner un nom à celui-ci dans le champ "Name". Ce nom servira à afficher la page web du module sans avoir à connaître son adresse IP. Pour cela, il suffira d'entrer le nom, suivi de ".local".

Par exemple, si le nom est "toto", l'url sera : "http://toto.local"

Le nom doit uniquement comporter des lettres en minuscule (pas d'espace, par exemple).

Ensuite, il suffit de redémarrer le module en cliquant sur le bouton "REBOOT" (en bas).

Si le couple SSID/PASS a bien été renseigné, le module se connectera au réseau WIFI.

Dans le cas contraire, après quelques tentatives (led bleue clignotante), le module se remettra automatiquement en mode AP temporairement.

Association avec la manette

Nous aurons besoin de sixpair (https://github.com/RetroEvolved/sixad sous linux, SixaxisPairTool pour windows), ou quelque logiciel permettant de modifier/récupérer l'adresse mac de la manette PS3.

LINUX

Récupérer le zip du project sixad sur github : https://github.com/RetroEvolved/sixad puis "<>CODE", et "download ZIP".

Décompresser l'archive "sixad-master.zip" n'importe où et aller dans ce repertoire.

Installer les dépendances dans le système :

sudo apt update && sudo apt install libusb-dev libbluetooth-dev libbluetooth3 libdbus-glib-1-dev

Puis compiler le projet :

make

Si tout s'est bien passé, dans le répertoire "bins", la commande sixpair est maintenant disponible.

Pour la lancer (manette PS3 connectée au PC, et dans le répertoire "bins") :

./sixpair

... devrait afficher l'adresse MAC de la manette.

./sixpair 1a:2b:3c:04:05:06

... change l'adresse MAC de la manette à "1a:2b:3c:04:05:06".

WINDOWS

Le programme est déjà compilé, il suffit de le lancer.

"Current Master" affiche l'adresse MAC actuelle.

"Change Master" permet de changer l'adresse MAC de la manette.

Pour éviter d'allumer la PS3 à chaque fois qu'on appuie sur le bouton central de la manette pour la connecter au module, il peut être interressant de modifier l'adresse MAC. Pour cela, il suffit de modifier un des chiffres (de préférence, ceux de droite). Pour pouvoir utiliser à nouveau la manette avec une PS3, il suffit de la connecter à la PS3 par USB.

Un fois l'adresse MAC récupérée, il suffit de la renseigner dans la page web du module dans "Sixaxis MAC" (puis bouton "SEND").

ATTENTION : L'adresse MAC doit être une adresse valide (les dernières version du module PS3 ne permettent plus de fantaisies).

Pour connecter la manette au module, il suffit d'appuyer sur le bouton central (PS), la led bleue est allumée.

Pour déconnecter la manette du module, il faut aussi appuyer sur le bouton central (PS), le module redémarre.

PS : Lorsque le module est en mode AP, le Blueooth est désactivé (il y a un bug dans le module PS3 qui interfère avec le WIFI en mode AP). De ce fait, le joystick ne sera pas détecté.

Scripts

Pour chaque bouton de la manette, une ligne ON (appuyé) et une ligne OFF (relaché) sont présentes dans l'interface (voir la section traduction pour les noms).

Chaque script est lancé lorque le bouton correspondant est appuyé ou relaché. Les scripts sont interrompus immédiatement lors de l'appui / relâchement d'un bouton de la manette.

Du coté AMIGA, il y les quatres direction, ainsi que deux Fire. Dans les scripts, ceux-ci sont représentés comme suit :

F1 : Fire 1

F2 : Fire 2

U : (up) haut

D : (down) bas

L : (left) gauche

R : (right) droite

En régle générale, une majuscule signifie un appui, une minuscule un relâchement.

Par exmple, "U" : simule un appui sur haut, alors que "u" : signifie le relachement de cet appui.

Une commande de temporisation en millisecondes est aussi présente : T<temps>

Par exemple, l'attente de 123ms donne : T123, alors qu'une attente de 10ms donne : T10

Pour finir, l'ajout d'un "+" à la fin de la ligne signifie de boucler vers le début : le script recommence en boucle tant que le bouton de la manette reste enfoncé. Dans ce cas, il est judicieux de placer un relachement des commandes joystick dans le relachement du bouton de la manette, car le script est interrompu dès qu'on relache le bouton.

Exemples :

CIRCLE ON : "F1T100f1T100+" : appuie sur Fire 1, attends 100ms, relâche Fire 1, attends 100ms, fait ça en boucle tant que le bouton rond de la manette reste appuyé.

CIRCLE OFF : "f1" : relache le Fire 1 lorsqu'on relâche le bouton rond de la manette.

"DT100F2T50df2" : Appuie sur bas, attend 100ms, appuie sur Fire 2, attend 50ms, relache bas et Fire 2.

Logiciel - Installation

Le logiciel est écrit en C++ sous PlatformIO.

Pour pouvoir compiler le logiciel (et l'envoyer dans le module), il faut d'abord installer Visual Studio Code (Gratuit et multi-plateforme).

Installer ensuite l'extension "platformio" en tapant ce nom dans l'onglet extension, et en cliquant sur "Installer" (l'icône ressemble à la tête d'une fourmis).

Il suffit ensuite d'ouvrir le répertoire "zenAmiSixaxisV2", les dépendances seront automatiquement téléchargées.

Il faut ensuite connecter le module au PC via un câble USB.

En cliquant sur la fourmis à gauche, une liste de tache s'affiche, il suffit de cliquer sur "Upload" et le projet compilera et sera envoyé dans le module.

Matériel

La partie matérielle est réalisée sous le logiciel libre et multi-plateforme KICAD.

Le répertoire "hard" contient le project Kicad contenant lui-même le schéma, le PCB et les gerbers.

Si vous voulez réaliser des PCB, faites attention à ce que les empreintes des composants soient correctes (lors du passage d'une version à une autre du logiciel, celles-ci peuvent changer).

Valeurs par défaut

AP Mode : ON

WIFI SSID : "zenAmiSix-<quatre symboles>"

WIFI PASSWORD : 123456789

Adresse AP : http://192.168.4.1

SIXAXIS MAC : 1a:2b:3c:04:05:06

NETWORK NAME : zenamisixaxis.local

Joystick Number : 1

Inactivity timeout : 300s

Mouse mode : OFF

CROSS ON : F1

CROSS OFF : f1

SQUARE ON : F2

SQUARE OFF : f2

CIRCLE ON : F1T100f1T100+

CIRCLE OFF : f1

R1 ON : F1T10f1T10+

R1 OFF : f1

Tous les autres boutons sont vides.

Traductions

SEND : envoyer

AP : mode point d'accès WIFI

SSID : nom du réseau WIFI

PASS : mot de passe WIFI

Name : nom

Joystick Number : numéro du joystick

Inactivity Timeout : temps d'inactivité

MOUSE : souris

REBOOT : redémarrer

FACTORY DEFAULT : remettre les paramètres d'usine par défaut.

CROSS : Croix

SQUARE : carré

TRIANGLE : triangle !

CIRCLE : rond

Téléchargement

Les sources de la version 2.1.3 sont téléchargeables ici : zenAmiSixaxis2_2.1.3.zip