Cela fait bientôt 3 ans que ce projet de Super Minitel Entertainement System traîne (enfin, surtout la prise en charge du clavier), et que je dois fournir 3 exemplaires aux soutiens du projet OpenIt. La conception a été laborieuse, mais est sur le point d'aboutir au premier exemplaire.
Des erreurs à la chaîne
La conception de la version 3 du circuit électronique d'adaptation pour Raspberry Pi a pris plus de temps que prévu, et ce à cause d'erreurs successives lors de la phase de prototypage et de réalisation.
Le circuit de départ qui m'a servi à la rédaction de l'article sur le Super Minitel Entertainement System a permis de valider le montage réalisant la conversion du signal vidéo produit en sortie par le Raspberry PI (S-Video) vers les signaux attendus par la carte vidéo du Minitel. La conception de ce circuit m'a permis de reprendre en main les outils de conception électronique assisté par ordinateur, et a été réalisée avec EagleCAD. L'outil n'est pas libre mais gratuit, et le résultat rudimentaire: le circuit était imposant, mono-couche et coûteux. Le coût de fabrication d'un circuit imprimé dépend du nombre de couches et de sa surface (grosso-modo). Le délai entre la commande d'un circuit imprimé et la réception dudit circuit dans ma boîte aux lettres est d'environ trois semaines, au mieux. Gardez cela en tête pour la suite.
Lorsque j'ai démarré la conception de la version suivante, j'ai décidé d'y intégrer le support du clavier du Minitel. J'ai choisi de supporter le clavier via un driver logiciel et un interfaçage I2C, ce qui évite d'avoir un micro-contrôleur et la phase de programmation qui va avec. J'ai donc intégré le tout sur le circuit intégré, grâce à des composants permettant d'étendre le nombre de GPIOs du Raspberry Pi, et ait fait en sorte que le circuit puisse se brancher sur le port d'extension du Raspberry en respectant les dimensions. Autrement dit, j'ai du tout serrer pour que cela rentre dans l'espace requis. Et j'ai envoyé en fabrication. La conception n'a pas été réalisée avec EagleCAD mais avec gEDA, une suite de conception électronique libre et opensource.
A la réception du premier circuit, je soude l'ensemble des composants sur celui-ci (il faut compter une bonne heure de concentration afin de limiter les erreurs), et le teste en conditions réelles sur le Minitel. Echec lamentable, le rendu est désastreux. Il s'avère que les empreintes des transistors utilisées pour concevoir le circuit imprimé n'étaient pas correctes (merci gEDA), et ceux-ci étaient montés à l'envers ! De plus, plusieurs pistes n'étaient pas correctement placées (on parle alors d'erreur de routage), et il m'a fallu en couper certaines et en ajouter d'autres à l'aide de fils ("straps"). Enfin, les trous pour placer le connecteur du clavier du Minitel étaient trop petits. Bref, deux ou trois jours de débogage de circuit et de nuits passées à identifier la cause de problèmes, pour enfin arriver à une version fonctionnelle. Victoire !
Je reporte ensuite les corrections sur le logiciel de conception, et envoi en fabrication une version normalement corrigée. Sauf que non, les trous du connecteur de clavier sont encore trop petits (mauvaise mesure), et quelques corrections n'ont pas été transposées correctement. Je corrige le tout sur le logiciel, et repasse commande. Je reçois la dernière version des circuits et en suis fier: le connecteur de clavier entre parfaitement en place, et tout se soude sans encombre.
Saleté de condensateur
Cependant, malgré tous mes efforts, le rendu est encore moyen. En particulier, des "bavures" apparaissent en fin de ligne ou de caractères affichés, ce qui n'est pas trop dérangeant lorsque l'on joue mais agaçant lors de lecture de texte. Il me fallait trouver l'origine du problème.
Encore une fois, une erreur était à la source de ce problème: le marquage de polarité du condensateur indiqué sur le circuit était inversé (encore une fois à cause d'une mauvaise empreinte), et en changeant de sens le condensateur l'image finale est bien plus belle. Je ne m'en étais pas rendu compte sur le prototype intermédiaire car le condensateur que j'utilisais était prévu pour 100 Volts, et ne bronchait pas trop lorsqu'il était alimenté en inverse. Mes derniers tests ayant été réalisés avec un condensateur prévu pour 50 Volts, le comportement de celui-ci en était sévèrement altéré. Merci les composants en stock.
L'erreur de marquage est toujours présente sur le circuit imprimé, mais est bien moins grave qu'une erreur de piste ou de placement de composant. J'ai tout de même eu de la chance que le condensateur n'explose pas, les dommages pouvant être importants dans ce cas de figure.
Ce qu'il me reste à faire
Le circuit d'adaptation final fonctionne à merveille, tout comme le support du clavier via un pilote écrit en Python. Je dois encore ajouter l'audio (j'ai conçu et fait fabriquer un petit circuit complémentaire d'amplification audio, histoire d'avoir du son) et concevoir via de l'impression 3D un support pour fixer le Raspberry Pi, le circuit audio annexe ainsi qu'un haut-parleur. L'ajout d'un ventilateur pourrait être un plus si l'ensemble chauffe trop, à voir à l'usage.
Viendra ensuite la décoration, à l'aide de bombes de peinture et de pochoirs faits maison. Je ne suis pas un pro en ce qui concerne cette partie, mais je compte trouver de bons conseils auprès de personnes ayant l'habitude de ce genre de choses.
L'amplification audio devrait être terminée en fin de semaine, il faut juste que je commande les composants et que je prenne le temps de les souder. Je pourrais bientôt fournir les exemplaires (trois pour être précis) à leurs destinataires, et publier les fichiers de conception bien sûr.