Skip to content

geo-tp/ESP32-Bus-Pirate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 Bus Pirate

ESP32 Bus Pirate Firmware

ESP32 Bus Pirate is an open-source firmware that turns your device into a multi-protocol hacker's tool, inspired by the legendary Bus Pirate.

It supports sniffing, sending, scripting, and interacting with various digital protocols (I2C, UART, 1-Wire, SPI, etc.) via a serial terminal or web-based CLI. It can also communicates with radio protocols like Bluetooth, Wi-Fi, Sub-GHz, RFID.

Use the ESP32 Bus Pirate Web Flasher to install the firmware in one click. See the Wiki for step-by-step guides on every mode and command. See ESP32 Bus Pirate Scripts for a collection of scripts.

Demo showing the different mode of the ESP32 Bus Pirate

Features

  • Interactive command-line interface (CLI) via USB Serial or WiFi Web.

  • Modes for:

    • HiZ (default)
    • I2C (scan, glitch, slave mode, dump, eeprom)
    • SPI (eeprom, flash, sdcard, slave mode)
    • UART / Half-Duplex UART (bridge, read, write)
    • 1WIRE (ibutton, eeprom)
    • 2WIRE (sniff, smartcard) / 3WIRE (eeprom)
    • DIO (Digital I/O, read, pullup, set, pwm)
    • Infrared (device-b-gone, universal remote)
    • USB (HID, mouse, keyboard, gamepad, storage)
    • Bluetooth (BLE HID, scan, spoofing, sniffing)
    • Wi-Fi / Ethernet (sniff, deauth, nmap, netcat)
    • JTAG (scan pinout, SWD)
    • LED (animations, set LEDs)
    • I2S (test speakers, mic, play sound)
    • CAN (sniff, send and receive frames)
    • SUBGHZ (sniff, scan, replay)
    • RFID (read, write, clone)
    • RF24 (scan, sniff)
  • Protocol sniffers for I2C, Wi-Fi, Bluetooth, 1Wire, 2wire, CAN, SubGhz.

  • Baudrate auto-detection, AT commands and various tools for UART.

  • Registers manipulation, eeprom dump tools, identify devices for I2C.

  • Read all sort of EEPROM, Flash and various others tools for SPI.

  • Scripting using Bus Pirate-style bytecode instructions or Python.

  • Device-B-Gone command with more than 80 supported INFRARED protocols.

  • Direct I/O management, PWM, servo, pulse.

  • Analyze radio signals and frequencies on every bands.

  • Near than 50 addressable LEDs protocols supported.

  • Ethernet and WiFi are supported to access networks.

  • Web interface with live terminal, or a classic serial CLI.

Supported Devices

  • ESP32 S3 Dev Kit

An Espressif 32 S3 dev kit

  • M5 Cardputer

An M5 Stack Cardputer device

  • M5 Stick C Plus 2

An M5 Stick C Plus 2 device

  • M5 Atom S3 Lite

An M5 Atom S3 Lite device

  • M5 Stamp S3

An M5stampS3 micro controller

  • LILYGO T-Embed

A LilyGo T-Embed micro controller

  • LILYGO T-Embed CC1101

A LilyGo T-Embed micro controller

  • Seeed Studio Xiao S3

A Seeed Studio Xiao ESP32-S3 micro controller

  • Other ESP32-S3-based Boards

    • All boards based on the ESP32-S3 can be supported, provided they have 8 MB of flash.

    • You can flash the DevKit firmware onto any ESP32-S3 board.

    • Keep in mind that the default pin mapping in the firmware may not match your specific board.

Getting Started

ESP32 Bus Pirate web flasher

  1. 🔧 Flash the firmware

  2. 🔌 Connect via Serial or Web

  3. 🧪 Use commands like:

    mode
    help
    scan
    sniff
    ...

    See detailed explanations about Terminal Commands and how each one works.

Wiki

ESP32 Bus Pirate Wiki

📚 Visit the Wiki for detailed documentation on every mode and command.

Includes:

The wiki is the best place to learn how everything works.

Scripting

ESP32 Bus Pirate Scripts

You can automate interactions with the ESP32 Bus Pirate using Python scripts over serial.

Examples and ready-to-use scripts are available in the repository: ESP32 Bus Pirate Scripts.

Including: Logging data in a file, eeprom and flash dump, interracting with GPIOs, LED animation...

ESP32 Bus Pirate on M5 Devices

ESP32 Bus Pirate running on M5 Stack devices

ESP32 Bus Pirate on T-Embed

ESP32 Bus Pirate running on M5 Stack devices

Web & Serial Interfaces

The ESP32 Bus Pirate firmware provides two command-line interface (CLI) modes:

Interface Advantages Ideal for...
Web Interface - Accessible from any browser
- Works over Wi-Fi
- No cables needed
Quick tests, demos, headless setups
Serial Interface - Faster performance
- Instant responsiveness
- Handles large data smoothly
Intensive sessions, frequent interactions

Both interfaces share the same command structure and can be used interchangeably (more details).

An iPhone screenshot showing Bus Pirate web cli

Using the ESP32 Bus Pirate to speak UART over WiFi

Using the ESP32 Bus pirate with UART

Contribute

See How To Contribute section, which outlines a simple way to add a new command to any mode.

Warning

⚠️ Voltage Warning: Devices should only operate at 3.3V or 5V.
Do not connect peripherals using other voltage levels — doing so may damage your ESP32.