Pratique : Bus Pirate 5

Si vous êtes impliqué dans le piratage électronique et matériel depuis un certain temps, il y a de fortes chances que vous ayez entendu parler du Bus Pirate. Introduit pour la première fois dans les pages de Hackaday en 2008 par le créateur Ian Lesnet, le multi-outil matériel ouvert a été conçu non seulement pour accéder facilement à un large éventail de protocoles de communication, mais aussi pour fournir diverses fonctions qui seraient utiles lors du développement matériel. ou de l’ingénierie inverse. Le Bus Pirate pourrait communiquer avec vos appareils I2C et SPI, tout en étant capable de mesurer des fréquences, de vérifier des tensions, de programmer des puces et même de fonctionner comme un analyseur logique ou un oscilloscope.

Bus Pirate 3, vers 2012

Le Bus Pirate fournissait un nombre incroyable d’outils à un prix abordable, et il ne fallut pas longtemps avant que l’appareil ne devienne si populaire qu’il franchit une étape dont seuls quelques gadgets de piratage matériel peuvent se vanter : ses ventes ont commencé à être sous-estimées par clones étrangers bon marché. Bien sûr, en tant que périphérique matériel ouvert, cela ne posait pas vraiment de problème. Si d’autres sociétés voulaient créer des Bus Pirates bon marché, ce n’est pas un problème. Cela a permis à Ian de rechercher une version de nouvelle génération de l’appareil.

Mais il s’avère que c’était plus facile à dire qu’à faire. C’est à ce moment-là que le Bus Pirate entre dans ce qui pourrait être considéré comme son Duc Nukem pour toujours phase. Il a fallu 15 ans pour sortir la suite de celui de 1996. Duc Nukem 3D parce que l’état de l’art en matière de jeux vidéo ne cessait d’évoluer et que les développeurs ne voulaient pas être à la traîne. De même, Ian et son équipe ont passé des années à développer et à redévelopper des versions de Bus Pirate qui utilisaient différentes plates-formes matérielles, telles que les FPGA STM32 et ICE40. Mais à chaque fois, il y aurait des problèmes pour trouver des composants, ou quelque chose de plus récent et de plus intéressant serait publié.

Mais ensuite, en 2021, le Raspberry Pi Pico est entré en scène, et peu de temps après, la puce nue RP2040. Non seulement les vastes capacités d’E/S du nouveau microcontrôleur étaient parfaitement adaptées au Bus Pirate, mais la puce était bon marché et largement disponible. Enfin, après des années de faux départs, le Bus Pirate 5 était né.

J’ai pu sortir l’un des tout nouveaux Bus Pirates de la chaîne de production en janvier et j’ai passé environ la semaine dernière à jouer avec. Bien qu’il y ait certainement place à l’amélioration du côté logiciel, le matériel est extrêmement prometteur, et je suis très impatient de voir comment se déroulera ce nouveau chapitre de l’histoire de Bus Pirate.

Sous la capuche

Bien que le cœur du Bus Pirate 5 soit le RP2040, il reste encore de nombreux autres matériels pour le trajet.

Dans des circonstances normales, le RP2040 disposerait de suffisamment d’E/S pour pratiquement n’importe quelle tâche. Mais comme il s’agit d’un appareil conçu pour communiquer avec autant de choses que possible, la puce avait en fait besoin d’un peu d’aide au niveau des broches gratuites. En tant que tel, une paire de registres à décalage 74HC595 est connectée au bus SPI pour fournir 16 sorties supplémentaires sur la carte, qui sont utilisées pour des fonctions internes telles que le contrôle du rétroéclairage de l’écran LCD et la commutation des résistances de rappel de 10 kΩ pour l’I. /O broches.

De même, un multiplexeur analogique CD4067 à 16 canaux est utilisé pour surmonter le fait que le RP2040 ne possède que quatre broches ADC. Il peut sembler étrange qu’un appareil résolument numérique comme celui-ci ait besoin d’autant d’entrées analogiques, mais l’un des objectifs de cette nouvelle version du Bus Pirate était la capacité de mesurer les tensions sur chacune de ses huit broches de sortie, contrairement aux incarnations précédentes de l’appareil qui ne pouvait mesurer la tension que sur une seule broche dédiée.

Chacune des huit broches d’E/S du Bus Pirate 5 passe par un tampon bidirectionnel 74LVC1T45, qui permet aux broches de 3,3 V du RP2040 de communiquer en toute sécurité avec des appareils de 1,2 V jusqu’à 5,5 V. Il faut en fait deux broches. du RP2040 pour contrôler chaque tampon : l’un est utilisé pour le configurer comme entrée ou sortie, et l’autre est utilisé pour y lire ou écrire.

Il existe également une puce flash NAND de 1 Gbit connectée au bus SPI qui contient les fichiers de configuration JSON de l’appareil. Le volume est présenté à l’ordinateur hôte comme un périphérique de stockage de masse USB et peut également être modifié à partir de l’interface texte de Bus Pirate à l’aide de commandes familières telles que ls, cdet cat. Ce stockage flash peut également être utilisé pour conserver des fichiers journaux, des sauvegardes de micrologiciels, des images à flasher ou, à la rigueur, un épisode ou deux du podcast Hackaday.

Alimentation programmable

L’une des avancées les plus intéressantes du Bus Pirate 5 par rapport à ses prédécesseurs est peut-être l’alimentation programmable. Auparavant, Bus Pirates avait des broches dédiées de 3,3 V et 5 V qui pouvaient être activées et désactivées, mais cette fois, il y a une seule broche VOUT dans le connecteur qui peut être réglée pour produire entre ~ 1 V et 5 V grâce à l’utilisation d’un connecteur réglable. régulateur – la limite inférieure exacte dépend si votre production reçoit le MCP1824 ou l’AP2127, qui peut être échangé en fonction de la disponibilité.

De plus, le bloc d’alimentation offre une mesure de courant en temps réel ainsi qu’un limiteur de courant programmable de 0 mA à 500 mA qui est implémenté avec seulement une poignée de composants grâce à un circuit comparateur intelligent.

Le piratage sur grand écran

Bien sûr, vous n’avez pas besoin de regarder à l’intérieur de Bus Pirate 5 pour voir la nouvelle fonctionnalité la plus évidente. L’écran LCD IPS ST7789V 240 x 320 est situé à l’avant et au centre et agit comme un écran polyvalent en fonction de ce que fait l’appareil. La plupart du temps, il fonctionne comme une étiquette dynamique, montrant ce que fait chaque broche étant donné le mode actuel dans lequel se trouve le Bus Pirate. Par exemple, lorsque vous passez en mode UART, vous pourrez instantanément voir quelles broches ont été réglé sur TX et RX.

Il est difficile d’exagérer à quel point cette fonction est incroyablement pratique. Quiconque a utilisé un Bus Pirate antérieur connaîtra la difficulté d’essayer de déterminer si vous aviez les bonnes broches branchées – le plus souvent, vous deviez aller en ligne et rechercher le brochage du connecteur, car ce n’était pas toujours le cas. il est évident quelle connexion a fait quoi lorsque vous vous déplaciez entre différents modes.

Au-delà des étiquettes des broches, l’écran affiche également les chiffres de tension et de courant pour l’alimentation programmable, et il existe un mode oscilloscope qui en est aux premières phases de développement. Combiné avec le bouton programmable par l’utilisateur, ça va être passionnant de voir ce que la communauté fait avec l’écran de Bus Pirate 5.

Il y a QuatreDix-huit lumières !

Les pirates adorent les LED. Cela n’a jamais été contesté par personne. Il n’est donc pas surprenant que le Bus Pirate 5 soit équipé de LED, d’autant plus que les anciens modèles étaient également équipés d’un ensemble de voyants d’état pour indiquer les différentes conditions dans lesquelles l’appareil pourrait se trouver. Mais même quand même… le dix-huit Les LED RVB SK6812 qui bordent la carte seront considérées comme excessives par certains.

Dix des LED sont montées à l’envers et brillent à travers les trous du PCB pour éclairer l’avant du boîtier translucide laiteux, et les huit autres sont des variantes à déclenchement latéral qui fournissent le genre d’effet de lumière que vous pourriez attendre d’un éclairage extérieur. un clavier de jeu haut de gamme ou une voiture de l’un des Rapide furieux films.

Pour ceux qui ne cherchent pas à transformer leur établi en rave, ne vous inquiétez pas. Vous avez un contrôle total sur les LED du Bus Pirate 5, avec plusieurs options disponibles pour la luminosité, le motif d’animation et les couleurs. Il est également possible de les désactiver complètement. La configuration des LED est enregistrée sur la puce flash non volatile, donc quels que soient vos choix, ils persisteront tout au long des cycles d’alimentation.

Personnellement, je pense que les paramètres LED par défaut sont assez raisonnables. Je ne trouve pas cela particulièrement distrayant, et cela donne à l’appareil un look unique parmi tous les autres éléments matériels dispersés sur le banc. Cela dit, j’apprécie également le fait que l’utilisateur ait la possibilité de les personnaliser ou simplement de les désactiver, car différentes personnes auront bien sûr leur propre opinion sur le sujet.

Quoi fait ce qui me dérange un peu, c’est que, du moins dans le firmware actuel, les LED ne servent à rien en pratique. Sur le Bus Pirate 3, les LED étaient importantes : par exemple, vous pouviez savoir d’un coup d’œil s’il envoyait de l’énergie à un appareil en aval. Il s’agit d’une fonctionnalité qui aurait pu être étendue sur le nouveau matériel, avec des animations visuellement distinctes indiquant les différents modes de communication, et une alerte clignotante si le limiteur de courant est déclenché.

J’ai le sentiment que c’est quelque chose qui fera son chemin dans le firmware à un moment donné dans le futur, mais cela semble être une occasion manquée de ne pas l’avoir implémenté dès le départ. Au moins, cela aurait contribué à justifier l’ajout de LED auprès de ceux qui pourraient penser qu’elles ne sont qu’une touche inutile.

Console Cowboy

Si vous avez utilisé un Bus Pirate antérieur, vous vous sentirez comme chez vous avec cette dernière version. Son interface de terminal série a été actualisée, avec désormais des couleurs et une barre d’état persistante très élégante en bas, mais de nombreuses commandes restent les mêmes et le flux de travail de déplacement entre les modes et de communication avec les appareils est fondamentalement identique. Si tu n’ai pas Si vous avez déjà utilisé un Bus Pirate, l’interface est assez simple et les fonctions d’aide intégrées vous mettront généralement sur la bonne voie.

Vous n’avez besoin d’aucun logiciel spécial pour accéder à l’interface de Bus Pirate ; ouvrez simplement votre terminal série préféré et pointez-le vers le périphérique USB créé lorsque vous le branchez. Si vous utilisez un navigateur basé sur Chrome, vous pouvez même vous y connecter via l’API Web Serial.

Par mesure de précaution, le Bus Pirate démarre en mode « Haute Impédance », ce qui désactive la plupart des fonctions liées à l’alimentation et à la communication avec les appareils. Vous devrez d’abord sélectionner le mode de communication qui correspond à votre appareil cible (UART, SPI, I2C, etc.), et à partir de là, vous pourrez allumer l’appareil et commencer à envoyer des commandes ou à effectuer des opérations.

Vous pouvez voir ici un exemple simple de communication avec un appareil I2C, dans ce cas, un capteur Bosch BME280 :

Après avoir sélectionné le mode I2C, vous activez l’alimentation et entrez les limites de tension et de courant souhaitées. Vous pouvez ensuite exécuter la première macro, qui effectue par défaut une analyse I2C par force brute. Avec les adresses R/W renvoyées pour le périphérique détecté, vous pouvez créer vos paquets I2C. Dans cet exemple, j’envoie une requête pour le registre 0xD0 (Chip ID) et j’en lis un octet de données (0x58).

Le voyage ne fait que commencer

Les vétérans de Bus Pirate avec un œil attentif ont peut-être déjà remarqué qu’il y a moins de commandes et de fonctions répertoriées dans les captures d’écran ci-dessus que celles auxquelles ils sont habitués. En effet, même si l’aspect matériel est peut-être en développement depuis plusieurs années à ce stade, le logiciel en est encore à ses balbutiements. Les mises à jour sont poussées furieusement vers le référentiel GitHub du micrologiciel, avec un processus de construction nocturne automatisé garantissant que les utilisateurs ont toujours accès au code le plus récent et le plus performant.

Ian a également donné quelques indications intéressantes sur la direction que pourrait prendre le firmware maintenant qu’il peut sortir la tête du mode matériel et consacrer son temps à l’écriture de code. Il y a même eu des rumeurs concernant la recherche d’une variante MicroPython du firmware, qui offre des possibilités fascinantes. Nous avons pu constater par nous-mêmes à quel point le processus de développement itératif rapide rendu possible par Python sur le RP2040 est puissant lors du Hackaday Supercon de l’année dernière, les participants pliant le badge Vectorscope à leur guise en un temps record. Ce genre de flexibilité sur un appareil comme le Bus Pirate 5 est honnêtement très excitant.

J’ai pris la décision consciente de ne pas appeler cela une revue du Bus Pirate 5, car tout simplement, il ne serait pas juste de porter un jugement final sur un produit qui est encore en développement actif. Il s’agit d’une plate-forme extrêmement prometteuse, qui s’améliore presque quotidiennement, mais quiconque prend le train en marche aussi tôt doit se préparer à quelques problèmes de démarrage. Cela dit, je suis convaincu qu’entre Ian et la communauté, le nouveau membre de la famille Bus Pirate deviendra tout aussi indispensable en tant qu’outil de piratage matériel que son prédécesseur légendaire.

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.