Lors de la conception d’un produit basé sur un microcontrôleur, il est crucial d’inclure un connecteur de programmation sur le circuit imprimé. Sans lui, il devient impossible de flasher le firmware sur le MCU. Cependant, ce connecteur peut occuper un espace précieux sur la carte, ce qui est un problème important pour les conceptions à contraintes de taille. Pour y remédier, les concepteurs utilisent souvent des techniques telles que les points de test avec des gabarits spécialisés ou le préprogrammation des MCU avant la soudure à l’aide de sockets ZIF. Bien qu’efficaces, ces méthodes nécessitent un équipement spécial et impliquent des étapes de fabrication chronophages.
Le YouTuber Tim Alex Jacobs a rencontré ces problèmes en travaillant sur son projet de badge LED. Inspiré par les principes de la communication optique, Tim a conçu une solution innovante. Son badge LED, qui est densément garni de LEDs, réutilise ces LEDs comme capteurs de lumière pour programmer le microcontrôleur à l’aide de lumière. Comme nous le savons, les LEDs peuvent générer une petite tension lorsqu’elles sont exposées à la lumière en raison de l’effet photovoltaïque, agissant comme des micro cellules solaires. La lumière a longtemps été utilisée pour la communication, des câbles à lien infrarouge aux réseaux de fibre optique à haute bande passante. Tim a combiné ces idées pour créer un moyen simple de programmer le MCU sur son badge. Il a développé une application web qui utilise n’importe quel écran LCD pour programmer le MCU.

Le principe de base est simple : des zéros et des uns sont représentés par des points sombres et lumineux sur l’écran. En fonction des bits de données, l’application web contrôle la zone d’affichage désignée. Lorsque les LEDs sont placées au-dessus de cette zone, elles génèrent différentes tensions en fonction du motif d’affichage, qui est ensuite décodé en un flux de données. Tim a utilisé les comparateurs OpAmp intégrés dans le CH32V003, atteignant un débit de données allant jusqu’à 1 000 000 bauds avec un taux d’erreur de zéro pour cent. Il l’explique davantage dans sa vidéo de démonstration YouTube.
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

