Le projet CutcutGo, qui vise à fournir un firmware de remplacement pour la Maker de Cricut, avance plutôt bien. En effet, j'ai pu boucler le développement d'un bootloader permettant la mise-à-jour du firmware de la machine via USB, ce qui permet une maintenance plus simple et évite de devoir utiliser le connecteur situé sous la machine pour déployer une nouvelle version du logiciel.
C'était à mon sens une des premières fonctionnalités critiques que je devais implémenter pour permettre aux beta-testeurs de tester facilement les versions en cours de développement et de pouvoir restauter une version fonctionnelle en cas de souci, et cela sans avoir à sortir un programmateur.
J'ai aussi pu améliorer la façon dont le micro-logiciel gère le démarrage et l'arrêt de la machine ainsi que la calibration automatique du moteur de l'axe X afin de pouvoir s'adapter aux légères différences qu'il existe entre les machines. On s'approche de plus en plus de quelque chose d'utilisable, même si certaines fonctionnalités sont encore manquantes... Il n'est pas encore possible d'utiliser une connexion Bluetooth Low Energy pour piloter la machine, et la fonctionnalité de print then cut disponible sur la machine d'origine est loin d'être implémentée. Ceci dit, je suis très satisfait du résultat et de comment le projet avance, sachant que je le développe seulement durant les streams (à raison d'une soirée par semaine).
Ce projet est quasi terminé, mais comme dans tous mes projets c'est la fin qui est très difficile à gérer. J'ai un prototype entièrement fonctionnel, que je vais passer à des collègues dans un futur très proche pour qu'ils le testent et me donnent leur avis sur la complexité et l'originalité des tâches à réaliser, sachant que cela doit convenir au débutant tout comme au reverser confirmé.
Je pense attaquer la finalisation de ce projet courant novembre, mais à mon humble avis il ne sera pas bouclé avant janvier 2024. Ça me fait mal de l'écrire, mais je sais que la fin d'année va être pas mal remplie donc je ne prévois pas grand chose pour décembre.
J'avais pris une bonne résolution en janvier de cette année, celle de ne pas m'éparpiller dans mes projets comme je le fais d'habitude, sans rien terminer (qui a dit ADHD ? -- faudra qu'on en parle un des ces jours par ailleurs...). Et je crois que pour le moment, à l'exception d'un ou deux streams Twitch où il fallait absolument que je me change les idées, j'ai pour le moment réussi à m'y tenir.
Cependant, je dois avouer que ce n'est vraiment pas simple. J'accumule du matériel acheté au cours de l'année dans une boîte, la boîte des "trucs à bidouiller plus tard", qui commence à être bien remplie. J'ai de quoi hacker pour faire des consoles portables à base d'ESP32, un téléphone opensource, des trucs permettant de hacker des protocoles radios, des badges électroniques cools, et plus encore. Mais globalement pas assez de temps pour ne faire que 10% de tout cela.
Et ça ne va pas s'arranger, car il y a tout le temps un truc qui capte mon attention et me tend les bras en attendant que je cède à la nouveauté et qu'il vienne s'ajouter à la longue liste de trucs super intéressants que je dois faire mais qu'en fait non, car je lutte pas mal pour rester sur mes deux projets principaux. Sauf que j'ai fait une rechute, récemment.
J'ai cédé à un caprice technologique, aucune idée du pourquoi. Un jour, je traînais sur Amazon et je suis tombé sur un clavier Qwerty 60%. Un petit clavier mécanique, avec des beaux switchs et un format très intéressant. Et je me suis dit que ça serait une bonne idée de me mettre à un clavier qwerty, et tant qu'à faire tester ce clavier. Oui, ça fait des années que des collègues me demandent pourquoi je n'utilise pas de clavier Qwerty pour le développement, et effectivement, pourquoi ? Alors j'ai craqué. J'ai acheté ce petit clavier 60%, ai reconfiguré tous mes systèmes pour l'utiliser, et ai passé une rude semaine à passer mes habitudes de Azerty à Qwerty. Pas simple, mais pas si éprouvant que cela.
Aujourd'hui, je ne regrette absolument pas d'avoir franchi le pas. Oui, le clavier Qwerty est une bénédiction pour le développeur: tous les caractères spéciaux utilisés dans les différents langages de programmations sont accessibles directement, le pavé numérique est inutile, et les caractères accentués ne sont pas si nécessaires que cela. Seul hic: mon clavier de laptop du boulot qui est en Azerty et qui m'embrouille de temps à autre le cerveau.
Alors oui, je suis content avec mon clavier 60%, mais il y a des choses que j'aimerais améliorer dessus. L'absence de flèches directionnelles se fait parfois sentir, tout comme les touches Page Up et Page Down. Et là je découvre qu'il existe des claviers 65% qui possèdent ces touches, et qui sont opensource de surcroit ! C'est un enfer. Je vais me fabriquer mon clavier 65% from scratch et je suis super content de cela. Non, je n'aurais jamais du mettre les doigts sur ce type de claviers, je me suis fait happé et je suis parti pour des années de customisation de layout et de discussions autour des différentes marques et types de switches mécaniques... Fuyez, pauvres fous !
Sans compter que ça va de fait casser mon assiduité à mes projets principaux.
C'est l'heure de faire un point sur les projets en cours, les trucs à venir et la bascule Twitter vers Mastodon. C'est aussi l'occasion pour moi de rédiger le premier billet de blog de 2023, parce que bon tout le monde sait que je n'en écris que 3 ou 4 par an. Allez hop, on commence par les projets en cours.
Depuis janvier 2023, j'ai décidé de me focaliser sur seulement deux projets à la fois histoire de ne pas trop me disperser. Le premier projet concerne l'ajout du support des micro-contrôleurs de la série STM32WLxx dans la bibliothèque libopencm3 (y compris de leur transceiver sub-GHz intégré), et ce dernier avance bien. Après avoir perdu un temps considérable à déboguer la communication entre le transceiver et le CPU principal (via l'achat d'une carte de développement dédiée permettant cela), j'ai enfin réussi à implémenter les primitives permettant l'envoi et la réception de trames LoRa et entamé le développement d'un driver dédié aux communications sans-fil pour ce type de micro-contrôleurs. Le développement de ce dernier est toujours en cours, mais cela devrait aboutier assez rapidement à quelque-chose d'utilisable (bien qu'améliorable). La partie la plus longue consistera à bien intégrer tout ce code selon les règles de coding du projet libopencm3, et soumettre mes modifications aux développeurs afin que tout ce boulot d'intégration puisse servir à d'autres. Et puis intégrer tout ça au projet 3615 LoRa, qui permettra à deux Minitels de communiquer en sans-fil avec une portée de plusieurs kilomètres !
Le second projet, plus conséquent, concerne le portage de GRBL (un logiciel de commande de machine numérique) sur la Cricut Maker, une découpeuse vinyle closed-source. Le gros de la rétro-ingénierie a été faite, et le portage de GRBL permet désormais de communiquer via du GCODE grâce au port USB de la Cricut Maker. Reste le pilotage des moteurs qui de prime abord se passait bien, jusqu'à ce que vienne le moment d'intégrer ces derniers avec le code de GRBL. En effet, GRBL a été initialement développé pour piloter des moteurs pas-à-pas (steppers), et non des moteurs à courant continu couplés à des encodeurs rotatifs comme c'est le cas sur cette découpeuse. Mon intuition me disait que les piloter comme des steppers serait un échec, et les derniers essais en stream ont bien démontré que c'était le cas. Bref, il va falloir que je m'arme de courage et que j'arrive à implémenter un pilotage efficace de ces moteurs, malgré le fait que ce soit la première fois que je m'attaque à ce type de code. Mais il paraît que c'est formateur, donc je vais m'accrocher 😅.
Je pense que j'ai réussi à m'y tenir, à ces deux projets, durant les différents streams depuis janvier. Bon ok, une fois je n'avais pas le courage ou l'esprit à coder, et on a fait autre chose (hack hardware). Mais ce n'est arrivé qu'une seule fois !
Depuis le COVID et le confinement, je m'étais sérieusement calmé sur ma participation à des conférences en présentiel et je n'avais pas soumis de sujet de talk (ou très peu) durant les dernières années. Il semblerait que j'ai repris goût à donner des talks, et que plusieurs des talks que j'ai soumis (pour certains en collaboration avec Romain Cayre) aient été acceptés à différentes conférences. J'ai ainsi fait un tour en mars à Lausanne, à l'occasion de la conférence Insomni'hack, et serai normalement présent dans quelques semaines à la Toulouse Hacking Convention ainsi qu'à SSTIC en juin. Ça sera aussi l'occasion de rencontrer des gens autour d'un verre (de bière, de coca ou de Club Mate), de discuter cybersécurité et hacking (ou autre), et de voyager un peu dans des contrées pas si lointaines 😆...
En tout cas, si vous avez prévu de participer à l'un de ces évènements, n'hésitez pas à me pinger sur Mastodon !
En parlant de Mastodon, je profite de ce billet pour faire un premier bilan de ma bascule du site de l'oiseau bleu à celui du pachyderme fédéré. Pour rappel, j'ai conservé mon compte Twitter mais ne poste plus dessus et ai créé un compte Mastodon sur lequel je suis désormais actif. Je publie de temps en temps, principalement sur des sujets liés à la cybersécurité (on ne se refait pas), mes streams et les projets en cours, ainsi que sur la publication des vidéos de replay de ces streams sur ma chaîne Peertube.
Premier constat après quelques mois d'utilisation normale: j'apprécie grandement l'absence de publicité et de tweets "intrusifs" ou sponsorisés. J'essaie de suivre des comptes assez divers, histoire de ne pas m'enfermer dans une bulle, et je suis assez agréablement surpris de voir que pas mal de gens de la communauté cybersécurité ont créé des comptes Mastodon et publient/réagissent régulièrement. Du coup, la veille technique est facilitée et me permet de me tenir à jour en ne consultant que Mastodon, ce qui est très appréciable. Certes, j'ai du dire adieu à mes 5000+ followers, mais ça fait énormément de bien au mental d'utiliser une plateforme plus saine et peuplée de personnes différentes qui ne sont pas sur Twitter. Ce qui implique donc de croiser de nouvelles têtes, d'avoir des échanges différents de ceux que je pouvais avoir précédemment, bref de toucher d'autres profils, de nouvelles personnes et de pouvoir échanger avec ces dernières.
Toutefois, il y a quelques éléments qui sont décevants avec Mastodon (enfin, surtout les utilisateurs) et qui valent le coup d'être notés. Le premier, c'est de voir que certaines personnes qui possèdent un compte Twitter et Mastodon et qui postaient sur les deux plateformes au moment des frasques d'Elon ne publient plus que sur Twitter et gardent leur compte Mastodon en backup. C'était attendu, Mastodon n'étant pas un clone de Twitter, et Twitter continuant de fonctionner "comme prévu" malgré les décisions random prises par son dirigeant. Mais ce n'est pas grave, c'est juste frustrant de ne pouvoir réagir à leurs messages sur le site de l'oiseau, car je me suis promis de ne plus y participer. Le second aspect concerne les réactions aux toots: il est difficile de savoir comment ces derniers sont perçus car la seule métrique que l'on possède en tant qu'auteur d'un toot est le nombre de likes ou de retoots qu'a reçu un toot particulier. J'ai donc pris l'habitude de re-tooter et de liker des toots pour notifier à leurs auteurs que je les ai appréciés, en espérant que cela leur permettra d'avoir une idée plus précise de l'impact que leur toot peut avoir. Car oui, quand on partage quelque-chose dans le vide pendant quelques mois, ça donne vite l'impression que c'est inutile voire invisible. Soutenons nos pouèteurs favoris 💪 !
Au global, je ne regrette pas ce passage à Mastodon, loin de là ! J'adore certaines des fonctionnalités offertes par cette plateforme, et pour rien au monde je ne voudrais revenir à Twitter. Il m'arrive quand même de suivre de temps à autre mon fil Twitter, mais j'y retrouve la grande majorité des évènements ou informations que j'ai déjà vu sur Mastodon ... la publicité et les tweets inutiles en plus. Et je ne parlerai pas des dernières décisions du sieur Musk quant à l'avenir de la plateforme à l'oiseau bleu.
Allez, je vais continuer à me concentrer sur mes projets en cours, mes streams hebdomadaires et j'espère pouvoir poster un nouveau billet dans quelques mois !
L'année 2020 est désormais terminée, l'occasion de faire le bilan de cette année qui fut, je pense que tout le monde en conviendra, bien pourrie. Entre épidémie de COVID-19, l'école à la maison, le télétravail à plein temps, les WTFs politiques, l'annulation de (presque) tous les events sécu ou leur report en 2021, et surtout la plongée dans l'incertitude causée par le virus et la gestion de ce dernier, cela a été éprouvant. Je profite donc du passage à la nouvelle année pour faire le point sur ce qu'a été pour moi 2020, et comment j'envisage cette nouvelle année.
2020 m'a appris dès le mois de mars plusieurs choses importantes. La première et pas des moindres, c'est que les professeurs des écoles ont bien du courage. J'ai eu mes deux affreux comme élèves chaque matinée pendant le confinement (enfin presque, ma moitié a pris le relais certaines semaines), et ce n'était pas de la tarte. J'ai du réorganiser mes journées durant les premières semaines afin de concilier école à la maison et boulot à distance, ce qui me faisait des journées bien chargées (9h - 3h). J'ai tenu le rythme pendant deux semaines, youpi.
La seconde, c'est l'importance d'avoir une pièce à part pour le télétravail. C'est priceless. Lorsque j'ai emmenagé dans ma maison actuelle, j'avais prévu une pièce dédiée pour mon bureau car j'étais déjà à cette période régulièrement en télétravail. Du coup quand on s'est retrouvé confinés, je pouvais bosser dans une pièce à part avec tout le matériel requis (écran externe, clavier, souris, connexion FTTH, fauteuil confortable), ce qui était très appréciable. J'ai de nombreux collègues et amis qui ont pété des câbles à force de bosser dans leur salon ou leur cuisine, encore plus lorsqu'ils habitent sur Paris.
La troisième et dernière, c'est qu'il est important de prendre du temps pour soi. Avec toute la famille à la maison, je n'avais plus d'instants de solitude tels ceux que j'avais régulièrement dans les transports en commun, et c'est vite devenu pesant. Difficile de trouver un moment calme pour prendre du temps pour moi, que ce soit pour des hobbies ou plus simplement être tranquille. J'ai pris l'habitude de me réserver deux ou trois heures la nuit, entre 23h et 1h ou 2h du matin, afin de vaquer à des occupations diverses et souffler. Et ça m'a permis de mieux tenir, je crois.
Après un été complètement déconnecté, la reprise en septembre s'est passée relativement bien. Et chargée, aussi. Toujours en télétravail. La différence avec mars, c'est que la plupart des gens avec qui j'étais en contact pour le boulot se sont habitués aux réunions à distance, et l'activité a ainsi pu reprendre son cours. A ce moment précis, le moral n'était pas au top mais tenait le coup.
C'est à ce moment que je me suis rendu compte des dégâts du confinement. Je pensais m'en être assez bien sorti, car bon le télétravail cela fait quelques années que je pratique et j'estimais avoir un moral solide. Au final, je pense avoir fait une mini-dépression (comme pas mal de monde d'après les statistiques), et je ne m'en suis pas rendu compte de suite. Pour ne rien arranger, la structure chargée de la garde à domicile de mes loulous nous a clairement fait comprendre qu'ils n'avaient plus personne (à cause du COVID), et il a donc fallu gérer cela en parallèle.
Je me suis ainsi retrouvé plusieurs soirs devant mon ordinateur, à vouloir bosser sur des projets persos et au final terminer sur youtube à regarder des vidéos inintéressantes pendant des heures. Jusqu'à me rendre compte que je n'ai rien fait, et désespérer de ne rien avancer (alors que ce n'était pas les projets qui manquaient).
Fort de ce constat, je me suis demandé si Twitch ne pourrait pas être une solution. Je connaissais Twitch de par le confinement et pour y avoir streamé une fois dans le cadre de PlopSec, et plus j'y pensais et plus cela semblait intéressant. Twitch offre une proximité, une interaction, qui me rappellaient les évènements sécu qui commençaient à me manquer. Peut-être que ce que je fais habituellement dans le cadre de mes projets persos pouvait intéresser du monde ? En ce qui me concerne, je pensais qu'avoir du monde qui me regarde avancer mes projets allait me donner un coup de pied au derrière et m'éviter de tomber dans les méandres de youtube. Aussi, avant de me lancer, j'ai sondé Twitter:
Ca intéresserait du monde que je streame du RE hardware, du dev embarqué (genre sur T-Watch 2020), ou de la conception électronique (schéma,pcb) ? Principalement en soirée et de manière ponctuelle.
— Damien Cauquil (@virtualabs) September 3, 2020
Le retour a été très positif, et c'est comme cela qu'ont débuté en septembre mes premiers lives sur Twitch, l'occasion d'avancer réellement les projets qui étaient dans les cartons. Comme les deux super-minitels qu'il me restait à terminer suite au financement participatif de OpenIt, et que je devais réaliser depuis des années, et qui sont encore attendus par deux des backers. Ce projet demandait pas mal de boulot, car il fallait refaire la carte électronique dans son intégralité pour l'adapter aux dernières évolutions des Raspberry Pi (la première version étant conçu pour un Raspberry Pi 1). Ou encore le reverse de mon Ninja Badge de la DEFCON 18 (2010), que je m'étais promis de faire depuis que je l'ai eu.
Au final, le coup de pied au derrière a été bénéfique et je suis encore étonné du nombre de personnes qui suivent mes lives techniques, et qui parfois avouent ne pas trop comprendre mais trouvent ça cool ! J'ai ainsi pu bien avancer mes projets et découvrir des streamers francophones qui font aussi des trucs super cools (coucou CabriDIY, Neodyme et iooner, Barbatronic et Yorzian a.k.a. Yves Rougy), tout en étant soutenu par de plus en plus de personnes durant les lives. C'est un peu stressant au début, mais je crois que je me suis pris au jeu et ce qui devait être à l'origine occasionnel est désormais plutôt régulier. Encore un grand merci à toutes les personnes qui sont passés durant les lives, qui suivent plus ou moins de près mes projets et celles qui ont été là dès le début. C'est ultra-motivant, et sincèrement je pense que cela a rendu la fin d'année plus agréable et suportable malgré les circonstances actuelles !
Un grand merci aussi aux potos de YesWeHack qui ont tenu à me fournir un PC digne de ce nom pour que je puisse streamer en toute quiétude et avec une qualité décente, ça me change des fins de live à 10 fps avec un CPU à 90% ! J'ai un peu investi afin d'améliorer l'image durant les lives, en particulier pour tout ce qui concerne l'électronique et le DIY en général. On verra si ça fonctionne assez rapidement, je pense.
Maintenant que 2020 est désormais derrière nous, il est temps de se concentrer sur 2021 et les projets sur lesquels je compte avancer (faudra quand même prioriser avant):
- Les deux super-minitels à terminer ;
- La hackwatch, a.k.a la transformation d'une smartwatch en outil de hack portable pour WiFi et Bluetooth Low Energy ;
- Un hack de vieux téléphones à cadrans rotatifs pour en faire des interphones sans-fil pour la maison ;
- Mon avion RC conçu maison et imprimé en 3D ;
- Un panneau "ON AIR" automatisé pour la porte du bureau, histoire de pas être dérangé durant des calls ;
- Un challenge hardware maison à destination de ceux qui veulent débuter en reverse hardware et software ;
- Un ou plusieurs gadgets interactifs pour égayer les lives Twitch.
Voilà les différentes idées que j'ai eu pour cette nouvelle année, et c'est sans parler des mini-projets de reverse hardware qui seront faits en live, des replays de talks précédents ou encore d'autres idées qui pourraient survenir durant l'année. D'ailleurs, si vous en avez n'hésitez pas à m'en faire part sur Twitter ou lors d'un live Twitch ! Mon objectif principal consiste à boucler au plus vite les super-minitels pour les envoyer à leurs destinataires, histoire de combler la dette que j'ai auprès des backers du financement participatif, et ensuite de m'éclater à faire ces projets en live avec les wins et les fails habituels !
Enfin, j'aimerais pouvoir refaire des talks lors de conférences mais pour l'instant je n'ai aucune visibilité sur l'organisation de ces dernières. Les conférences en ligne c'est bien, mais il manque sincèrement l'interaction avec le public, ce qui fait que c'est beaucoup moins drôle à faire. On verra en fonction des idées de talks et de l'évolution de la situation globale. Mais je n'attends qu'une seule chose, pouvoir remonter sur une scène lors d'une conférence et partager mes hacks/tools/whatever avec plein de gens (et partager/échanger autour d'une bière ou d'un coca lors d'un event). Et j'espère que cela pourra se faire en 2021.
Bonne année à tous, j'espère qu'elle sera bien mieux que l'année 2020 ! Hackez plein de trucs, bidouillez dans la joie et la bonne humeur 😄. Pensez à prendre le temps de prendre soin de vous, de chérir les personnes qui vous sont proches, de profiter de la vie. Si 2020 nous a enseigné au moins une chose, c'est bien cela.