ESP32 Bit Pirate

Pentest View the repo

ESP32 Bus Pirate is an open‑source firmware for ESP32‑S3 devices that turns the hardware into a multi‑protocol hacking tool, offering an interactive CLI over USB serial or Wi‑Fi to sniff, send, script and control numerous digital (I2C, SPI, UART, 1‑Wire, etc.) and radio (Bluetooth, Wi‑Fi, Sub‑GHz, RFID) protocols.

auto-summary

5876 stars · 487 forks

Maintainer
geo-tp
License
MIT
Distribution
releasesweb-flasherm5burner
Capabilities
wifible
Chip families
esp32esp32-s3

Runs on these boards

Unverified

  • ESP32-S3-DevKitC-1UnverifiedEspressif
    Flash ESP32-S3-DevKitC-1guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • WiFi LoRa 32 (V3)UnverifiedHeltec
    Flash WiFi LoRa 32 (V3)guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • T-Display-S3UnverifiedLILYGO
    Flash T-Display-S3guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • CardputerUnverifiedM5Stackweb flasher
    Flash Cardputerweb flasher

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • Stamp-S3UnverifiedM5Stack
    Flash Stamp-S3guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • Unexpected Maker ProS3UnverifiedUnexpected Maker
    Flash Unexpected Maker ProS3guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • Seeed Studio XIAO ESP32S3UnverifiedSeeed Studio
    Flash Seeed Studio XIAO ESP32S3guided

    Unverified esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

other

  • T-DisplaydeclaredLILYGO
    Flash T-Displayguided

    declared esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

  • T-EmbeddeclaredLILYGO
    Flash T-Embedguided

    declared esp-atlas asserts this board↔firmware link at the shown trust tier — it does not guarantee your specific unit or the current firmware version. Flashing can erase keys/config and can brick the device. At your own risk.

README

ESP32 Bus Pirate

⚠️ Deprecated Branch Notice

This branch contains the legacy version of the project based on the old Arduino core. It is no longer actively developed and is kept for historical reference and maintenance purposes only. All new development and updates now take place on the pioarduino branch.

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 also communicates with radio protocols like Bluetooth, Wi-Fi, Sub-GHz and 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. Check ESP32 Bus Pirate Scripts for a collection of scripts.

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, SPI, 1Wire, 2wire, CAN, Wi-Fi, Bluetooth, 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.

  • Import and export data with the LittleFS over HTTP.

Supported Devices

| Device | | Description | |-----------------------|------------------------------------------|---------------------------------------------------| | ESP32 S3 Dev Kit | | More than 20 available GPIO, 1 button | | M5 Cardputer | | 2 GPIO (Grove), screen, keyboard, mic, speaker, IR TX, SD card, battery, standalone mode | | M5 Cardputer ADV | | 12 GPIO (Grove, Header), screen, keyboard, mic, speaker, IR TX, SD card, IMU, battery, standalone mode | | M5 Stick C Plus 2 | | 5 GPIO (Grove, Header), screen, mic, buzzer, IR TX, IMU, 3 buttons, battery | | M5 Stick S3 | | 13 GPIO (Grove, Header), screen, mic, speaker, IR TX, IR RX, IMU, 3 buttons, battery | | M5 StampS3 | | 9 GPIO (exposed pins), 1 button | | M5 AtomS3 Lite | | 8 GPIO (Grove, Header), IR TX, 1 buttton | | LILYGO T-Embed | | 9 GPIO (Grove, Header), screen, encoder, speaker, mic, SD card | | LILYGO T-Embed CC1101 | | 4 GPIO (2x Qwiic), screen, encoder, speaker, mic, SD Card, CC1101, PN532, IR TX, IR RX , battery | | Seeed Studio Xiao S3 | | 9 GPIO (exposed pins), 1 button

  • Other ESP32-S3-based Boards

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

    • You can flash the s3 dev-kit 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

  1. 🔧 Flash the firmware

  2. 🔌 Connect via Serial or Web

  3. 🧪 Use commands like:

    mode
    help
    scan
    sniff
    ...
    

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

🛠️ 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 on T-Embed

Command-Line Interfaces

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

| Interface | Advantages | Ideal for... | |------------------|-----------------------------------------------------------------------------|----------------------------------------| | Web Interface | - Accessible from any browser
- PC, tablets, mobiles
- 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 | | Standalone | - Only for the Cardputer
- On device keyboard
- On device screen | Portable sessions, Quick tests |

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

Mobile Web Interface over WiFi

Standalone Mode for the Cardputer

Using the ESP32 Bus Pirate to speak UART over WiFi

Contribute

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

Visuals Assets

See images, logo, presentations, photo, video, illustrations. These visuals can be freely used in blog posts, documentation, videos, or articles to help explain and promote the firmware.

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.

⚠️ Usage Warning: This firmware is provided for educational, diagnostic, and interoperability testing purposes only.

  • Do not use it to interfere with, probe, or manipulate devices without proper authorization.
  • Avoid any unauthorized RF transmissions (e.g., sub-GHz) that could violate local regulations or disrupt networks and communications.
  • The authors are not responsible for any misuse of this software or hardware, including legal consequences resulting from unauthorized access or signal emission.
  • Always stay within the bounds of your country’s laws and responsible disclosure policies.

Read the full README on GitHub

source github.com/geo-tp/ESP32-Bit-Pirate