Cette année aura lieu la douzième édition de la Nuit du Hack, un évènement majeur français regroupant des présentations liées à la bidouille et au hacking, mais aussi des ateliers et des challenges divers, autour d'environ 1500 personnes au centre de convention du New York Hotel, à Disneyland Paris. J'y serai présent encore cette année, comme chaque année depuis 2004.
2014, l'année des nouveautés
Cette douzième édition signe aussi l'apparition de nouveautés: un espace dédié aux kids proposant des ateliers liés au hacking, un nouveau challenge "Sploit'n'drink" ainsi qu'un bug bounty organisé en collaboration avec la société Qwant. De plus, un badge électronique collector (200 exemplaires) et compatible Arduino est disponible sur le site officiel de l'évènement (disponible jusqu'à vendredi prochain !).
J'ai d'ailleurs proposé un atelier dans le cadre de la Ndh Kids, de bidouillage de Nerfs accessible aux plus jeunes (et moins jeunes, aucune discrimination). Au travers de ces bidouilles non-informatiques, l'idée est d'initier à la réflexion les jeunes participants, et de déverrouiller leur potentiel de créativité. Et les Nerfs sont un super terrain de jeu pour cela.
Bug Bounty
La société Qwant propose aux participants du Bug Bounty de trouver des bugs/vulnérabilités contre des récompenses, d'une valeur de 5000€ au total. Et des bounty en plus.
Ce bug bounty est réservé aux participants de la Nuit du Hack, pour la durée de l'évènement. Pour plus d'informations, consultez la section dédiée du site de la Nuit du Hack.
Le badge électronique
Pour la douzième édition de la Nuit du Hack, j'ai conçu un badge électronique compatible Arduino, compatible USB et au design collector (cette photo est
Ce badge sera livré en kit, et un espace sera prévu (le workshop Open It, cf. ci-après) pour ceux qui voudront le monter et s'y frotter.
Les talks
La liste complète des talks est désormais disponible sur le site officiel de la NdH. Le talk que j'ai proposé et qui a été retenu, s'intitule "Break, crash and dump", et traite de hardware hacking, de la méthodologie et de l'approche du hardware hacker, et d'un exemple d'analyse sur un composant matériel rencontré. J'aborderai de fait les outils nécessaires au hardware hacker, et différentes ruses de sioux permettant de résoudre divers problèmes techniques. En somme, une bonne mise en bouche de ce que l'on pourra apercevoir, toucher et tester au workshop Open It.
Je co-présenterai un second talk avec l'ami Vorex (sobrement intitulé "Coucou, tu veux voir ma domotique ?") sur la sécurité des solutions domotique et les challenges à venir.
Workshop Open It
Suite à l'initiative Open It, et vu le soutien reçu pour celle-ci, un Workshop Open It a été débloqué par les soutiens du projet: celui-ci a été retenu par l'équipe organisatrice et aura donc bien lieu lors de la Nuit du Hack 2014, animé par moi-même et TixLeGeek !
Le workshop vise à démystifier le hacking hardware, au travers de différents hacks impliquant de l'électronique et de l'informatique. Pour ce faire, nous allons lancer une campagne de financement participatif afin de pouvoir gérer les inscriptions et le financement du matériel qui sera remis aux participants. Ainsi, il y a différentes contreparties selon que vous ayez déjà commandé un badge électronique sur le site de la nuit du hack et que vous désiriez que l'on vous fournisse tout le matériel nécessaire à la réalisation du badge (fer à souder, étain, pinces, multimètre et composants supplémentaires). Plus d'informations à venir, le projet de financement participatif est en cours de finalisation sur la plate-forme Ulule.
En parallèle, divers hacks seront montrés, et j'en réaliserai certains autres durant la nuit: mod de Nerfs, hacking de freebox v4 et v5, bidouilles de minitel, développement de hacks sur USB, etc ... Ce sera l'occasion aussi d'expliquer l'initiative Open It, de rencontrer les soutiens, et pour les participants de poser tout plein de questions voire pourquoi pas de lancer des idées et de participer à des hacks !
Inscription et venue
Depuis 3 ans, la Nuit du Hack se déroule au New York Hotel à Disneyland Paris. Les inscriptions sont ouvertes depuis quelques temps, accessibles sur cette page.
Pour ceux qui souhaiteraient venir à moindre frais,`le site Ouigo de la SNCF <http://www.ouigo.com/fr>`_ propose des billets à prix réduits arrivant directement à Disneyland (gare TGV de Marne-la-vallée Chessy).
Pour la nourriture sur place, il y a du choix (Earl of Sandwich, Mac Donalds, restaurants divers). Sinon vous pouvez aussi prévoir votre sandwich et vos boissons.
Lorsque j'ai bidouillé mon clavier de minitel, et que j'ai notamment essayé de l'interfacer avec un Raspberry Pi (acheté chez Farnell, rappelez-vous), je me suis rendu compte que les GPIOs de ce dernier étaient vraiment limitées. Pour interfacer correctement le clavier, j'avais besoin de 17 GPIOs, alors que le RaspPi ne m'en offrait que 10 maximum. J'ai donc décidé de créer un module d'extension pour pouvoir prototyper sur Raspberry Pi, fournissant 32 GPIOs.
Raspberry Pi et son bus I²C
Après avoir passé un peu de temps à chercher sur Internet les solutions techniques connues pour Raspberry Pi, j'ai opté pour la solution la plus évidente: l'emploi du bus I²C («Inter Integrated Circuit»). Ce bus permet d'interfacer des composants électroniques, et notamment des convertisseurs série vers parallèle, comme le MCP23017. La communication avec ce composant est réalisé via deux fils (un signal d'horloge et un signal de donnée, ce qui correspond à une communication série) et permet d'utiliser 16 entrées/sorties (aussi appelées GPIOs pour «General Purpose Input/Output»).
Ces modules sont adressables, avec un codage d'adresse sur 3 bits. Cela signifie que l'on peut en chaîner au maximum 8, et potentiellement adresser 8*16 = 128 GPIOs. 32 seront suffisantes pour ce que je veux faire, et de plus il faudrait que le PCB soit à peu près de la taille du Raspberry Pi, pour que l'on puisse l'enficher un peu comme un shield Arduino. Plus intéressant, Lady Ada (une ingénieure en électronique/informatique qui a créé le site AdaFruit -- une référence -- a écrit une série d'articles sur la manière d'interfacer le Raspberry Pi avec un ou plusieurs MCP23017.
Plusieurs modules d'extension de ce type existent déjà sur Internet (comme [celui-ci->https://www.modmypi.com/protect-your-pi], ou encore [celui-la->http://www.abelectronics.co.uk/products/3/Raspberry-Pi/18/IO-Pi-32-Channel-Port-Expander-for-the-Raspberry-Pi-computer-boards]), mais il faut débourser d'une dizaine d'euros (sans les frais de port) à une trentaine d'euros. Pis, aucun PCB n'est disponible, et les schémas jalousement gardés. Qu'à cela ne tienne, j'ai alors opté pour la conception d'une version 100% OpenSource, et peu onéreuse.
Prototypage
La phase de prototypage a été rapide, une fois les composants reçus de mon fournisseur préféré. Quelques fils, un MCP23017 et le clavier de mon minitel m'ont servi à tester cette solution. Bien sûr, quelques réglages sont à effectuer sur le Raspberry Pi, notamment pour activer le support de l'I²C, mais au final c'est quand même relativement simple. Voici une photo montrant le montage:
Et le schéma électronique du prototype:
Et pour finir, le module en place sur le Raspberry Pi:
La bibliothèque Python de Lady Ada
AdaFruit fournit sur son Github un ensemble de bibliothèques Python permettant de manipuler l'I²C, et en particulier le MCP23017. Seulement voilà, bien que tout à fait fonctionnelle, cette bibliothèque n'est pas forcément utilisable en l'état vu que j'ai mis en place deux de ces composants et que j'en ai profité pour renommer les GPIOs. C'est pour cela que j'ai implémenté un dérivé de cette bibliothèque, dont le code source est libre et réutilisable, disponible sur Github.
Voici un exemple de configuration du module en Python, qui permet d'allumer une LED connectée entre la broche A0 et A1 du module (avec une résistance de 330ohms bien sûr):
from raspio import Raspio
board = Raspio()
board.config(board.A0, board.OUT)
board.config(board.A1, board.OUT)
board.output(board.A0, 0)
board.output(board.A1, 1)
Toute amélioration et/ou critique est la bienvenue, n'hésitez pas à faire des Pull Requests ;).
Une récompense aux soutiens OpenIt
Je possède actuellement deux de ces modules, dont un reste à monter, et me propose de les envoyer à deux personnes ayant soutenu le projet. Si d'autres personnes ayant soutenu le projet OpenIt sont intéressées, je peux éventuellement en produire à nouveau et les envoyer.
Pour les personnes n'ayant pas soutenu le projet, vous pouvez commander la board (pcb) nue sur OSHPark, en suivant ce lien.
Cela faisait un bon moment que je tentais de me faire violence pour rendre visite au [FacLab de l'université de Cergy-Pontoise->http://www.faclab.org], qui se trouve être à une quinzaine de minutes de mon lieu de travail, sans avoir vraiment trouvé le temps. Lundi dernier, plusieurs messages sur Twitter mentionnant le second anniversaire de ce FabLab m'ont enfin motivé à y faire un tour: ils proposaient une série de présentations animées par des barbus, un apéro et un nocturne.
Le FacLab, c'est bien !
Je m'y suis donc rendu avec un collègue et ami actuellement alternant à l'université de Cergy-Pontoise, et qui connait relativement bien les managers de ce FabLab. On y arrive donc vers 19h, au lieu des 18h prévu suite à un imprévu au boulot auquel se sont ajoutés les bouchons quotidiens de la vie parisienne. Première surprise: il y a pas mal de monde ! Je m'attendais à trouver des barbus, des geeks et makers de tout poil, quelle ne fut pas ma surprise d'y voir des enfants (dont le plus jeune avait 3 mois), des adultes plus ou moins vieux, et un bon nombre de membres de la gente féminine adeptes de bidouillage sur tissus et de fabrication d'objets ! Impressionné, et admiratif.
Les domaines dans lequel naviguent le FacLab sont multiples: on y trouve aussi bien des réalisations imprimées en 3D que des objets pyrogravés ou des vêtements "numériques" intégrant des LEDs, et même des PC dans des jerrycans (à l'allure de minions). Sans parler des outils présents, tels qu'imprimantes 3D en tout genre (Mendel Prusa i2, Foldarap, DOM), découpe laser et presse à t-shirt. Le tout sur un espace assez important, avec un coin détente bien confortable.
Les projets
Les projets du FacLab sont en réalité les projets portés par les personnes qui y viennent, aussi divers et variés. C'est ce qui fait la force des FabLabs, mais aussi ce qui leur est de temps en temps reproché. Cependant, on oublie une chose essentielle: le FabLab est un lieu d'échange où celui qui sait partage et celui qui veut savoir apprend, où chacun peut apporter sa brique à un édifice commun. Un brin utopique, mais les retours que j'ai pu récolter durant cette soirée ont été globalement positifs et m'ont même poussé à y participer.
Parmi les projets que j'ai pu voir: * Le jerryCan, un ordinateur dans un jerrycan * UrbanPotager, un potager sur étagère irriguée avec un circuit autonome * FoldaRap, une imprimante 3D pliable
La philosophie du FabLab
Lorsque je me suis lancé dans la réalisation d'une imprimante 3D Prusa i3, j'avais contacté le FacLab pour savoir s'il était possible de venir imprimer les pièces de base de mon imprimante, et un des responsables m'avait indiqué que l'ensemble des imprimantes 3D étaient HS. Sur le coup, je me suis demandé l'utilité de la chose, et j'ai trouvé un autre moyen de me procurer les pièces. Lorsque j'en ai discuté avec Adel, à cet apéro du FacLab, celui-ci a pointé du doigt ma fainéantise (assumée) mais surtout le fait que si j'étais si motivé par une imprimante 3D, j'aurais pu venir réparer celles présentes. Et cela m'aurait permis de rencontrer des problèmes que je vais de toute manière rencontrer avec la réalisation de mon imprimante 3D, de les résoudre (et donc de les documenter), afin de pouvoir rendre à nouveau utilisable les imprimantes, pour le bien de tous. Il a aussi ajouté que si je cherchais "juste" des imprimantes pour créer mes pièces, d'autres endroits qu'un FabLab étaient plus indiqués, comme ceux proposant un accès payant pour utiliser des imprimantes 3D. Avec le FabLab, tout le monde est gagnant. Et cela montre aussi que je n'avais pas forcément bien saisi la philosophie des FabLabs, et que ce passage au FacLab n'était donc en rien inutile !
Ils ont prévu de faire quelques nocturnes et d'ouvrir certains samedis après-midi durant les prochains mois, et je sens que je vais aller y faire un tour pour tenter de réparer les imprimantes 3D qui sont sur place, afin de me familiariser au fonctionnement de ces bestioles et pouvoir continuer le montage de la mienne en parallèle. Encore mieux, Adel m'a dit que d'autres personnes étaient sur la construction d'une Prusa i3, et que cela serait intéressant de confronter nos expériences et nos montages, durant une entrevue au FacLab. Je pense que je vais être amené à en reparler.
Le FacLab vous intéresse ?
Le site officiel du FacLab regorge de ressources sur les projets qui y sont menés, et il y a toutes les indications nécessaires si vous souhaitez vous y rendre (ce que je vous invite à faire si vous êtes en région parisienne), ou si vous souhaitez participer.
crédit photo: Ophelia Noor, via Flickr