Le projet ressemble d’abord à la promesse maker idéale : la console portable fait tourner Game Boy, GBA, NES, SNES et Mega Drive, tout en étant assemblée à partir de modules disponibles dans le commerce, sans PCB personnalisé et sans soudure.13

À l’ouverture du dépôt de Zalmotek, la promesse change immédiatement de nature.

Trois modules de boutons portent tous la même adresse I²C et doivent être renumérotés, tandis que l’écran DSI de 8 pouces naît en portrait alors que la console se tient en paysage. Le microcontrôleur lit les commandes, Linux les reçoit par Bridge, le daemon Python les transforme en gamepad, et RetroArch s’insère dans la session kiosk dont la stratégie de rotation change entre menu et jeu.3

Autrement dit, la complexité n’a pas disparu. Elle a simplement quitté le fer à souder pour s’installer dans les interfaces entre modules.

Sans PCB

Arduino insiste sur ce qui rend cette console accessible : tous les composants s’achètent séparément et se relient par des câbles ou connecteurs déjà prévus pour eux, le boîtier et les boutons imprimés en 3D restant les seules pièces réellement personnalisées de la construction.1

La liste reste pourtant conséquente : UNO Q 4 GB, Media Carrier, écran DSI tactile Waveshare 8 pouces, trois Modulino Buttons, Modulino Joystick, module UPS 3S alimenté par trois cellules 18650, petit haut-parleur et adaptateur USB-C pour l’alimentation comme pour les données.23

Carte Arduino UNO Q 4GB utilisée comme cœur de la console RetroConsole
L’UNO Q rassemble dans le format UNO un processeur Qualcomm sous Linux et un microcontrôleur STM32. La console exploite précisément cette séparation plutôt que de demander à une seule puce de tout faire.Arduino

Sur la même carte, le Qualcomm Dragonwing QRB2210 réunit quatre Cortex-A53 jusqu’à 2 GHz, 4 GB de LPDDR4 et 32 GB d’eMMC pour Linux, tandis qu’un STM32U585 Cortex-M33 jusqu’à 160 MHz prend le travail proche du matériel.4

La modularité retire précisément la conception électronique spécialisée : personne n’a besoin de dessiner la carte mère, de router le PCB, de commander des prototypes et de souder les composants, ce qui raccourcit fortement le chemin vers la copie fonctionnelle.

Mais ce raccourci oblige à accepter les formes, connecteurs et comportements de modules qui n’ont jamais été dessinés ensemble pour devenir ce type de console. En effet, un module standard ne peut pas anticiper l’ergonomie ni le routage de tous les objets qui l’emploieront plus tard.

Deux cerveaux

C’est là que l’UNO Q devient plus intéressant qu’un simple petit PC Linux.

Les boutons et le joystick rejoignent le bus Qwiic piloté par le STM32, qui lit les entrées à intervalles prévisibles avant que le Bridge d’Arduino ne les transmette à Linux. Le daemon Python expose alors le périphérique uinput standard que RetroArch reçoit comme un gamepad Linux banal, sans qu’il faille modifier l’émulateur.13

Schéma de l’architecture de RetroConsole entre Modulino, STM32, Bridge, Linux et RetroArch
La chaîne d’entrée traverse quatre mondes : modules I²C, microcontrôleur STM32, Bridge Arduino puis daemon Linux. RetroArch ne reçoit qu’un gamepad standard.Zalmotek

Cette séparation déplace le problème au bon endroit : le MCU n’a pas à faire tourner RetroArch, Linux n’a pas à sonder directement les boutons par des boucles applicatives fragiles, et chaque côté conserve le travail pour lequel il est équipé.

Adresse occupée

Le meilleur exemple tient dans les boutons.

La console utilise trois Modulino Buttons afin d’obtenir six actions A/B/X/Y/Start/Select. Chaque module possède trois boutons physiques, mais Zalmotek n’utilise que les deux boutons extérieurs parce que le bouton central se retrouve trop serré dans la géométrie finale.3

Module Arduino Modulino Buttons comportant trois boutons physiques
Trois modules fournissent six commandes à la console, mais le bouton central de chacun reste inutilisé. La disposition du module standard impose donc directement une décision d’ergonomie.Arduino

Plus amusant, les trois cartes sont livrées sous la même adresse I²C 0x3E. Branchées telles quelles sur le bus, elles se marcheraient dessus, si bien que le dépôt fournit un petit programme qui reconfigure les deux modules supplémentaires en 0x3F et 0x40, accompagné du scanner de bus et de la procédure de récupération lorsqu’une collision survient.3

C’est exactement le genre de problème qu’un PCB dédié à la console aurait réglé une fois pour toutes dans son schéma. Les modules génériques le repoussent vers l’assemblage, où il faut le documenter pour chaque constructeur.

La formule réelle ressemble davantage à brancher, configurer, vérifier, jouer qu’au « plug-and-play » promis par les objets totalement intégrés.

Écran debout

L’affichage répète le même déplacement de complexité.

Le Media Carrier fournit les lignes MIPI DSI et l’audio dont l’UNO Q nu ne dispose pas de manière pratique dans ce montage.13 Le panneau Waveshare choisi affiche 800 × 1280 pixels, sa géométrie native restant portrait quand la console, elle, est tenue horizontalement.

Arduino UNO Media Carrier avec connecteurs MIPI DSI et audio
Le Media Carrier évite de fabriquer une carte d’interface pour l’écran et l’audio. En contrepartie, le projet hérite de la configuration DSI et des contraintes de routage du carrier.Arduino

Faire tourner l’affichage via Xorg suffit dans les menus, mais le dépôt documente du tearing pendant les défilements horizontaux. Zalmotek utilise deux stratégies de rotation : Xorg gère le menu, le panneau revient à son orientation native pendant les jeux, et RetroArch effectue lui-même la rotation dans son swapchain.3

Un service surveille l’état de RetroArch et bascule dynamiquement entre les deux modes. Le code active également Vulkan, la synchronisation verticale et plusieurs réglages de frame timing pour éviter que la solution « écran standard + carrier standard » se transforme en expérience visuellement médiocre.3

Voilà encore un travail absent de la photo finale : aucun fil n’a été soudé, mais il a fallu comprendre où naissait la déchirure d’image et répartir la rotation entre deux couches graphiques.

Boîtier ouvert

La mécanique reste plus ouverte que dans beaucoup de projets imprimés en 3D.

Le dépôt contient les STL prêts à imprimer ainsi que les fichiers STEP éditables du boîtier, des supports et des boutons.3 Si le constructeur veut changer l’écran, déplacer une commande ou adapter la coque à son imprimante, il ne part pas de zéro ni d’un maillage figé.

Cette liberté explique aussi pourquoi la console est franchement volumineuse. Arduino le reconnaît dans son propre article : construire à partir de modules plutôt qu’autour d’un PCB spécialisé donne un objet « a little chunky ».1 Les connecteurs, cartes empilées et batteries conservent chacun leur emballage spatial.

Accessible, pas simple

Dans sa configuration publiée, le dépôt annonce Game Boy/GBC, Game Boy Advance, NES, SNES et Sega Genesis à pleine vitesse.3 L’émulation elle-même n’a rien d’un exploit pour un Cortex-A53 à 2 GHz, l’intérêt se trouvant dans l’intégration qui transforme cet ensemble de cartes en objet autonome.

Le plus intéressant arrive ailleurs, dans la façon dont l’objet peut être reconstruit sans atelier électronique spécialisé.

On peut rendre le matériel reproductible sans rendre chaque détail trivial. En supprimant le PCB custom, Zalmotek ouvre la console à quelqu’un qui sait acheter des modules, imprimer des pièces et suivre la procédure, mais le dépôt devient essentiel au produit, car il doit expliquer les adresses I²C, les services Linux, la rotation DSI, l’audio, le rôle USB et les diagnostics.3

Ce compromis vaut pour beaucoup d’objets makers : le design entièrement intégré sera plus petit, plus propre et probablement moins cher à produire en quantité, tandis que l’architecture modulaire restera plus épaisse et parfois plus étrange, mais pourra être reconstruite à partir de pièces accessibles et modifiée sans refaire toute l’électronique.

On ne peut pas conclure de cette console UNO Q que les modules rendent le hardware facile. Elle montre quelque chose de plus utile : quand la fabrication spécialisée disparaît, il faut documenter très sérieusement tout ce qui vient prendre sa place.