geo-tp/ESP32-Bit-Pirate-Scripts

A collection of scripts to interact with the ESP32 Bit Pirate, log data, dump to file and automate hardware tasks.

96

stars

14

commits

Python

primary language

Jun 30, 2026

updated

geo-tp.github.io/ESP32-Bit-Pirate/web-tools/python-lab/
dump
eeprom
esp32
esp32-bit-pirate
flash
hacking
hardware
hardware-hacking
logging
scripting

README

ESP32 Bit Pirate Scripts

Bit Pirate Scripts

A collection of easy-to-use Python scripts to control the ESP32 Bit Pirate via USB serial interface, WiFi or BPIO adapter.

The bit-pirate package repo is available here: Bit-Pirate-Python

Install

Install from the repository:

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

Or install the Bit Pirate package directly from PyPI:

python -m pip install bit-pirate

Usage

Run scripts:

python wifi_networks_log.py

Scripts

ScriptDescription
wifi_scan_log.pyPeriodically scan networks and logs them timestamped to a file
wifi_sniff_log.pyPeriodically sniff WiFi and logs timestamped raw packets to a file
wifi_deauth_all.pySends deauth frames to all discovered SSIDs
bluetooth_sniff_log.pyPeriodically sniff packets and logs them timestamped to a file
uart_read_log.pyLogs all UART data receiveid into a file
i2c_dump_eeprom_hex.pyDump the content of an I2C EEPROM in hex format to a file
i2c_dump_eeprom_bin.pyDump the content of an I2C EEPROM in raw bin format to a file
i2c_identify_all.pyDetects all I2C devices and attempts to identify them
i2c_glitch_all.pyDetects all I2C devices and attempts to glitch them
spi_dump_flash_hex.pyDump the content of an SPI Flash in hex format to a file
spi_dump_flash_bin.pyDump the content of an SPI Flash in raw bin format to a file
spi_dump_eeprom_hex.pyDump the content of an SPI EEPROM in hex format to a file
spi_dump_eeprom_bin.pyDump the content of an SPI EEPROM in raw bin format to a file
led_custom_animation.pyCustom LED animation using led commands
infrared_devicebgone_loop.pySends 'Device-B-Gone' IR commands in loop
dio_wait_and_pulse.pyWait for a defined pin to go LOW to send a pulse
gps_util.pyParse NMEA packets from a UBlox M10 GPS module hooked up to a Bus Pirate

Creating a script

from bitpirate import BitPirate

bp = BitPirate.auto_connect()
bp.start()
bp.change_mode("i2c")
bp.send("scan")
bp.wait()
print(bp.receive())
bp.stop()

Contributors

geo-tp

11 commits

KonradIT

3 commits

geo-tp/ESP32-Bit-Pirate-Scripts

A collection of scripts to interact with the ESP32 Bit Pirate, log data, dump to file and automate hardware tasks.

96

stars

14

commits

Python

primary language

Jun 30, 2026

updated

geo-tp.github.io/ESP32-Bit-Pirate/web-tools/python-lab/
dump
eeprom
esp32
esp32-bit-pirate
flash
hacking
hardware
hardware-hacking
logging
scripting

README

ESP32 Bit Pirate Scripts

Bit Pirate Scripts

A collection of easy-to-use Python scripts to control the ESP32 Bit Pirate via USB serial interface, WiFi or BPIO adapter.

The bit-pirate package repo is available here: Bit-Pirate-Python

Install

Install from the repository:

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

Or install the Bit Pirate package directly from PyPI:

python -m pip install bit-pirate

Usage

Run scripts:

python wifi_networks_log.py

Scripts

ScriptDescription
wifi_scan_log.pyPeriodically scan networks and logs them timestamped to a file
wifi_sniff_log.pyPeriodically sniff WiFi and logs timestamped raw packets to a file
wifi_deauth_all.pySends deauth frames to all discovered SSIDs
bluetooth_sniff_log.pyPeriodically sniff packets and logs them timestamped to a file
uart_read_log.pyLogs all UART data receiveid into a file
i2c_dump_eeprom_hex.pyDump the content of an I2C EEPROM in hex format to a file
i2c_dump_eeprom_bin.pyDump the content of an I2C EEPROM in raw bin format to a file
i2c_identify_all.pyDetects all I2C devices and attempts to identify them
i2c_glitch_all.pyDetects all I2C devices and attempts to glitch them
spi_dump_flash_hex.pyDump the content of an SPI Flash in hex format to a file
spi_dump_flash_bin.pyDump the content of an SPI Flash in raw bin format to a file
spi_dump_eeprom_hex.pyDump the content of an SPI EEPROM in hex format to a file
spi_dump_eeprom_bin.pyDump the content of an SPI EEPROM in raw bin format to a file
led_custom_animation.pyCustom LED animation using led commands
infrared_devicebgone_loop.pySends 'Device-B-Gone' IR commands in loop
dio_wait_and_pulse.pyWait for a defined pin to go LOW to send a pulse
gps_util.pyParse NMEA packets from a UBlox M10 GPS module hooked up to a Bus Pirate

Creating a script

from bitpirate import BitPirate

bp = BitPirate.auto_connect()
bp.start()
bp.change_mode("i2c")
bp.send("scan")
bp.wait()
print(bp.receive())
bp.stop()

Contributors

geo-tp

11 commits

KonradIT

3 commits

Languages

Python

100.0%