...Ou comment passer des heures à chercher des solutions quand
la plus simple reste d'acheter le produit tout fait.
C'est encore un de ces projets qui ne vaut rien aux yeux de ceux qui ne
trouvent rien d'amusant dans le fait de construire quelque chose dont
ils ont besoin. Vous êtes prévenu.
Lors d'une séance d'emmerdement extrême induite par mon
insomnie habituelle, je me suis aperçu que Starfox Command sur
DS proposait d'utiliser un "Rumble Pak". Le regret de jouer
à des jeux téléchargés vint alors me hanter
l'esprit. Car hormis les avantages des diverses cartouches microSD pour
DS, tels que se la péter à la récré, augmenter
les stats des importations, ou encore causer des dommages financiers...
Reste qu'un Rumble Pak, ça se télécharge pas.
Pour ceux qui ne seraient pas au courant, le Rumble Pak est une extension
matérielle sous forme d'une cartouche SLOT2 qui était vendue
avec le jeu et qui contenait un petit vibreur, permettant au joueur de
mieux comprendre qu'il s'en prend plein la gueule et qu'il va perdre.
Vous êtes alors peut être en train de vous dire: "je
prefère jouer au jeu gratuitement sans les vibrations, plutot que
d'aligner 40€ pour avoir la même chose, mais avec !"
Je vous répondrais alors: moi aussi.
Mais je me suis senti frustré de ne pas avoir eu exactement la
même chose que les gens qui l'avaient vraiment acheté.
C'est comme voler une télé mais oublier de prendre la télécommande,
ça marche mais il manque un petit quelque chose.
Une très brève recherche a revelé que les détails
de la fabrication d'un Rumble Pak fait maison avaient déjà
été publiés sur Instructables. L'article,
très instructif, indique que les jeux détectent sa présence
en vérifiant que le bit 1 du bus de données GBA est à
0 (ils ont tous des pull-ups).
Bien qu'ayant été très informative et rassurante,
la méthode utilisée ne m'inspirait pas vraiment. En effet,
il est question d'utiliser un PIC comme monostable à durée
fixe. Pratique mais un peu overkill.
 |
Si vous avez gardé la boite de votre DS Lite, c'est le moment
d'aller retrouver la cartouche de protection SLOT2. C'est souvent
le truc qu'on balance en premier mais dans ce cas c'est indispensable.
Je me souviens pas avoir vu de telle protection livrée avec
la DS "tank".
Dans le pire des cas une cartouche GBA que vous ne supportez plus
peut faire l'affaire.
|
 |
Il va aussi falloir des vibreurs pour téléphones
portables, souvent appellés "offset motors".
Ce sont des moteurs miniatures fabriqués pour fonctionner
pendant de courtes périodes sous 3 ou 5V.
Les miens fonctionnaient malheureusement en 5V mais ça n'a
pas vraiment posé de gros problèmes. Ce n'est pas
possible de savoir exactement si le moteur est fait pour fonctionner
avec telle ou telle tension.
L'important c'est que leur diamètre ne dépasse pas
4mm, car il n'y a pas beaucoup de place dans la cartouche. Les miens
étaient de la bonne taille mais le poids dépassait.
Les limer à la Dremel était loin d'être amusant.
|
 |
L'article sur instructables indique que le jeu SLOT1 demande au
moteur de tourner en balançant une pulsation sur /WR. Ceci
revient à vouloir écrire n'importe quelle valeur sur
le bus GBA.
C'est en réalité un peu plus compliqué puisque
le jeu peut normalement contrôler la durée pendant
laquelle le moteur tourne.
Le tracé d'un schéma d'un vrai rumble pak (merci
google image) et la lecture des sources de ndslib montrent que la
ligne AD1 ne sert pas seulement à detecter la présence
du rumble pak, mais aussi à indiquer si la pulsation sur
/WR sert à l'arrêt ou au démarrage du moteur.
Ce n'est donc pas un monostable qu'il faut, mais une simple bascule
D déclenchée par l'inverse de /WR et qui prend en
entrée la ligne AD1. La sortie Q de la bascule pilote à
son tour le moteur via un transistor.
|
 |
La première étape était alors de trouver de
quoi réaliser une bascule D avec un circuit en boitier SOIC
(pas question de mettre un 4013 DIP à plat).
Quand les composants CMS se font rare dans une chambre bordelique,
on peut ruser en cherchant par exemple un registre à décalage
ou des latchs de bus, qui ne sont rien d'autre que des suite de
bascules D.
Ici la chance a joué, j'ai trouvé une double bascule
HC74 perdue dans un coin d'une vieille carte mère. Un coup
de pistolet à décaper et il était prêt
à l'emploi.
|
 |
La modification de la cartouche consiste d'abord à virer
tout ce dont on a pas besoin.
Il faut alors savoir en premier lieu ce qu'on doit conserver. Ici
ce sont les lignes d'alimentation (+3V, masse), /WR et AD1. Le brochage
des cartouches GBA se trouve aisément sur le net (indice).
A l'aide d'un cutter, grattez délicatement le vernis qui
recouvre les pistes concernées pour mettre le cuivre à
nu sur la plus grande longueur possible.
|
 |
Une fois les lignes utilisables, le circuit imprimé peut
être découpé selon la zone en rouge. Il vaut
mieux faire la découpe au disque abrasif, le circuit étant
fin et la pince coupante risquant de le fendre "plus loin"
que prévu.
Pas la peine non plus de garder assez de circuit pour qu'il vienne
buter contre les petites bosses en plastique dans la cartouche:
il sera collé plus tard. Pas de mouvement possible.
|
 |
La partie la plus délicate et la moins simple à détailler
est la réalisation du montage sans circuit imprimé.
Qu'il soit basé sur une véritable bascule D ou un
autre circuit pouvant remplir la même fonction, on peut généralement
simplifier les connections entre les broches pour limiter le nombre
de ponts.
Sur le HC74 que j'ai utilisé, il n'y a eu que deux ponts
à faire: un pour connecter la masse aux deux résistances
de tirage R4 et R5 (la patte pliée qu'on voit soudée
aux résistances "103"). Et un second pour connecter
les entrées R et S au 3.3V. Le reste (Q1, R1) se retrouve
suspendu entre des broches.
|
 |
Note importante pour les têtes-en-l'air: je me suis fait
niquer en pensant que le HC74 avait le même brochage et la
même polarité sur R et S que le 4013. Grossière
erreur, voir le schéma.
Reste le câblage au fil de cuivre du paquet de composants
au circuit précedemment découpé. L'émail
du fil peut être fondu au fer à souder. Quand ça
se met à sentir le cheval, c'est que c'est bon.
Pour limiter les risques de court-circuits, on peut couper les
broches inutiles du circuit intégré (seconde bascule
D, sorties supplémentaires du registre...)
Assurez-vous que les connections sont bonnes et que l'alimentation
n'est pas court-circuitée, puis testez le tout sur votre
DS. Attention, c'est votre problème si vous crammez votre
slot 2.
|
 |
Notez Q2 soudé sans résistance sur sa base à
gauche, directement sur le circuit imprimé.
Il faut couper la tranche en plastique qui sépare les contacts
dorés du reste, sur la partie supérieure de la coque.
Le tout doit alors rentrer facilement. Assurez-vous que la cartouche
peut être remontée sans être bombée, et
que le poids du moteur peut tourner librement.
Fixez le tout au pistolet à colle, en ne posant que quelques
gouttes sur les bords des élements. Gare à certaines
colles en tube qui peuvent dissoudre l'émail du fil et provoquer
des court-circuits si ils sont emmelés.
|
 |
La cartouche peut être generalement testée dans les
menus de selection des contrôles.
Un court test dans le vrai jeu a revelé que le moteur est
en fait commandé en PWM, ce qui le fait émettre un
sifflement assez distinct. Le signal est très variable selon
les collisions, les accélerations...
Plusieurs personnes se plaignent de ce petit souci même avec
les vrais Rumble Pak. Les seules solutions qui me viennent à
l'esprit seraient soit de lisser le signal de commande, soit de
demander à Nintendo d'arrêter de faire du zèle
(même si c'est dur de leur en vouloir alors que ça
partait d'une bonne intention).
|
|