ESP32 Bus-Pirate for ESP32-S3DevKit

Bus-Pirate

About a year ago, I ran into a problem where I wished I could connect to a Serial port over the internet. It made me wonder: why hasn’t anyone turned an ESP32 into a Serial and I2C gateway over WiFi? Soon after I found the JetKVM and as you can see from my relative post I solved my issue with the Serial port. Two weeks ago, on a reddit post I discovered ESP32 Bus-Pirate which I believe has the potential to grow to something amazing.

In this post I will describe how I compiled the code for the ESP32-S3Devkit which is already supported by the maintainer of the repository but unfortunately no binaries are provided. At the end of the post, you can download the compiled Bus Pirate binary for the ESP32-S3 DevKit, updated as of July 31, 2025.

Compiling the code [optional]

To compile the project with full functionality, a Linux distribution is required because FastLED fails to compile on Windows. While the project can be successfully built on Windows, the LED mode will be unavailable. This was my setup:

  • Operating System: Kali Linux 2024.4
  • Visual Studio Code: 1.102.3
  • PlatformIO IDE for VSCode: 3.3.4

Procedure

1) Clone the repository:

git clone https://github.com/geo-tp/ESP32-Bus-Pirate

2) Open the folder in Visual Studio, from a terminal in the ESP32-Bus-Pirate directory type

code .

3) Select Trust the authors of all files in the parent folder 'esp32_bus-pirate' and click Yes I trust the authors

Visual Studio Trust Authors

4) Edit platformio.ini in the root of the folder and under the [env:s3-devikt] or the version you want to built uncomment the line (remove the 😉 -D ENABLE_FASTLED_PORTOCOL_SWITCHES // Only possible if you build it on linux, remove the comment following the flag // Only possible if you build it on linux and save the file

Warning: After uncommenting the line don’t forget to remove the comments after the flag // Only possible if you build it on linux, otherwise you will face the following error:

File "/home/novamostra/.platformio/penv/lib/python3. 12/site-packages/platformio/builder/tools/piobuild.py", line 195:
for key, value in env. ParseFlags (str(raw) ) . items ( )
File "/home/novamostra/.platformio/packages/tool-scons/scons-local-4.8.1/SCons/Environment.p", line 1034:
do_parse(arg)
File "/home/novamostra/. platformio/packages/tool-scons/scons-local-4. 8. 1/SCons/Environment.py", line 950:
mapping[ 'LIBS' ] . append(self.fs. File(arg)
File "/home/novamostra/.platformio/packages/tool-scons/scons-local-4.8. 1/SCons/Node/FS.py", line 1458:
return self. lookup(name, directory, File, create)
File "/home/novamostra/.platformio/packages/tool-scons/scons-local-4.8.1/SCons/Node/FS.py", line 1437:
return root. lookup_abs(p, fsclass, create)
File "/home/novamostra/.platformio/packages/tool-scons/scons-local-4.8.1/SCons/Node/FS.py", line 2480:
result.must_be_same(klass)
File "/home/novamostra/. platformio/packages/tool-scons/scons-local-4.8.1/SCons/Node/FS.py", line 644:
raise TypeError("Tried to lookup %S '%s' as a %S." %\

Visual Studio Error due to comments

5) Click on Platformio icon and select Build for the Specific Board.

Visual Studio Build

6) After building successfully the code, in ESP32-Bus-Pirate directory, navigate to .pio/build/s3-devkit and locate the following three files:

  • bootloader.bin
  • firmware.bin
  • partitions.bin

Firmware Files

Those are the required files to build the final combined firmware. I tried to merge the binaries using both ESPtool 4.91 and 5.02 and the esptool merge-bin command, but while the operation was successful my ESP32-S3DevKit was always stack in a boot loop after flashing the combined firmware. So I finally combined the final firmware on Windows using the official FlashDownload Tool V3.9.9_R2 (using the CombineBin Button).

ESP Flash Download Tool V3.9.9_R2 CombineBin

Flash Compiled Firmware to ESP32S3-DevKit using Windows

After compiling the code and combining the three firmware parts to the final firmware it’s time to flash it. If you skipped the compilation process, you can grab the final firmware for the 16MB ESP32-S3 DevKit from here

Then download the official Espressif Flash Download Tool which you from Espressif web page, exctract it and after launching it select ESP32-S3 as ChipType.

Flashtool ESP32-S3 Board

In the main window, load the combined firmware downloaded you downloaded before and set the address to 0x000. Connect your ESP32-S3Devkit using the USB port to your computer, select the appropriate COM port and click Start.

Bus-Pirate Firmware Flashing

When flashing finish the Download indicator will turn Blue.

Bus-Pirate Flashing Completed

Your device is ready. Open a new Serial connection to the device (I am using Baud Rate 115200 but the device automatically detect any baud rate selected) and you are ready to go:

ESP32 BusPirate

If you’re using your ESP32-S3 DevKit for the first time and it’s based the ESP32-S3 DevKitC-1 module, make sure to short the RGB header pins (as shown in the image below) to connect the RGB LED to GPIO 48 and enable it.

ESP32-S3 DevKitC-1 Bus-Pirate

ESP32-Bus-Pirate Official Repository

0 0 votes
Article Rating
Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Geo

Thanks for that mate