TinyPi - une mini console Rétro-Gaming à base de Pi Zero (technique soudure et fbcp)

sudomod_wermy est visiblement un grand amateur de rétro-gaming et réalise de nombreuses consoles par lui-même et il n'hésite pas à faire preuve d'ingéniosité pour exploiter le GPIO et gagner un maximum de place.
Il nous présente Tiny Pi (aussi appelé PioCKET-tiny).
A voir absolument: la technique pour souder le GPIO!
TinyPi - une console de jeux rétro à base de Raspberry-Pi
Une console réalisée à base d'une carte personnalisée pour limiter le nombre de connexion filaire... le résultat est super compacte, c'est impressionnant
Les composants du TinyPi
Parmi les composants, nous retrouvons:
  • un mini joystick digital 5 directions et deux boutons.
  • Un interrupteur d'alimentation
  • Un interrupteurs contact semi-circulaire (3 positions, placé en haut de la console).
  • La carte personnalisée permet de monter tous les composants, y compris un afficheur LCD 128 x 128 pixels couleurs
  • Deux haut-parleurs CMS (les carrés blancs) sont utilisés pour produire le sont
  • Un module style "powerboost d'Adafruit" permet de fournir une alimentation depuis un accu Lipo de 350mAh tout en offrant des possibilités de recharge.
Test du jeu Sonic en émulation sur le plateforme
Test de la plateforme

Et pour finir, quelques pièces en 3D pour fignoler le projet
Un boîtier qui s'imprime en 3D

La dose d'ingéniosité pour connecter le GPIO
L'idée que je trouve absolument fabuleuse, c'est l'assemblage du Pi Zero sur la carte TinyPi.
L'arrière de la carte est équipé de deux rangée de pastilles pour un total de 40 broches (correspondant au GPIO du Pi Zero).
Arrière de la carte TinyPi - pastille de connexion pour GPIO
Chacune des pastilles est chargée avec de l'étain.

Ensuite, il faut aligner le Pi Zero au dessus. Et maintenir le tout bien aligné avec vis et écrou.
Placer le Pi Zero avec le GPIO au dessus du connecteur TinyPi
Maintenir les deux cartes alignées avec boulon et écrou
Ensuite, en utilisant une pointe de fer pouvant rentrer dans le trou du GPIO:
  • il ne reste plus qu'à charger chaque trou du connecteur GPIO avec un peu d'étain... 
  • et s'assurer d'avoir fondu la soudure de la pastille sous le GPIO pour assurer un contact électrique entre le Pi et la carte TinyPi
Application de soudure sur le trou du GPIO.
Puis utiliser la pointe pour fondre la soudure sur la carte TinyPi
Perso, je trouve la technique absolument géniale!

En vidéo
Allez, je vous laisse avec la vidéo du projet disponible ici sur YouTube.

Et l'affichage écran, comment fait-il?
Je ne sais pas pour vous mais moi, il y a un truc qui me turlupine vachement, c'est comment il a fait pour contrôler l'afficheur (et avec retro-pie)?

La réponse se trouve dans la section "instructions" de hackaday.io 

D'après ces instructions, c'est la technique fbcp (Frame Buffer Copy) qui permet d'envoyer une copie du Frame Buffer (ou il y a un rendu de l'affichage) sur un périphérique accessoire (comme un TFT).

Le TFT utilisant un pilote ili9163 exploite le bus SPI (à 4 MHz) + les GPIO 24 et 25. La distribution RPI dispose visible d'un module noyau fbtft_device qui cherche sa configuration dans fbtft.conf (là où est mentionné le pilote logiciel spécifique fb_ili9163 à utiliser)

Je crois que cette technique date un peu (du temps de Raspbian Jessie).
Dans les tutoriels PiTFT sur le Wiki de MCHobby, j'ai eu l'occasion de rencontrer une technique plus récente appelée "HDMI Mirror"

 
Ressources
En vous souhaitant une bonne lecture si le sujet vous intéresse.