
Ça concerne le WonderWave. Pour ceux qui ne savent pas ce que c'est, c'est le machin de droite sur cette photo :

C'est un adaptateur infrarouge pour WonderSwan. Officiellement, ça sert à échanger des données avec la PocketStation de Sony (si ça ne vous dit rien, cliquez là). Certains disent qu'on peut en utiliser deux pour remplacer le câble de liaison entre deux consoles (pour les jeux qui se jouent à deux en link), mais je ne sais pas si c'était officiellement conçu pour, ou si ça fonctionne par un heureux hasard. Quoi qu'il en soit, cet accessoire ne suscite pas beaucoup d'intérêt et il y a assez peu d'infos dessus (avantage : il y a quelques années du moins, on pouvait le trouver à assez bas prix).
Revenons-en à Godzil. Pendant l'AC, on en vient à parler du WonderWave, et il me dit "je crois que ça utilise l'IrDA, ce truc". L'IrDA, pour faire simple, c'est le standard qui était utilisé sur les ordinateurs portables, téléphones portables et certaines imprimantes, à l'époque où ces machines pouvaient communiquer par infrarouge. Ça n'a jamais vraiment eu de succès : les limitations de la technologie sur la distance maximale et l'angle à respecter entre les deux machines faisaient que c'était assez peu pratique à l'usage.
J'ai toujours aimé faire joujou avec les infrarouges, et la remarque sur l'IrDA me trottait dans la tête, donc je me suis dit que j'allais tirer ça au clair.
Première étape : faire un programme pour envoyer et recevoir des données sur la WonderSwan. Le WonderWave utilise les broches du port série qui est sur le port d'extension, donc finalement, ça revient à faire un programme de terminal. Donc j'en code un minimaliste vite fait (enfin, en une semaine quoi, vu que je démarre de zéro ou presque)... et à la fin, je me rends compte que je me suis embêté pour rien : j'aurais pu brancher le WonderWave directement sur un port série de PC avec un peu d'électronique entre les deux, et utiliser n'importe quel programme de terminal déjà fait sur PC

Maintenant que je peux envoyer des données, il ne reste plus qu'à mettre un récepteur infrarouge en face du WonderWave pour voir à quoi ressemble ce qui est émis. Comme j'ai la flemme de sortir l'oscilloscope de son carton (je sais, c'est honteux

Euh, mais au fait, on trouve quoi en cherchant "WonderWave" et "IrDA" sur Google ? Et surtout, pourquoi j'ai pas pensé à commencer par là ?
Résultat : y'a un japonais qui confirme que c'est de l'IrDA à 9600 bps, et qu'on peut utiliser un PC avec un port infrarouge pour communiquer avec le WonderWave. Grmbl.
Bon, j'aimerais bien essayer, moi aussi. Un test avec un téléphone portable n'est pas concluant : le WonderWave ne reçoit rien. Avec un PC portable, c'est plus prometteur : quand le port infrarouge est activé, toutes les quelques secondes, on reçoit un gros paquet d'octets. Le protocole est assez usine-à-gaz : il y a des services pour détecter les périphériques, échanger des fichiers, etc. Le WonderWave ne fait que le strict minimum (envoyer et recevoir des octets) et j'ai aucune envie de recoder tout ça. Donc il me faut un moyen de court-circuiter toutes ces couches logicielles et d'accéder directement au matériel à bas niveau.
Sous Windows, ça ne semble pas prévu (en tout cas j'ai pas trouvé) : il y a bien un "port série infrarouge" dans les périphériques, mais c'est en fait un port série émulé par-dessus tout le protocole IrDA, donc ça n'aide pas. Sous Linux ça semble plus faisable, mais comme d'habitude c'est un vrai cirque à faire fonctionner : faut trouver le bon driver, les pages Web qui en parlent datent d'il y a plus de 10 ans donc les explications sont sûrement complètement obsolètes, etc. Pas motivé pour me prendre la tête avec ça.
Dans mes vieux PCs fixes, je crois que j'en ai un avec une carte mère qui permet de choisir entre un port série classique et de l'infrarouge, mais il faut un module émetteur/récepteur en plus et je l'ai pas. Puis je me rappelle vaguement que dans le tas de cartes électroniques que j'ai amassées au fil des années, il y en avait qui venaient d'une imprimante avec un port infrarouge. Après quelques fouilles archéologiques, je n'avais pas rêvé : il y a bien un PCB avec un émetteur/récepteur dessus, comme ça :

La référence est effacée sur le boîtier, mais avec une petite recherche sur Google Images, je retrouve la référence. Les docs correspondantes se trouvent assez facilement.
Je pourrais brancher le module directement sur un PC fixe, mais finalement j'aimerais assez quelque chose qui puisse se connecter à n'importe quel PC, histoire de ne pas avoir à se taper une vieillerie qui prend de la place, et être obligé de bricoler dans le boîtier du PC.
Le signal qui sort du module émetteur/récepteur IR est très proche du signal d'un port série "normal", la seule différence c'est qu'au lieu d'avoir bit à 0 = état bas et bit à 1 = état haut, c'est bit à 0 = brève impulsion et bit à 1 = pas d'impulsion. Il y a des circuits intégrés tout faits qui font la conversion entre les deux formats (exemple), mais j'ai la flemme d'acheter ou même de demander un échantillon. Le principe de conversion est simple, ça doit être possible de se débrouiller autrement. Ah tiens, il y a justement un montage avec un AVR qui traîne sur mon bureau depuis des mois, si je faisais un peu de code ?
Bref, quelques heures plus tard, j'ai un truc qui peut se brancher sur n'importe quel port série de PC (ou sur un adaptateur USB-série), et qui communique dans les deux sens avec le WonderWave


(si vous avez lu jusqu'ici, bravo !)
TL;DR : à quoi ça sert ?
Ben... à pas grand-chose à part passer le temps, honnêtement

L'infrarouge c'est pas super pratique à l'usage, c'est plus fiable de brancher un câble. Peut-être pour un projet de bidule télécommandé avec une WonderSwan + WonderWave ? Ou pour faire communiquer un PocketStation avec un PC ?
TL;DR : qu'est-ce qu'il y a à tirer de tout ça
- Le WonderWave est bien un transceiver IrDA, configuré en mode SIR à 9600 bps. Y'a aucune "intelligence" dedans, c'est juste de la conversion de signal (série "standard" <-> série "impulsions SIR" <-> signal optique) ; les octets reçus sont émis tel quels, et pareil dans l'autre sens.
- Seul le mode 9600 bps est supporté ; la WonderSwan peut faire aussi du 38400 bps, mais le WonderWave ne le gère pas.
- L'IrDA est half-duplex, car le récepteur voit les infrarouges émis par l'émetteur qui est juste à côté ; mais le WonderWave désactive apparemment le récepteur pendant que l'émetteur est actif, car on ne reçoit pas les octets envoyés (même en plaçant un miroir devant). Ce n'est pas le cas de tous les modules émetteurs/récepteurs.
- Ça doit pouvoir effectuer marcher avec les jeux qui fonctionnent en link, sous réserve qu'ils n'utilisent pas le mode 38400 bps, et qu'ils n'essaient pas d'émettre en même temps qu'ils reçoivent (j'ai aucune idée de ceux qui seraient compatibles).
- Avec certaines télécommandes, le WonderWave reçoit des trucs ; ce n'est pas fait pour ça, et je ne sais pas si on peut en tirer quelque chose d'intéressant (probablement pas)
- Je ne vois pas de moyen d'utiliser le WonderWave pour émuler une télécommande classique : il n'y a pas de moyen de générer une porteuse à la bonne fréquence (ou alors, en comptant sur les harmoniques, vu que signal est rectangulaire ? peu probable que ça marche).
- Faudrait que je réfléchisse davantage avant de me lancer dans des trucs, j'éviterais de perdre du temps bêtement

- Godzil a essayé de m'avoir avec un projet++, mais je suis venu à bout de celui-là
