-
Notifications
You must be signed in to change notification settings - Fork 320
00 Quick
ESP32 Bus Pirate is a multi-protocol exploration and debugging tool for hardware hacking.
It allows you to:
- Explore electronic buses (I2C, SPI, UART, 1-Wire, JTAG, SWD, CAN, etc.)
- Explore radio protocols (RFID, RF, Bluetooth, WiFi)
- Reverse engineer unknown devices
- Send raw transactions
- Read / write memories (EEPROM, Flash, Smartcards)
- Automate tests and scripts
Think of it as a modern, scriptable toolbox running on ESP32, with a large range of supported protocols.
Everything is done using commands. Don’t worry though, most commands are intentionally kept very simple.
In many cases, you only need to type a single word with no arguments or flags at all, such as read, receive, or scan.
Some commands do accept arguments, but they follow straightforward and intuitive formats.
General form:
command [arg1] [arg2] ...
Examples:
scan
monitor 0x13
wizard 1
sniff
logic 1
jam
read 0x13 6
- Arguments are space-separated
- Arguments in
< >are required - Arguments in
[ ]are optionnal - Numbers can be decimal or hex:
255
0xFF
You can also chain multiple commands like this:
m dio || read 1 || set 1 LOW || delayms 1 || set 1 HIGH
You usually start by selecting a protocol:
Type m, mode or m uart, m i2c.
m (prompt for mode)
mode (prompt for mode)
mode uart (direct mode access)
m dio (direct mode access)


ESP32 Bus Pirate also supports instruction-based execution(similar to bytecode). See Instruction Syntax.

You can control ESP32 Bus Pirate from Python over Serial. See Python Automation

ESP32 Bus Pirate is designed to be explored. Type commands, experiment, break things, learn.
⚠️ 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.