12
déc.
'13

Après le TV-B-Gone, le PC-B-Gone !

Publié le 12 décembre 2013

J'avais promis aux soutiens de Open It un hardware collector, et j'avoue avoir assez longtemps hésité sur ce que serait celui-ci. En effet, je ne souhaitais pas réaliser plus de 39 machins électroniques qui me boufferaient tout le budget (aucun intérêt), mais pas non plus faire quelque chose de naze. Je me suis donc dit que pour être efficace, il fallait faire un truc con. Peut-être le truc le plus con du monde, mais qui soit jouissif au possible. Et l'idée du PC-B-Gone a germé.

Quand un court-circuit fait chauffer le cerveau

Il y a de cela plusieurs années, j'avais un ordinateur portable de marque moyenne qui m'a fait bien peur: en y insérant une clef USB il s'est éteint d'un coup, et impossible de le redémarrer. Après investigation, il s'est avéré que les contacts du port USB étaient tordus, signe certain d'une tentative d'utilisation d'une clef USB sous emprise d'alcool, accompagné très probablement d'un esprit de déduction hors-norme (je vous laisse libre d'imaginer la scène). Toujours est-il qu'après déconnexion de la batterie et de l'alimentation secteur, puis reconnexion de ceux-ci, l'ordinateur redémarre comme si de rien n'était. Etrange.

Pour le coup, je n'ai pas vu un intérêt quelconque à cet incident, j'en ai juste déduit que le port USB était mort, un point c'est tout. Cependant, en y repensant quelques mois plus tard, et en consultant la documentation de référence de la norme USB, j'ai trouvé ma réponse. Il y est indiqué qu'en cas de court-circuit, le port USB doit être désactivé, et à défaut protégé. Ce que faisait ma machine: un court-circuit présent, l'alimentation passe en protection afin de protéger la machine. Sauf que là, ce n'est pas le seul port USB qui trinque, mais l'alimentation complète de la carte mère. Tout simplement.

Le PC-B-Gone, l'idée la plus idiote que j'ai pu avoir

Grand amateur de TV-B-Gone, ce système permettant d'éteindre les TVs en masse et à distance (cf. Furrtek à la Paris Game Week), j'ai donc eu l'idée de faire un périphérique USB réalisant un court-circuit. Tout simplement. Si l'idée peut sembler tout ce qu'il y a de plus débile (et elle l'est), des perspectives nouvelles s'offrent à nous: de nombreux périphériques et systèmes informatiques intègrent un port USB. La grande question que l'on va être amené à se poser: que se passe-t-il quand on y connecte un bidule qui effectue un court-circuit ?

Côté réalisation, cette bidouille est à la portée de quiconque possède une vieille clef USB et un fer à souder. Il suffit d'ouvrir la clef, de souder un strap entre les broches 1 et 4 du connecteur (les broches extérieures) à l'aide d'une chute de patte de résistance par exemple. Remontez votre clef USB, et vous avez le pire piège à idiot que l'on puisse imaginer.

Pour les soutiens du projet Open It, j'ai réalisé un circuit qui intègre de base le court-circuit sur USB, qui peut servir de porte-clef et qui peut donc être inséré dans n'importe quelle fiche USB de type A. j'ai testé sur plusieurs ordinateurs chez moi, et ça n'a pas loupé: ils se sont tous éteints immédiatement. Idem au boulot. Au grand désespoir des collègues.

Oui mais après ?

Après ? Oh, rien de bien plus idiot. J'ai récemment pris l'avion par exemple, et j'ai trouvé un port USB sur l'écran intégré au siège. Ma voiture est équipée d'un port USB intégré, permettant de lui donner de la musique à jouer. Les systèmes de développement de photos dans les supermarchés environnant ont aussi des prises USB, tout comme les ordinateurs portables en exposition. Pire, le nouveau compteur EDF en beta chez certaines personnes en possède aussi (merci à toi, geek en puissance qui m'a donné cette info lors du meet de décembre ;).

MAJ du 12/12/2013:

Le comportement observé dépend des spécifications de la carte mère: si son constructeur a bien pris compte de la norme USB, seul le port ou le hub doit voir son alimentation coupée. Si c'est le cas, vous ne devriez plus pouvoir vous servir du port USB après insertion de la clef piégée. Si celle-ci implémente une protection plus sommaire, comme par exemple la coupure d'alimentation complète, l'ordinateur s'éteindra d'un coup. Les Macs ne semblent pas touchés par l'extinction intempestive.

Si vous souhaitez indiquer une machine vulnérable à cette attaque (ou pas), vous pouvez le faire sur la page dédiée sur le wiki Open It.

Si certains sont intéressés par un PC-B-Gone sérigraphié, qu'ils me fassent signe par email: j'ai moyen d'en produire de nouveaux au besoin. Attention, la sérigraphie diffèrera un peu, la version affichée ici étant un collector pour les soutiens du projet Open It =).

NOTE IMPORTANTE

J'avoue ne pas avoir testé dans ma voiture ou dans l'avion, par peur que quelque chose se produise (je tiens à ma vie et pas envie de finir piéton). Libre à vous de tester, mais attention: je ne pense pas que les hubs USB ou tout autre périphériques ne reposant pas sur un système informatique acceptent légitimement ce type de hack. Ne perdez pas de vue qu'un système ne respectant pas correctement la norme USB peut subir des dégâts, je vous encourage donc à éviter tout particulièrement les bidules non-informatiques possédant un port USB tels que les chargeurs, les hubs ou PC d'origine inconnue.

<quote>«Deux choses sont infinies : l’Univers et la bêtise humaine. Mais, en ce qui concerne l’Univers, je n’en ai pas encore acquis la certitude absolue.» - Albert Einstein.</quote>

07
nov.
'13

OpenIt financé à 356% !

Publié le 07 novembre 2013

Il y a de cela une trentaine de jours, je lançais le projet "Open It" sur la plate-forme de financement participatif Ulule, avec l'espoir de récolter la somme de 400€ afin de pouvoir terminer des projets en cours et dans les cartons, tout en récompensant les soutiens à grand coup de documentation et de hacks créés. La durée de collecte est désormais terminée, et c'est plus de 1400€ qui ont été engagés par 39 soutiens: c'est tout bonnement génial !

Et après ?

Comme certains ont pu le lire sur Twitter ou sur la plate-forme Ulule, j'ai mis en place les éléments nécessaires au bon fonctionnement du projet:

En parallèle, j'ai lancé la production des goodies pour les soutiens (stickers et hardwares collector), et je vais très certainement commander un peu de matériel de manière à pouvoir continuer les projets en cours. La grande question reste de savoir comment communiquer aisément avec les soutiens en particulier, et les gens intéressés par le projet en général ...

Wiki, site dédié au projet, webcast

Le wiki est pour moi un élément fondamental: il permet notamment l'interaction avec les soutiens, et la diffusion de la documentation des projets au monde entier. De plus, cela favorise la collaboration. En parallèle, j'ai ouvert un Github dédié au projet, où les ressources des projets seront disponibles mais sur lequel n'importe qui peut aussi participer, forker, voire même proposer des améliorations !

Cependant, j'aimerais pouvoir organiser des genres de réunion (planifiées) où chacun pourrait s'exprimer sur les projets en cours, où les personnes qui ont soutenu le projet en contrepartie d'une participation active (comprendre une participation IRL à un projet) pourraient en profiter pour discuter. Et que l'on se mette d'accord sur quels hacks matériels envoyés à qui, etc ... Si vous avez des idées, n'hésitez pas à les indiquer dans les commentaires de cet article.

J'hésite même à ouvrir un site dédié au projet, histoire de tout centraliser et d'y tenir un blog régulier, tout en fournissant les moyens de communiquer. Bref, il y a encore beaucoup à faire =).

Mot de la fin

Je ne remercierais jamais assez les soutiens sans qui cela n'aurait pas été possible: vous êtes tout simplement géniaux ! Je vous prépare des trucs fun pour la suite, et vous allez pouvoir en profiter =). Stay tuned !

Ah, et si vous êtes un soutien et que vous avez un souci pour accéder au wiki, faites-le moi savoir par email (virtualabs -at- gmail -daute- com) ou via les commentaires !

30
sept.
'13

Super Minitel Entertainment System

Publié le 30 septembre 2013

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



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.