
Una herramienta de hacking de hardware con CLI basado en web que habla todos los protocolos.
# ESP32 Bit Pirate
[](https://geo-tp.github.io/ESP32-Bit-Pirate/)
**ESP32 Bit Pirate** es un firmware de código abierto que convierte tu dispositivo en una herramienta de desarrollo y análisis multiprotocolo, inspirada en el legendario Bus Pirate.
Soporta la captura, el envío, la creación de scripts y la interacción con diversos protocolos digitales (I2C, UART, 1-Wire, SPI, etc.) a través de un terminal serie o una CLI basada en web. También se comunica con protocolos de radio como Bluetooth, Wi-Fi, Sub-GHz, LoRa y RFID.
El sitio web oficial del proyecto centraliza todo: [ESP32 Bit Pirate Website](https://geo-tp.github.io/ESP32-Bit-Pirate/).
Desde allí puedes [instalar el firmware](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/), abrir las [herramientas web](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/), seguir las [guías de hardware](https://geo-tp.github.io/ESP32-Bit-Pirate/hardware/), explorar las [recetas](https://geo-tp.github.io/ESP32-Bit-Pirate/recipes/) y acceder a la [documentación](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki).

[](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/)
## Características
- Interfaz de línea de comandos (CLI) interactiva a través de **USB Serial o WiFi Web**.
- **Modos para:**
- [HiZ](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/01-HiZ) (por defecto)
- [I2C](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/05-I2C) (escaneo, glitch, modo esclavo, volcado, eeprom)
- [SPI](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/06-SPI) (eeprom, flash, sdcard, modo esclavo)
- [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) (puente, lectura, escritura)
- [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 digital, lectura, pullup, set, pwm)
- [Infrared](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/11-INFRARED) (envío, grabación, mando universal)
- [USB](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/12-USB) (HID, flashrom, almacenamiento, usb-uart)
- [Bluetooth](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/13-BLUETOOTH) (BLE HID, escaneo, suplantación, 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) (escaneo, SWD, openOCD)
- [LED](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/10-LED) (animaciones, configurar LEDs)
- [I2S](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/16-I2S) (probar altavoces, micrófono, reproducir sonido)
- [CAN](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/17-CAN) (sniff, enviar y recibir tramas)
- [SUBGHZ](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/19-SUBGHZ) (analizar, grabar, reproducir)
- [RFID](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/20-RFID) (leer, escribir, clonar)
- [RF24](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/21-RF24) (escaneo, enviar, recibir)
- [FM](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/22-FM) (analizar, emitir)
- [CELL](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/23-CELL) (volcar tarjeta sim, sms, llamada)
- [LORA](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/24-LORA) (sniff, payload, meshtatic)
- **Sniffers de protocolos** I2C, UART, SPI, 1Wire, 2wire, CAN, Wi-Fi, Bluetooth, SubGhz.
- **Detección automática** de baudrate, comandos AT y diversas herramientas para UART.
- Manipulación de registros, **herramientas de volcado de EEPROM**, identificación de dispositivos para I2C.
- Lectura de todo tipo de **EEPROM, Flash** y otras herramientas variadas para SPI.
- Scripting mediante instrucciones **bytecode estilo Bus Pirate** o **Python**.
- Soporte de infrarrojos con más de **80 protocolos**.
- Gestión directa de E/S, **PWM, servo, estado de GPIOs**.
- Análisis de señales de radio y frecuencias **en todas las bandas**.
- Soporte de cerca de **50 protocolos de LEDs direccionables**.
- **Asistente Pirate** para ayudarte con el firmware.
- **Dongle USB-Uart, programador SPI, analizador lógico, ESP-SDR** y más.
- [**Herramientas Web Serial**](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/) para usar USB Serial desde un navegador web.
## Dispositivos compatibles
Todas las placas listadas a continuación ofrecen exactamente las mismas características de Bit Pirate, sin diferencias en funcionalidad ni en estado de desarrollo. Algunas características pueden requerir hardware adicional.
| Dispositivo | | Descripción |
|-----------------------|------------------------------------------|---------------------------------------------------|
| **ESP32 S3 Dev Kit (N8, N8R2, N8R8, N16R8...)** |  | Más de 20 GPIO disponibles, 1 botón |
| **ESP32 S3 Zero / Super Mini** |  | 15 GPIO (pines expuestos), 1 botón |
| [**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 botón |
| **M5 Cardputer** |  | 2 GPIO (Grove), pantalla, teclado, micrófono, altavoz, IR TX, tarjeta SD, batería, [modo autónomo](#standalone-mode-for-the-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), pantalla, teclado, micrófono, altavoz, IR TX, tarjeta SD, IMU, batería, [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), [modo autónomo](#standalone-mode-for-the-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 (pines expuestos), 1 botón |
| [**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), pantalla, micrófono, altavoz, IR TX, IR RX, IMU, 3 botones, batería |
| **LILYGO T-Display** |  | 13 GPIO (1 Qwicc), pantalla, 2 botones |
| **LILYGO T-Embed** |  | 9 GPIO (Grove, Header), pantalla, encoder, altavoz, micrófono, tarjeta SD |
| **LILYGO T-Embed CC1101** |  | 4 GPIO (2x Qwiic), pantalla, encoder, altavoz, micrófono, tarjeta SD, CC1101, PN532, IR TX, IR RX , batería |
| **LILYGO T-Embed CC1101 Plus** |  | 4 GPIO (2x Qwiic), pantalla, encoder, altavoz, micrófono, tarjeta SD, CC1101, NRF24, PN532, IR TX, IR RX , batería |
| **Heltec WiFi LoRa 32 V4** |  | 15 GPIO (Header), SX1262 LoRa, 2 botones, **pantalla no compatible** |
| **Heltec Vision Master T190** |  | 15 GPIO (Header, Qwiiic), pantalla, 2 botones, SX1262 LoRa |
| **Seeed Studio Xiao S3** |  | 9 GPIO (pines expuestos), 1 botón |
| **Waveshare ESP32-S3-GEEK** |  | 7 GPIO (header Dupont), pantalla, 1 botón, tarjeta SD |
| **Unexpected Maker ProS3**| [](https://www.adafruit.com/product/5401) | Más de 20 GPIO disponibles (Header, STEMMA QT), 1 botón|
- **Otras placas basadas en ESP32-S3**
- Todas las placas basadas en el **ESP32-S3 pueden ser compatibles**, siempre que tengan al menos **4 MB de flash.**
- Puedes **flashear el firmware del s3 dev-kit (8MB flash) o del supermini (4MB flash) en cualquier placa ESP32-S3.**
- Ten en cuenta que el **mapeo de pines por defecto en el firmware puede no coincidir** con tu placa específica.
## Primeros pasos
[](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/)
1. 🔧 Flashear el firmware
- Usa el [ESP32 Bit Pirate Web Flasher](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/) para grabar el firmware directamente desde un navegador web.
- También puedes grabarlo en [M5Burner](https://docs.m5stack.com/en/download), en la categoría StickS3, AtomS3, M5StampS3 o Cardputer.
2. 🔌 Conectar por Serial o Web
- Serial: cualquier aplicación de terminal, o el [terminal Web Serial gratuito basado en navegador](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/web-serial-terminal/) (ver [Conectar por Serial](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Serial))
- Web: configura Wi-Fi y accede a la CLI desde el navegador (ver [Conexión Wi-Fi](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal))
3. 🧪 Usa comandos como:
```
mode
help
scan
sniff
...
```
## Wiki
[](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/)
📚 **[Visita la Wiki](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki)** para obtener documentación detallada sobre cada modo y comando.
Incluye:
- [Modo terminal](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal) - Acerca del terminal serie y web.
- [Descripción general de los modos](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki) - Explora los modos compatibles.
- [Configuración serie](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Serial) - Acceso serie mediante USB.
La wiki es el mejor lugar para aprender cómo funciona todo.
## Scripting
[](https://github.com/geo-tp/ESP32-Bit-Pirate-Scripts/)
🛠️ [**Automatiza interacciones con el ESP32 Bit Pirate**](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Python) usando **scripts de Python a través del puerto serie.**
Puedes escribir y probar scripts directamente en el navegador con el [ESP32 Bit Pirate Python Lab](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/python-lab/).
**Incluye:** Registro de datos en un archivo, volcado de eeprom y flash, interacción con GPIOs, animación de LEDs...
## Expander
[](https://github.com/geo-tp/ESP32-Bus-Expander)
🔌 **[Amplía las capacidades del ESP32 Bit Pirate](https://github.com/geo-tp/ESP32-Bus-Expander)** con módulos de hardware adicionales.
El Expander añade soporte para **WiFi 5 GhZ, Zigbee** u otros protocolos de radio.
[](https://github.com/geo-tp/ESP32-Bus-Expander)
## Dock
[](https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock)
🔧 **[Una estación de acoplamiento para el ESP32 S3 DevKit](https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock) diseñada para funcionar con los adaptadores originales del Bus Pirate.**
Te permite conectar y usar el ecosistema original de adaptadores y accesorios del [Bus Pirate](https://buspirate.com/).
[](https://www.pcbway.com/project/shareproject/ESP32_Bit_Pirate_Dock_ca02ded7.html)
[**Consigue el ESP32 Bit Pirate Dock en 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 de línea de comandos
El firmware ESP32 Bit Pirate proporciona tres modos de interfaz de línea de comandos (CLI):
| Interfaz | Ventajas | Ideal para... |
|------------------|-----------------------------------------------------------------------------|----------------------------------------|
| **Interfaz Web** | - Accesible desde cualquier navegador<br>- PC, tablets, móviles<br>- Funciona por Wi-Fi<br>- No se necesitan cables | Pruebas rápidas, demos, configuraciones sin pantalla |
| **Interfaz Serie** | - Mayor rendimiento<br>- Respuesta instantánea<br>- Maneja grandes volúmenes de datos sin problemas | Sesiones intensivas, interacciones frecuentes |
| **Autónomo** | - Solo para el Cardputer<br>- Teclado en el dispositivo<br>- Pantalla en el dispositivo | Sesiones portátiles, pruebas rápidas |
Todas las interfaces comparten la misma estructura de comandos y pueden usarse indistintamente ([más detalles](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/00-Terminal)).
## Interfaz web móvil por WiFi

## Modo autónomo para el Cardputer

## Contribuir
Consulta la sección [Cómo contribuir](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Contribute), que describe una **forma sencilla de añadir una nueva placa o un nuevo comando**.
## Recursos visuales
#### [](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Visual-Assets)
Consulta [imágenes, logotipo, presentaciones, fotos, vídeos, ilustraciones](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/99-Visual-Assets). Estos recursos visuales pueden **usarse libremente en publicaciones de blog, documentación, vídeos o artículos** para ayudar a explicar y promocionar el firmware.
## Advertencia
> ⚠️ **Advertencia de voltaje**: Los dispositivos solo deben funcionar a **3.3V** o **5V**.
> - **No** conectes periféricos que usen otros niveles de voltaje — hacerlo puede **dañar tu ESP32**.
> ⚠️ **Advertencia de uso**: Este firmware se proporciona **únicamente con fines educativos, de diagnóstico y de pruebas de interoperabilidad**.
> - No lo uses para interferir, sondear o manipular dispositivos sin la debida autorización.
> - Evita cualquier transmisión RF no autorizada (por ejemplo, sub-GHz) que pueda violar las regulaciones locales o interrumpir redes y comunicaciones.
> - Los autores no se responsabilizan de ningún uso indebido de este software o hardware, incluido cualquier consecuencia legal derivada de accesos no autorizados o emisiones de señales.
> - Mantente siempre dentro de los límites de las leyes de tu país y de las políticas de divulgación responsable.