Turn an ESP32 into a USB-UART, SPI Prog, Logic Analyzer, OpenOCD, Avrdude, LIRC

geotp1 pts1 comments

Turn an ESP32-S3 into a USB-UART, SPI prog, logic analyzer - Hackster.io<br>&times;Embed the widget on your own site<br>Add the following snippet to your HTML:

ESP32 Bit Pirate transforms an ESP32-S3 into USB hardware tools compatible with applications such as flashrom, PulseView, AVRDUDE, OpenOCD<br>Read up about this project on

Turn an ESP32-S3 into a USB-UART, SPI prog, logic analyzer

3 members

2 15

Overview<br>Things<br>Story<br>What We Are Building<br>USB-UART Bridge<br>AVRDUDE SPI Programmer<br>Flashrom SPI Programmer<br>SUMP Logic Analyzer<br>OpenOCD JTAG Adapter<br>More USB Adapters<br>The ESP32 Bit Pirate Dock<br>Custom parts and enclosures<br>Schematics<br>Code<br>Credits<br>Comments(0)

Share on FacebookShare on LinkedInShare on PinterestShare on RedditShare on XEmbed" data-html="true" data-placement="bottom" data-toggle="popover" data-trigger="click">

Geo-tp<br>fdufnews<br>Andrei Vladescu

Published June 10, 2026 &copy; MIT

Turn an ESP32-S3 into a USB-UART, SPI prog, logic analyzer<br>ESP32 Bit Pirate transforms an ESP32-S3 into USB hardware tools compatible with applications such as flashrom, PulseView, AVRDUDE, OpenOCD<br>IntermediateWork in progress1 hour15

Things used in this project

Hardware components<br>M5Stack AtomS3&times;1M5Stack Cardputer-Adv&times;1M5Stack Cardputer&times;1M5Stack STAMPS3 &times;1Seeed Studio XIAO ESP32S3&times;1LILYGO® TTGO T-Display&times;1M5Stack StickS3&times;1Espressif ESP32-S3&times;1

Story

ESP32 Bit Pirate Logo

What We Are Building<br>ESP32 Bit Pirate is an open-source firmware that turns compatible ESP32 devices into versatile hardware hacking and debugging tools, inspired by the original Bus Pirate.<br>It lets you analyze, control, and automate protocols such as I2C, UART, SPI, or 1-Wire through either a serial terminal or a web-based CLI. It also includes support for wireless technologies like Wi-Fi, Bluetooth, Sub-GHz, or RFID.<br>ESP32 Bit Pirate features:<br>HiZ (default)<br>I2C (scan, glitch, slave mode, dump, eeprom)<br>SPI (eeprom, flash, sdcard, slave mode)<br>UART / Half-Duplex UART (bridge, read, write)<br>1WIRE (ibutton, eeprom)<br>2WIRE (sniff, smartcard) / 3WIRE (eeprom)<br>DIO (Digital I/O, read, pullup, set, pwm)<br>Infrared (send, record, universal remote)<br>USB (HID, flashrom, storage, usb-uart)<br>Bluetooth (BLE HID, scan, spoofing, sniffing)<br>Wi-Fi / Ethernet (sniff, deauth, nmap, netcat)<br>JTAG (scan, SWD, openOCD)<br>LED (animations, set LEDs)<br>I2S (test speakers, mic, play sound)<br>CAN (sniff, send and receive frames)<br>SUBGHZ (analyze, record, replay)<br>RFID (read, write, clone)<br>RF24 (scan, send, receive)<br>FM (analyze, broadcast)<br>CELL (dump sim card, sms, call)<br>ESP32 Bit Pirate v1.6 introduces a set of USB adapters that let a single ESP32-S3 work with established applications such as flashrom, PulseView, AVRDUDE, OpenOCD, and LIRC.

ESP32 Bit Pirate Web Interface using USB Mode

USB-UART Bridge<br>The simplest adapter is a standard USB-to-UART bridge. After selecting the RX and TX pins, the ESP32-S3 restarts and appears on the computer as a regular serial port. It can then be used with applications such as PuTTY, screen, minicom, or the Arduino Serial Monitor to read debug messages, communicate with embedded devices, or access the console of a single-board computer. Optional BOOT and RESET pins can also be configured when the target requires automatic control of its programming mode.

AVRDUDE SPI Programmer<br>The AVRDUDE adapter uses the legacy Bus Pirate binary SPI protocol, allowing the ESP32-S3 to work as a programmer for supported AVR microcontrollers. Once the SPI and reset pins are configured, AVRDUDE can communicate with the target using its existing Bus Pirate backend. This makes it possible to read device signatures, flash firmware, verify memory, or inspect fuse settings without requiring a dedicated AVR programmer.

AVRDUDESS with Bus Pirate programmer

Flashrom SPI Programmer<br>The Flashrom adapter turns the ESP32-S3 into a serprog-compatible SPI programmer. After configuring the CS, SCK, MOSI, and MISO pins, the device can be selected directly from flashrom to identify, read, write, or verify supported SPI flash chips. This is especially useful for backing up firmware from routers, development boards, and other embedded devices before attempting modifications or reverse engineering.

Flash adapters to use with Bit Pirate and Flashrom

SUMP Logic Analyzer<br>The SUMP adapter turns the ESP32-S3 into a logic analyzer compatible with sigrok and PulseView. Multiple GPIO pins can be sampled simultaneously and displayed as digital channels, making it possible to inspect UART, SPI, I2C, PWM, and other signals using PulseView’s built-in protocol decoders. It is a practical option for quick debugging and reverse-engineering tasks when a dedicated logic analyzer is not available.

PulseView with Bit Pirate and the SUMP adapter

OpenOCD JTAG Adapter<br>The OpenOCD adapter lets the ESP32-S3 act as a Bus Pirate-compatible JTAG interface. After assigning the TCK, TMS, TDI, and TDO pins, OpenOCD can use the board to detect supported targets, inspect the JTAG...

esp32 pirate uart openocd times flashrom

Related Articles