
Un outil de hacking matériel avec une CLI basée sur le web qui parle tous les protocoles
# ESP32 Bit Pirate
[](https://geo-tp.github.io/ESP32-Bit-Pirate/)
**ESP32 Bit Pirate** est un firmware open-source qui transforme votre appareil en un outil de développement et d'analyse multi-protocoles, inspiré du légendaire Bus Pirate.
Il prend en charge l'écoute, l'envoi, le scripting et l'interaction avec divers protocoles numériques (I2C, UART, 1-Wire, SPI, etc.) via un terminal série ou une CLI basée sur le web. Il communique également avec des protocoles radio comme le Bluetooth, le Wi-Fi, le Sub-GHz, le LoRa et le RFID.
Le site officiel du projet centralise tout : [Site web ESP32 Bit Pirate](https://geo-tp.github.io/ESP32-Bit-Pirate/).
À partir de là, vous pouvez [installer le firmware](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/), ouvrir les [outils web](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/), suivre les [guides matériels](https://geo-tp.github.io/ESP32-Bit-Pirate/hardware/), explorer les [recettes](https://geo-tp.github.io/ESP32-Bit-Pirate/recipes/) et accéder à la [documentation](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki).

[](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/)
## Fonctionnalités
- Interface en ligne de commande (CLI) interactive via **USB Serial ou WiFi Web**.
- **Modes pour :**
- [HiZ](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/01-HiZ) (par défaut)
- [I2C](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/05-I2C) (scan, glitch, mode esclave, dump, eeprom)
- [SPI](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/06-SPI) (eeprom, flash, sdcard, mode esclave)
- [UART](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/03-UART) / [Half-Duplex UART](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/04-HDUART) (bridge, lecture, écriture)
- [1WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/02-1WIRE) (ibutton, eeprom)
- [2WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/07-2WIRE) (sniff, smartcard) / [3WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/08-3WIRE) (eeprom)
- [DIO](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/09-DIO) (E/S numériques, lecture, pullup, set, pwm)
- [Infrarouge](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/11-INFRARED) (envoi, enregistrement, télécommande universelle)
- [USB](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/12-USB) (HID, flashrom, stockage, usb-uart)
- [Bluetooth](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/13-BLUETOOTH) (BLE HID, scan, spoofing, sniffing)
- [Wi-Fi](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/14-WIFI) / [Ethernet](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/18-ETHERNET) (sniff, deauth, nmap, netcat)
- [JTAG](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/15-JTAG) (scan, SWD, openOCD)
- [LED](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/10-LED) (animations, set LEDs)
- [I2S](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/16-I2S) (test haut-parleurs, micro, lecture de son)
- [CAN](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/17-CAN) (sniff, envoi et réception de trames)
- [SUBGHZ](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/19-SUBGHZ) (analyse, enregistrement, replay)
- [RFID](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/20-RFID) (lecture, écriture, clonage)
- [RF24](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/21-RF24) (scan, envoi, réception)
- [FM](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/22-FM) (analyse, diffusion)
- [CELL](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/23-CELL) (dump carte sim, sms, appel)
- [LORA](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/24-LORA) (sniff, payload, meshtatic)
- **Sniffers de protocoles** I2C, UART, SPI, 1Wire, 2wire, CAN, Wi-Fi, Bluetooth, SubGhz.
- **Auto-détection** du baudrate, commandes AT et divers outils pour l'UART.
- Manipulation de registres, **outils de dump EEPROM**, identification de périphériques pour l'I2C.
- Lecture de toutes sortes d'**EEPROM, Flash** et divers autres outils pour le SPI.
- Scripting à l'aide d'instructions **bytecode de style Bus Pirate** ou de **Python**.
- Prise en charge de l'infrarouge avec plus de **80 protocoles**.
- Gestion directe des E/S, **PWM, servo, état des GPIOs**.
- Analyse des signaux radio et des fréquences **sur toutes les bandes**.
- Près de **50 protocoles de LEDs adressables** pris en charge.
- **Assistant Pirate** pour vous aider avec le firmware.
- **Dongle USB-Uart, programmateur SPI, analyseur logique, ESP-SDR** et plus encore.
- [**Outils Web Serial**](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/) pour utiliser l'USB Serial depuis un navigateur web.
## Appareils pris en charge
Toutes les cartes listées ci-dessous offrent exactement les mêmes fonctionnalités Bit Pirate, sans différence de fonctionnalité ni d'état de développement. Certaines fonctionnalités peuvent nécessiter du matériel supplémentaire.
| Appareil | | Description |
|-----------------------|------------------------------------------|---------------------------------------------------|
| **ESP32 S3 Dev Kit (N8, N8R2, N8R8, N16R8...)** |  | Plus de 20 GPIO disponibles, 1 bouton |
| **ESP32 S3 Zero / Super Mini** |  | 15 GPIO (broches exposées), 1 bouton |
| [**M5 AtomS3 Lite**](https://shop.m5stack.com/products/atoms3-lite-esp32s3-dev-kit?ref=pvosfmid) | [](https://shop.m5stack.com/products/atoms3-lite-esp32s3-dev-kit?ref=pvosfmid) | 8 GPIO (Grove, Header), IR TX, 1 bouton |
| **M5 Cardputer** |  | 2 GPIO (Grove), écran, clavier, micro, haut-parleur, IR TX, carte SD, batterie, [mode autonome](#mode-autonome-pour-le-cardputer) |
| [**M5 Cardputer ADV**](https://shop.m5stack.com/products/m5stack-cardputer-adv-version-esp32-s3?ref=pvosfmid) | [](https://shop.m5stack.com/products/m5stack-cardputer-adv-version-esp32-s3?ref=pvosfmid) | 12 GPIO (Grove, Header), écran, clavier, micro, haut-parleur, IR TX, carte SD, IMU, batterie, [Lora](https://shop.m5stack.com/products/cap-lora-1262-for-cardputer-adv-sx1262-atgm336h?ref=pvosfmid), [CC1101](https://shop.m5stack.com/products/cap-cc1101-nfc-for-cardputer?ref=pvosfmid), [mode autonome](#mode-autonome-pour-le-cardputer) |
| [**M5 StampS3**](https://shop.m5stack.com/products/m5stamps3a-with-2-54-header-pin?ref=pvosfmid) | [](https://shop.m5stack.com/products/m5stamps3a-with-2-54-header-pin?ref=pvosfmid) | 9 GPIO (broches exposées), 1 bouton |
| [**M5 Stick S3**](https://shop.m5stack.com/products/m5sticks3-esp32s3-mini-iot-dev-kit?ref=pvosfmid) | [](https://shop.m5stack.com/products/m5sticks3-esp32s3-mini-iot-dev-kit?ref=pvosfmid) | 13 GPIO (Grove, Header), écran, micro, haut-parleur, IR TX, IR RX, IMU, 3 boutons, batterie |
| **LILYGO T-Display** |  | 13 GPIO (1 Qwicc), écran, 2 boutons |
| **LILYGO T-Embed** |  | 9 GPIO (Grove, Header), écran, encodeur, haut-parleur, micro, carte SD |
| **LILYGO T-Embed CC1101** |  | 4 GPIO (2x Qwiic), écran, encodeur, haut-parleur, micro, carte SD, CC1101, PN532, IR TX, IR RX , batterie |
| **LILYGO T-Embed CC1101 Plus** |  | 4 GPIO (2x Qwiic), écran, encodeur, haut-parleur, micro, carte SD, CC1101, NRF24, PN532, IR TX, IR RX , batterie |
| **Heltec WiFi LoRa 32 V4** |  | 15 GPIO (Header), SX1262 LoRa, 2 boutons, **écran non pris en charge** |
| **Heltec Vision Master T190** |  | 15 GPIO (Header, Qwiiic), écran, 2 boutons, SX1262 LoRa |
| **Seeed Studio Xiao S3** |  | 9 GPIO (broches exposées), 1 bouton |
| **Waveshare ESP32-S3-GEEK** |  | 7 GPIO (header Dupont), écran, 1 bouton, carte SD |
| **Unexpected Maker ProS3**| [](https://www.adafruit.com/product/5401) | Plus de 20 GPIO disponibles (Header, STEMMA QT), 1 bouton|
- **Autres cartes basées sur l'ESP32-S3**
- Toutes les cartes basées sur l'**ESP32-S3 peuvent être prises en charge**, à condition qu'elles disposent d'au moins **4 Mo de flash.**
- Vous pouvez **flasher le firmware s3 dev-kit (8 Mo de flash) ou supermini (4 Mo de flash) sur n'importe quelle carte ESP32-S3.**
- Gardez à l'esprit que le **mappage des broches par défaut dans le firmware peut ne pas correspondre** à votre carte spécifique.
## Pour commencer
[](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/)
1. 🔧 Flasher le firmware
- Utilisez le [Web Flasher ESP32 Bit Pirate](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/) pour graver le firmware directement depuis un navigateur web.
- Vous pouvez également le graver sur [M5Burner](https://docs.m5stack.com/en/download), dans la catégorie StickS3, AtomS3, M5StampS3 ou Cardputer.
2. 🔌 Se connecter via Serial ou Web
- Serial : n'importe quelle application de terminal, ou le [terminal Web Serial gratuit basé sur navigateur](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/web-serial-terminal/) (voir [Connexion via Serial](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Serial))
- Web : configurez le Wi-Fi et accédez à la CLI via le navigateur (voir [Connexion Wi-Fi](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal))
3. 🧪 Utilisez des commandes comme :
```
mode
help
scan
sniff
...
```
## Wiki
[](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/)
📚 **[Visitez le Wiki](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki)** pour une documentation détaillée sur chaque mode et commande.
Comprend :
- [Mode terminal](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal) - À propos du terminal série et web.
- [Aperçus des modes](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki) - Parcourez les modes pris en charge.
- [Configuration série](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Serial) - Accès série via USB.
Le wiki est le meilleur endroit pour apprendre comment tout fonctionne.
## Scripting
[](https://github.com/geo-tp/ESP32-Bit-Pirate-Scripts/)
🛠️ [**Automatisez les interactions avec l'ESP32 Bit Pirate**](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Python) à l'aide de **scripts Python via le port série.**
Vous pouvez écrire et tester des scripts directement dans le navigateur avec le [Python Lab de l'ESP32 Bit Pirate](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/python-lab/).
**Notamment :** journalisation des données dans un fichier, dump eeprom et flash, interaction avec les GPIOs, animation LED...
## Expander
[](https://github.com/geo-tp/ESP32-Bus-Expander)
🔌 **[Étendez les capacités de l'ESP32 Bit Pirate](https://github.com/geo-tp/ESP32-Bus-Expander)** avec des modules matériels supplémentaires.
L'Expander ajoute la prise en charge du **WiFi 5 GhZ, Zigbee** ou d'autres protocoles radio.
[](https://github.com/geo-tp/ESP32-Bus-Expander)
## Dock
[](https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock)
🔧 **[Une station d'accueil pour l'ESP32 S3 DevKit](https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock) conçue pour fonctionner avec les adaptateurs Bus Pirate originaux.**
Elle vous permet de brancher et d'utiliser l'écosystème original d'adaptateurs et d'accessoires [Bus Pirate](https://buspirate.com/).
[](https://www.pcbway.com/project/shareproject/ESP32_Bit_Pirate_Dock_ca02ded7.html)
[**Obtenez le Dock ESP32 Bit Pirate sur PCBWay.**](https://www.pcbway.com/project/shareproject/ESP32_Bit_Pirate_Dock_ca02ded7.html)
[](https://www.pcbway.com/project/shareproject/ESP32_Bit_Pirate_Dock_ca02ded7.html)
## Interfaces en ligne de commande
Le firmware ESP32 Bit Pirate fournit trois modes d'interface en ligne de commande (CLI) :
| Interface | Avantages | Idéal pour... |
|------------------|-----------------------------------------------------------------------------|----------------------------------------|
| **Interface Web** | - Accessible depuis n'importe quel navigateur<br>- PC, tablettes, mobiles<br>- Fonctionne via Wi-Fi<br>- Aucun câble nécessaire | Tests rapides, démos, configurations sans écran |
| **Interface Série** | - Performances plus rapides<br>- Réactivité instantanée<br>- Gère de grandes quantités de données en douceur | Sessions intensives, interactions fréquentes |
| **Autonome** | - Uniquement pour le Cardputer<br>- Clavier intégré à l'appareil<br>- Écran intégré à l'appareil | Sessions portables, tests rapides |
Toutes les interfaces partagent la même structure de commandes et peuvent être utilisées de manière interchangeable ([plus de détails](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal)).
## Interface Web mobile via WiFi

## Mode autonome pour le Cardputer

## Contribuer
Voir la section [Comment contribuer](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Contribute), qui décrit une **manière simple d'ajouter une nouvelle carte ou une nouvelle commande**.
## Ressources visuelles
#### [](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Visual-Assets)
Voir [images, logo, présentations, photos, vidéos, illustrations](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Visual-Assets). Ces visuels peuvent être **librement utilisés dans des articles de blog, de la documentation, des vidéos ou des articles** pour aider à expliquer et promouvoir le firmware.
## Avertissement
> ⚠️ **Avertissement de tension** : Les appareils ne doivent fonctionner qu'à **3,3 V** ou **5 V**.
> - Ne **connectez pas** de périphériques utilisant d'autres niveaux de tension — cela pourrait **endommager votre ESP32**.
> ⚠️ **Avertissement d'utilisation** : Ce firmware est fourni à des fins **éducatives, de diagnostic et de test d'interopérabilité uniquement**.
> - Ne l'utilisez pas pour interférer avec, sonder ou manipuler des appareils sans autorisation appropriée.
> - Évitez toute transmission RF non autorisée (par exemple, sub-GHz) qui pourrait violer les réglementations locales ou perturber les réseaux et les communications.
> - Les auteurs ne sont pas responsables de toute mauvaise utilisation de ce logiciel ou matériel, y compris les conséquences juridiques résultant d'un accès non autorisé ou d'une émission de signal.
> - Restez toujours dans les limites des lois de votre pays et des politiques de divulgation responsable.