J'en parlais récemment, j'ai profité de mon temps libre de ces dernières semaines pour apporter la touche finale à mon Super Minitel. Le résultat est plutôt probant, bien qu'il y ait des améliorations à apporter, à mon humble avis.
Ajout d'un support pour Raspberry Pi
J'ai ressorti mon bon vieux OpenScad afin de concevoir un support pour tenir le Raspberry Pi et sa carte d'adaptation vidéo/clavier dans le Minitel. J'ai opté pour une fixation par collage sur le Minitel, avec un espace pour laisser passer le connecteur de clavier. Le Raspberry Pi est fixé avec un vis, tandis qu'un ergot vient se loger dans le second emplacement de vis et empêcher tout mouvement.
Je l'ai ensuite imprimé sur ma Prusa i3, puis testé à blanc avec le Raspberry Pi. J'ai enfin monté le tout dans le Minitel, en prenant soin de maintenir l'ensemble avec des pinces serrantes. C'est franchement pratique ces pinces, j'ai découvert leur utilité grâce à Babozor et ses conseils de la Grotte du Barbu !
Après une nuit de séchage, j'ai pu fixer le Raspberry Pi dessus et tester le bon fonctionnement du clavier rétractable (qui passe du coup en dessous du Rasp).
Intégration du son
Après avoir commandé tout un lot de composants pour ajouter un ampli audio dans le minitel et les avoir soudé, j'ai pu tester le rendu. C'est pas trop mal, mais il y a un shhh de fond qui est plutôt gênant, ça doit être du au fait que mon ampli n'intègre pas de filtre ... Ceci dit en ajustant correctement le volume, on ne l'entend quasimment plus.
Pour la fixation, même recette que précédemment: j'ai conçu un support adapté au PCB (avec une seule vis pour la fixation, j'ai été radin), je l'ai imprimé et collé dans le Minitel.
Le rendu son n'est pas merveilleux, mais ça donne un bon vieux son old school, j'aime bien :). Pour terminer, j'ai conçu et imprimé un guide de perçage afin de faire des petits trous sur le côté du Minitel à l'endroit où se trouve le haut-parleur afin de laisser le son se diffuser.
Je l'ai imprimé, et je m'en suis servi de guide pour percer les trous sur le Minitel. Le rendu est très propre, et n'a nécessité aucun tracé particulier, juste la fixation du guide avec une pince auto-serrante.
Déco finale
S'il y a bien un domaine dans lequel je suis une quiche, c'est la déco. Je suis une bille en peinture, pochoirs, dessin, etc. Mais je ne voyais qu'une seule manière de décorer ce super Minitel: repeindre la carcasse en blanc cassé, et peindre un sigle «Super Minitel» au pochoir.
J'ai donc commencé par concevoir un pochoir sur Inkscape. En reprenant des polices de Nintendo et en bidouillant un peu, j'ai réussi à imprimer un motif noir sur blanc sur du papier photo. Après un petit tour chez Cultura pour acheter de la peinture en bombe et à pochoir, quelques babioles et de la colle repositionnable en spray, j'ai entamé à la main la découpe des caractères. Un bon gros fail. Peu de précision malgré l'utilisation d'un cutter très fin, et l'encre bavait sur mes mains. Il fallait trouver autre chose.
Je me suis rabattu sur l'impression 3D: en effet, quoi de mieux que d'imprimer un pochoir en 3D et de s'en servir pour peindre le motif ! C'était sans compter deux éléments importants pour des pochoirs. Le premier, c'est que lorsque l'on crée des pochoirs, on ne peut pas raisonnablement réaliser de belles lettres possédant des vides, comme les lettres P ou R. On est obligé de laisser une liaison pour que la partie masquant l'intérieur "tienne". Le rendu en est forcément moins bon. Second point, il doit être assez fin pour masquer et tenir correctement sur le support. Avec l'imprimante 3D, imprimer fin c'est imprimer pour rien. Lorsque l'on décolle le motif imprimé, il se plie et généralement cette déformation reste. C'est du plastique (PLA dans mon cas), donc assez difficile à reformer, et la colle repositionnable n'y a rien fait. Il ne me restait qu'à tester mon pochoir épais (1mm) afin de voir si le rendu serait correct.
Ma dernière erreur avec les pochoirs a été de penser que la colle repositionnable c'était LA solution. En réalité, elle a créé des petits points de colle sous le pochoir, et l'encre s'est enfournée sous le pochoir à cause de l'irrégularité de celui-ci et de l'espace vacant laissé par la colle en spray. Merci les tutos Youtube, mais cette fois-ci ça ne m'a pas aidé. heureusement que j'avais fait des tests sur carton et papier avant de me lancer sur le Minitel...
J'étais pas loin d'abandonner quand j'ai eu une idée toute simple: pourquoi ne pas imprimer les lettres avec l'imprimante 3D et les coller de façon jolie sur la carcasse du Minitel ? De cette façon, on obtient un effet de relief et un beau contraste blanc cassé/noir qui est du plus bel effet (enfin je crois). J'ai donc modélisé les lettres en convertissant le modèle SVG en SCAD (merci paths2openscad !) et les ai imprimé à l'envers pour que le côté lisse corresponde à la partie visible (de face) et donne un rendu moins "imprimante 3D". Le résultat est très probant je trouve.
j'ai ensuite placé les lettres, les ai collé et ai attendu que cela sèche. J'ai fait l'erreur de marquer l'alignement au crayon papier, et cela se voit encore un peu de très près, c'est dommage. Je prendrais une équerre pour le prochain exemplaire et ne tracerai aucun trait, cela sera plus propre.
Résultat final
Au final, j'ai un Super Minitel qui ressemble exactement à ce que je voulais, qui accepte jusqu'à deux manettes Super NES en USB (pratique pour Street Fighter, mais on peut aussi jouer grâce au clavier), et qui attire la curiosité avec son aspect "presque" Super Nintendo.
Je vais le beta-tester à la maison afin de déceler de potentiels défauts de conception avant de le donner à un généreux soutien du projet OpenIt, et d'en faire deux autres pour les deux autres soutiens ayant choisi cette récompense.
Il me reste encore quelques Minitels un brin différents à la maison, certainement l'occasion de me faire la main sur la soudure CMS à air chaud ;). Il me faut absolument un exemplaire à la maison, et les minis-moi auront obligation d'y jouer (vous en conviendrez: Super Mario World, Street Fighter II, Bomberman 3 et Worms sont des jeux formidables o/).
Ah et si vous voulez tenter de reproduire ce hack, j'ai mis des ressources à disposition (majoritairement les PCBs, les fichiers de conception 3D ainsi que le software permettant d'interfacer le clavier). Il manque encore des éléments (comme la liste des composants pour les PCBs, mais ça viendra -- il y aura peut-être des modifications suite au beta-test).
Je me rends compte que cela fait plusieurs mois que je n'ai rien publié ici, et je m'en désole. Cependant les choses avancent bien de mon côté, quoique pas aussi vite que je le souhaiterais. Et j'ai encore beaucoup de retard sur les contreparties du projet Open It, mais comme le titre l'indique j'avance doucement mais sûrement.
Une fournée de Minitels
J'ai continué la collecte de Minitels afin de pouvoir en fournir trois aux gentils soutiens, ainsi que la carte v3 d'adaptation. J'ai reçu les PCBs récemment, mais vu que je vadrouille énormément ces derniers temps (j'ai fait le tour de l'Europe et c'est pas fini), je n'ai pas pris le temps d'en monter une et de tout souder. D'autant plus que j'ai pu repérer quelques défauts que je vais devoir corriger dans une v4 (avec une autre commande de PCB du coup), mais ça ne devrait pas a priori impacter le fonctionnement de celle-ci.
Depuis presqu'un an mon entourage sait que je recherche des Minitels, et ils m'en ont récupéré quelques-uns: récemment une fournée de 4 minitels m'attendait ! Le problème est qu'il s'agit de modèles Matra, un brin différents de celui pour lequel ma carte d'adaptation a été conçue, et je vais peut-être devoir adapter un peu celle-ci s'il n'est pas possible de régler cela via la connectique.
A fond sur l'impression 3D
Cela fait presque un an que je travaillais sur mon imprimante 3D (Prusa i3), et j'ai récemment pu la terminer (via une savante combinaison de commandes et de temps disponible) et la tester. Elle fonctionne bien, mais il y a quelques réglages à faire afin de sortir des pièces de bonne qualité.
En parlant de qualité, je me suis rendu compte que certaines pièces se fendillaient, et qu'elles pourraient casser dans pas très longtemps. J'en ai donc profiter pour les réimprimer tant que l'imprimante fonctionne toujours, histoire d'avoir du surplus en cas de casse. Je pense aussi réimprimer d'autres pièces moins critiques une fois les réglages fins terminés. Ce n'est pas du luxe: le PLA est apparemment cassant, et si des pièces ont été insérées de force (c'était le cas pour certaines pièces fêlées), alors les risques de casse augmentent. Et je n'ai pas envie de me retrouver bloqué et dépenser des sous pour les faire imprimer et livrer alors que j'avais une imprimante fonctionnelle sous le coude.
De manière générale, l'imprimante fonctionne bien et je pense qu'une fois les réglages terminés et les pièces fêlées remplacées, elle devrait être aux petits oignons et parée à imprimer de nouveaux kits, si certains sont intéressés. Je me suis aussi initié à la CAD sous Linux (OpenSCAD et FreeCAD) afin de pouvoir commencer à concevoir des pièces liées à des projets connexes. J'ai une petite préférence pour OpenSCAD, car l'aspect programmatique (et donc paramétrique) des pièces qu'il permet de concevoir est très intéressant. Quant à la conception rapides de pièces, FreeCAD est d'un bon secours. Ça me rappelle mes années de SolidWork.
Quadcopter
Avant de me lancer dans la réalisation d'un quadcopter maison, j'étais persuadé qu'il fallait apprendre à bien les piloter afin de pouvoir manipuler un engin expérimental. Coup de chance, en participant à un CTF il y a quelque temps, j'en ai gagné un et cela fait bientôt un an que je m'entraîne avec. Pour le coup, j'ai bien pris en main la mécanique de vol de ces engins, et entre temps décortiqué leur conception.
Ainsi, je compte bien me servir de l'imprimante 3D pour concevoir le cadre d'un petit quadcopter, et développer la carte de contrôle en mode opensource et basée sur des éléments simples. Dans un premier temps, je pense que je me pencherai sur une carte de contrôle existante, histoire de bosser sur des adaptations au niveau firmware, puis je passerai à la phase de conception et de test. L'idée est d'utiliser un émetteur/récepteur 2.4Ghz pas cher pour assurer la transmission radio, et du matériel standard pour construire le quadcopter. Au final, les plans divers seront publiés en espérant que cela soit fun et instructif.
Transition 2015/2016
Une grande partie de l'année 2015 est passée à une vitesse folle, et du coup je commence déjà à planifier (et limiter) les projets pour 2016: * minitel v3 avec carte aux petits oignons avant Noël (pour faire des cadeaux aux soutiens qui les attendent depuis 2 ans) * finalisation de l'imprimante 3D (réglages et modifications techniques) * conception d'une borne d'arcade basée sur du RaspPi2 ou RIoTboard (selon les tests) * quadcopter de la mort (ou pas)
Je compte aussi comme depuis quelques années proposer une présentation pour la Nuit du Hack, et pourquoi pas participer une année de plus à Ndh Kids. Ou alors faire un atelier, mais pas les deux car cela demande beaucoup d'investissement.
Symbole de l'avancée technologique française des années 1980, le minitel a arrêté son service le 30 juin 2012. Alors beaucoup de gens, ne voyant plus l'utilité de la bestiole, s'en sont lâchement séparés à grand coup d'annonces sur Le Bon Coin, Ebay, ou tout simplement à la déchetterie. Quel dommage. Il y a vraiment mieux à faire avec un minitel que le mettre au rebut.
Avant la Nuit du Hack 2013, je me suis fixé comme mission de sauver au moins un de ces spécimens d'une fin atroce afin de le recycler et de lui donner une nouvelle jeunesse. J'ai cherché une annonce sur un site spécialisé, trouvé un minitel à sauver pour sept euros et une heure et demi de métro, et récupéré le malheureux. Son ancienne propriétaire me l'a laissé sans le moindre état d'âme.
Bon, et maintenant ?
Avant de poursuivre, passons notre vieux minitel au scanner. Sa composition est relativement simple:
La carte de contrôle intègre un modem, un micro-contrôleur, de la mémoire, et une partie gérant le clavier du minitel. C'est vraiment de la vieille facture, mais ce n'est pas plus mal: l'ensemble n'étant pas miniaturisé, il est plus facile de découvrir le schéma électronique de cette carte.
Plusieurs options s'offrent à nous: * reprogrammer le micro-contrôleur pour en faire ce que l'on veut * utiliser le port DIN à l'arrière pour le transformer en terminal série * utiliser le minitel en tant que moniteur et intégrer un raspberry Pi dedans
La dernière option m'a semblé intéressante, surtout que l'on dispose de beaucoup de choix en ce qui concerne les applications du raspberry Pi. Une qui m'a bien botté, certainement par pure nostalgie et esprit rétro, s'appelle RetroPie. RetroPie est une distribution intégrant des émulateurs de console, avec une interface intuitive. Pourquoi ne pas transformer ce vieux minitel et lui donner une nouvelle jeunesse en le changeant en console de jeu ? L'idée m'a plu, et je me suis lancé.
Réutiliser l'écran du minitel
L'écran n'est rien d'autre qu'un tube cathodique piloté par une carte vidéo. Coup de chance, plusieurs personnes ont déjà étudié le problème et trouvé des solutions. La meilleure d'entre elle consiste à concevoir une carte électronique réalisant l'adaptation d'un signal vidéo composite vers les connecteurs spécifiques au minitel. Ces connecteurs sont assez particuliers, car il s'agit de piloter le signal envoyé à la cathode du tube pour afficher des nuances de gris à l'écran, tout en se connectant à la carte vidéo pour lui envoyer le signal de synchronisation.
Comme je le disais, un schéma de carte d'adaptation est présent sur le net, et je me suis donc empressé de prototyper une carte à partir de celui-ci. Avant toute chose, comprendre le montage.
<emb159|center>
La carte d'adaptation a deux tâches essentielles à assurer: * l'amplification du signal vidéo * l'extraction du signal de synchronisation vidéo des données de trame
L'amplification est basée sur un montage amplificateur à transistors, qui au final module une tension de 44V environ en fonction du signal et qui l'envoie à la cathode du tube. La séparation de synchro est effectué par un composant spécialisé, le LM1881, qui se charge de séparer le signal de synchronisation de la composante de trame. Afin d'éviter l'affichage de rayures lors du retour de balayage, l'amplificateur doit être shunté (signal à 0) lorsque l'on a terminé le balayage d'une ligne sous peine de voir des rayures apparaître. C'est ce que l'on appelle le "blanking".
Seulement voilà, il s'avère que le schéma trouvé sur le net est truffé d'erreurs: * la patte 5 du LM1881 utilisée dans le schéma correspond en réalité à la patte 6 * les diodes utilisées pour la commutation de blanking sont montées en inverse
J'en ai donc profité pour refaire les schémas et réaliser une première version de PCB après prototypage réussi sur breadboard.
<emb154|center>
Fabrication de PCB
Une fois le PCB conçu (éléments placés et routés), il m'a fallu trouver un moyen de le produire. Plusieurs techniques sont possibles, dont notamment la conception faite à la maison, à l'aide d'une insoleuse et de perchlorure de fer. Le problème ? Je n'ai absolument pas ce matériel. Peut-être en allant dans un Fab Lab ? Aucun à portée de main. La dernière solution: tenter de produire une petite série via Internet.
En réalité, j'ai tout fait de chez moi, de la commande des composants à petits prix à la réalisation de PCB. Pour la réalisation de PCB, j'ai découvert OSHPark, un service en ligne relativement sympa qui permet de faire produire ses PCBs à petit tirage (multiple de 3), tout en permettant à d'autres de les réutiliser. De l'open-source version PCB. j'étais un petit peu anxieux quant à la réalisation du PCB, mais au final cela a pris environ 3 semaines entre la commande et la réception du colis, pour une trentaine d'euros. Ce n'est pas très cher, car mon PCB était vraiment pas optimisé pour faciliter le "débogage" et les modifications de dernière minute.
Mon PCB sur OSHPark:
<emb155|center>
Voici ce que j'ai reçu:
<emb156|center>
Après montage des composants et soudure:
<emb157|center>
Test de la carte d'adaptation
Une fois la carte prête, il s'agit de la tester en production. Je connecte donc la carte au minitel (carte vidéo et cathode du tube), puis sur le raspberry Pi que je boote ... Et l'écran s'illumine, avec une image quasi parfaite ! J'avoue que cela faisait peut-être 8 ans que je n'avais pas fait de PCB, mais bon apparemment c'est comme le vélo, ça ne s'oublie pas.
<emb158|center>
La première version est fonctionnelle, mais plusieurs améliorations peuvent être apportées: * Routage plus efficace, avec une carte plus petite * Intégration d'une alimentation stabilisée +5V, pour auto-alimenter le raspberry Pi et pouvoir vraiment l'intégrer à 100% dans le minitel * Un amplificateur audio + HP, histoire de mettre un peu de son
Bref, je suis bon pour faire une seconde version de la carte. En intégrant l'alimentation 5V et un routage double face plus efficace, le prix de revient de 3 PCBs est de moins de 15 euros, soit moins de 5 euros par PCB ce qui est plutôt pas mal. Avec l'ampli audio, cela prendra un peu plus de place et donc sera un peu plus cher (de l'ordre de 7 euros). Je n'ai pas encore eu le temps de finaliser la version 2, mais j'y travaille.
Minitel Entertainment System
La base de mon Minitel Entertainment System est quasiment prête. Il ne me reste plus qu'à intégrer RetroPie sur une carte SD, et y mettre des roms. J'ai privilégié une installation par les sources, plus longue mais plus fiable. Une fois installé, il me faut connecter une manette. Wait ... Je n'ai pas de manette USB !
Mais j'ai une Wii, avec des wiimotes et un dongle USB bluetooth. Et c'est largement suffisant, car debian possède un paquet spécifique pour utiliser une wiimote en tant que périphérique d'entrée. J'installe le paquet et insère un script shell permettant de le lancer automatiquement au démarrage. J'en profite pour forcer l'allumage d'une des quatre LEDs du bas de la manette pour indiquer la bonne connection, et configurer celle-ci pour qu'elle soit reconnue comme un joystick. Pour terminer, j'ai configuré l'ensemble des boutons pour pouvoir m'en servir comme manette de Super NES. J'ai fait cela avec le raspberry Pi connecté à ma TV, c'est tout de même plus simple.
Une fois le tout reconnecté dans le minitel, avec la carte d'adaptation vidéo en place, je peux profiter de mon prototype de Super MES:
Et la suite ?
La suite est relativement simple, car je ne compte pas en rester là: créer la version 2 de la carte d'adaptation pour pouvoir loger dans le minitel le raspberry Pi et un HP pour du son. Une fois cela fait, je compte bomber et stickeriser le minitel, voire pourquoi pas prendre en compte son clavier, mais ça c'est un autre projet.
Pour terminer, je compte mettre sous une licence opensource le PCB et les schémas, afin que d'autres puissent s'en servir et pourquoi pas améliorer le montage.
A suivre ;)
Liens utiles