Le badge Supercon lit une carte « Punch »

Le Hackaday Supercon de cette année, le premier depuis 2019 grâce à la pandémie, était une affaire très similaire à celles du passé. Presque chaque événement de piratage orienté matériel a son propre badge électronique personnalisé, et Supercon n’était pas différent. Le badge de cette année est une plate-forme de simulation pour un hypothétique processeur 4 bits créé par nos propres [Voja Antonic], et a représenté un véritable défi pour certains des participants qui n’avaient jamais touché au code machine au cours de leurs années de formation. Le défi était de trouver le hack le plus intéressant pour le badge, donc les collaborateurs [Ben Hencke] et [Zach Fredin] s’est mis à clouer la catégorie « expandr » de la compétition avec leur lecteur optique de cartes perforées boulonné.

La connectivité périphérique est quelque peu limitée. L’idée était de construire une carte boulonnée avec son propre traitement local – en utilisant une carte PixelBlaze [Ben] apporté – pour gérer tous les détails de la numérisation. Puis, une fois le programme de la carte lu, dumper le tout sur le CPU du badge via son interface série. Sans accès à leurCarte perforée en papier imprimé montrant des LED de lecture et un tableau de bits de réglage et de réinitialisation de l'encodage installations habituelles à la maison, [Ben] et [Zach] évidemment dû improviser avec tout ce qu’ils avaient avec eux, et tout ce qui pouvait être grappillé sur d’autres badges ou autres matériels qui traînaient.

Un gros problème était que la plupart des gens ne transportent généralement pas de photodiodes avec eux, mais heureusement, ils se sont souvenus qu’une LED peut être utilisée comme photodiode lorsqu’elle est correctement polarisée en inverse. En alimentant le signal développé sur une résistance d’un Meg, dans un amplificateur de transconductance grâce à un LM358 donné, il y avait suffisamment de variation pour que le STM32 ADC détecte de manière fiable la différence entre les cases à cocher vides et remplies sur les cartes de programme remplies.

Le CPU nécessitait des opcodes 12 bits, ce qui implique évidemment 12 photodiodes et 12 LED pour lire chaque mot. La carte PixelBlaze n’a pas autant d’entrées analogiques. Une astuce simple était au lieu d’avoir des entrées discrètes, les 12 photodiodes étaient câblées en parallèle et alimentées dans un seul amplificateur d’entrée. Pour différencier les différents bits, les LED d’éclairage ont plutôt été charlieplexées, délivrant ainsi les bits individuels sous forme de séquence de valeurs dans l’ADC, pour une désérialisation ultérieure. La vidéo de démonstration montre que cela fonctionne, avec un programme chargé à partir d’une carte et lancé manuellement. Si amusant!

Les cartes perforées ont généralement un trou à travers elles et peuvent être lues mécaniquement, et sont un excellent moyen de configurer des testeurs comme celui-ci testeur de soupape à vide intéressant que nous avons couvert il y a peu de temps.