[Sebastian Staacks] est tombé sur sa vieille Game Boy et se demandait (comme vous le faites) ce qui était arrivé aux récentes tentatives pour insérer une interface WiFi dans une cartouche standard. Après un certain temps, la conclusion était que les gens avaient été trompés en abordant le problème d’une manière qui le rendait trop difficile. Évidemment, cela signifiait qu’il fallait aller jusqu’au bout et construire quelque chose, ce qu’il a précisément fait avec sa cartouche WiFi Game Boy.
Dernièrement, une tendance a été de connecter un microcontrôleur rapide à un bus, puis de déplacer l’ensemble des manigances d’interfaçage dans un logiciel. Cela fonctionne bien dans certaines circonstances, mais pour l’interface GB, ce n’est pas si facile. Le GB est alimenté par le Sharp LR35902, fonctionnant à un peu plus de 4 MHz, mais son cycle machine prend quatre horloges, ce qui donne un taux d’instruction de seulement 1 MHz. L’interface de la cartouche présente directement le bus CPU brut. Ceci est à la fois bon et mauvais. C’est bien, car il permet toutes sortes de modules d’extension, comme les appareils photo, les imprimantes et autres périphériques personnalisés, mais c’est mauvais car la charge de l’interfaçage avec le processeur, à pleine vitesse, réside carrément dans les attributions de la cartouche.
Plutôt que d’essayer de connecter ce bus directement à un microcontrôleur rapide, [Staacks] a adopté une approche différente; en décodant le bus d’adresse avec une logique discrète, il était facile de dériver des sélections de puces pour un ESP8266 intégré ainsi qu’une EEPROM à socket. L’horloge du premier a également été verrouillée et envoyée dans l’ESP8266, générant une interruption pour le réveiller. L’EEPROM stocke une application simple dont le travail consiste à présenter un clavier OSD et à envoyer des requêtes à Wikipedia, via la pile WiFi ESP8266. Le texte résultant est ensuite affiché sur l’écran à matrice de points 160 × 144. La latence d’interruption de l’ESP8266 a été atténuée par l’application en supprimant simplement le premier octet de données qui lui a été envoyé et en réessayant l’accès. De cette façon, l’ESP8266 pourrait passer la majorité de son temps à gérer des tâches sans fil, ne s’arrêtant que pour échanger un octet de temps en temps avec l’application. Une solution simple qui semble fonctionner ! Si vous êtes prêt à créer l’une de ces applications et à écrire vos propres applications, vous pouvez vous rendre sur GitHub, vous en cloner une copie et continuer !
Nous avons déjà vu quelques tentatives de le faire, [davedarko] essayé avec ce projet, et si vous recherchez hackaday.io, vous obtiendrez des tonnes de hacks de Go à parcourir. Enfin un fil twitter récent indique également un autre effort pour faire quelque chose de similaire avec le Wi-Fi, mais le développement est toujours en cours. Nous revérifierons plus tard !