\

ESP32 Bit Pirate, a Hardware Hacking Tool with WebCLI That Speaks Every Protocol

150 points - today at 7:40 AM

Source
  • dbl000

    today at 4:22 PM

    @geotp Ignore a lot of the mean comments, this is an excellent project and something that I've being meaning to hack together for myself. Having web access to remotely debug I2C/UART is a literal godsend. I cannot wait to just drop in an ESP32 instead of having to connect a rats nest of wires.

      • geotp

        today at 6:00 PM

        Thanks for the support

    • coldcity_again

      today at 1:06 PM

      The snark in these comments! @geotp please don't be put off, this is great work.

      Found it in recent days and couldn't have been better timing for what I needed to do.

      I have it running well on a Heltec WiFi LoRa 32(V3) with very minor patches to support the CP2102 UART.

        • atVelocet

          today at 1:52 PM

          True! Also a perfect timing for me.

          Do you mind sharing the changes?

            • coldcity_again

              today at 5:32 PM

              On it :)

          • geotp

            today at 2:12 PM

            Thanks for your support

            If you want, you can push the platformio env for your specific board to add it to the list of supported boards

              • coldcity_again

                today at 5:31 PM

                Happy to PR. I'll do in 2 parts, as needs the platformio env as well as UART-aware serial init in adapters and terminal.

                • nhecker

                  today at 4:47 PM

                  +1 for V3 support, and if there's anything I can do to help with V4 support, let me know. I've not got the most free time, but would be happy to contribute if possible.

          • geotp

            today at 7:40 AM

            ESP32 Bit Pirate is an open-source firmware that transforms compatible devices into versatile multi-protocol hacking tools, inspired by the original Bus Pirate.

            It can sniff, send, script, and interact with digital protocols such as I2C, UART, SPI, and 1-Wire through either a Serial CLI or a Web CLI. It also supports wireless technologies including Bluetooth, Wi-Fi, Sub-GHz, and RFID.

            Install the firmware in one click with the ESP32 Bit Pirate Web Flasher. The Wiki provides detailed guides for every mode and command, while ESP32 Bit Pirate Scripts offers a collection of ready-to-use examples and utilities.

            For additional hardware capabilities, the ESP32 Bus Expander adds extra radio interfaces, while the ESP32 Bit Pirate Dock provides compatibility with original Bus Pirate adapters and accessories.

            • officialchicken

              today at 9:29 AM

              I have an old v3.6 from Dangerous Prototypes that I still frequently use and works fine with a coding assistant over serial terminal for doing some wire-level debugging of firmware. I am definitely not interested in paying the Pi tax for a new one just to get improved scripting. The roughly $100 BP v6 price point means looking into a other analyzers is required. How does this ESP firmware really compare - can anyone who's used both say what's different other than wireless?

                • geotp

                  today at 9:40 AM

                  The two projects have fairly different directions, even though they overlap on most core wired protocol features.

                  The original Bus Pirate relies heavily on a more complex bytecode-style syntax for many lowlevel operations. The ESP32 version replaces most of that with simple, explicit commands that perform the same tasks through a more straightforward workflow

                  The ESP32 version also avoids flag heavy commands and uses interactive shells where appropriate. Its main additional strength is radio support not present on the original Bus Pirate, including WiFi, RFID/NFC, SubGHz, NRF24, FM, infrared, and Bluetooth.

                  It can also be controlled through the Web CLI from any phone, tablet, or device with a web browser, using integrated AI assistant to help with hardware task.

                  So it is not simply a cheaper Bus Pirate v6 clone

                    • rigonkulous

                      today at 9:55 AM

                      One thing in BP v6's favor is the RP2350 - which can be put into operation as a "data-cap analyser for GPIO" - true - but it can also be programmed for use as a full protocol tap for embedded projects which will also integrate the RP2350, or something like it, in an embedded design.

                      The ESP32 is great - I will get a couple for my toolbox, sitting alongside my own ancient Bus Pirate and things - but the RP2350 is a bit more BOM-friendly, imho. All of these things can be used to bring-up an embedded system - I'd really want to use the BP v6 to bring up an embedded system with an IO package I could emulate/integrate with the RP2350 on both sides of the design ..

                      • officialchicken

                        today at 10:04 AM

                        Due to this obviously AI-generated response (thus codebase) - I'll pass.

                          • geotp

                            today at 10:07 AM

                            I’m French and my English isn’t very good, so please excuse me for using a translator. Feel free to take a look at the codebase

                              • officialchicken

                                today at 10:11 AM

                                Ok! Sorry, the translation is kinda rough and seems rigid and robotic.

                    • cibomahto

                      today at 1:12 PM

                      The BP V5 is only $42.50 and is still the most popular model, and is actively developed and supported. The BP6 has some fancier features that make it more expensive, but the Bus Pirate folks are very price sensitive and want to keep the tool as accessible as possible. (source: I'm a distributor for them).

                  • rkachowski

                    today at 4:17 PM

                    This is super cool, I love the idea of just having a $5 wifi UART

                    • jwr

                      today at 8:49 AM

                      This looks great! The Bus Pirate was quite a good tool. For hardware hacking there is also Glasgow Interface Explorer, which I've been using recently with AI with much success.

                      The main difference is that Glasgow has an FPGA on-board, and you (or AI) can create applets for custom protocols and serious high-speed hacking.

                      • farfatched

                        today at 11:49 AM

                        Great!

                        I'd like to use as a serial-over-wifi adapter, for remote management of my SBCs.

                        Can anyone suggest a decent device for this, that relies on no soldering or 3d printing?

                        Ideally the device would expose a serial-over-USB port, so I can just plug in a USB-UART adapter.

                          • geotp

                            today at 12:07 PM

                            The firmware can already be used as a serial over WiFi adapter through the Web CLI.

                            You do not need to connect a separate USB-UART adapter to it: simply connect the ESP32S3 UART pins directly to the board’s TX, RX, and GND pins.

                            Any ESP32S3 board could do it, see README for different types of supported devices

                            • farfatched

                              today at 12:05 PM

                              Ah, I see the M5 AtomS3 Lite has a grove, which is probably robust enough for me.

                              Great!

                          • kps

                            today at 3:18 PM

                            Which supported boards will do 5V I/O?

                              • geotp

                                today at 4:19 PM

                                https://github.com/AndreiVladescu/ESP32-Bit-Pirate-Dock

                                It supports voltages from 1.8 V to 5 V when used with the dock

                                • extraduder_ire

                                  today at 4:00 PM

                                  I don't think there's any common 5V esp32 boards. You should be able to wire up some level shifters to connect it to 5V (or a range of other voltages). Sparkfun sells boards with a TXS0108E on it as well as simpler transistor based ones.

                              • devmor

                                today at 3:33 PM

                                This is actually really cool - I could have used something like this that supports looking for RTMP as well a couple months ago.

                                • tamimio

                                  today at 1:27 PM

                                  It looks interesting, was it tested on T7 S3 ESP32-S3 Development Board?

                                    • geotp

                                      today at 5:53 PM

                                      It works on all ESP32S3 boards with at least 8 MB of flash. Check the README for more details

                                  • throwa356262

                                    today at 9:12 AM

                                    @geotp

                                    Any reason why C1 is not supported?

                                      • geotp

                                        today at 9:29 AM

                                        What do you mean by C1? Do you mean the ESP32-C3 or C5? If so, they are not supported mainly for performance and hardware capability reasons

                                          • throwa356262

                                            today at 10:05 AM

                                            Sorry, I meant C3

                                    • ktzar

                                      today at 9:08 AM

                                      compatible with Cardputer?

                                        • geotp

                                          today at 9:11 AM

                                          Yes, it is compatible with both Cardputer models and many other devices, including the $5 ESP32S3 clone

                                      • marcosscriven

                                        today at 8:54 AM

                                        I’m curious about how you used LLMs here?

                                        Also, to what extent you designed this vs the LLM copying it?

                                        My concern is all these vibe coded projects with huge readmes and fake GitHub stars are essentially just copying the work of others, and don’t really do anything new.

                                          • throwa356262

                                            today at 9:15 AM

                                            You can see in the git commit log how it has progressed slowly over a period of one year to get here.

                                            So at least it is not a weekend vibe coded AI slop.

                                              • marcosscriven

                                                today at 10:59 AM

                                                Not sure 600,000 commits by one person in a year, most concentrated in a few months over the year, counts as “slowly”.

                                                  • geotp

                                                    today at 11:04 AM

                                                    Where do you see 600k commits? Are you talking about 600k lines of code? If so, the project includes libraries in the `lib` folder, notably a large screen library called `tft_espi` which must be 500k lines on its own (which has since been removed, that's why you see -500k lines)

                                                    I know the codebase inside and out, feel free to ask

                                                    • coldcity_again

                                                      today at 1:10 PM

                                                      There are 1300 commits. What is everyone smoking today?

                                              • geotp

                                                today at 9:02 AM

                                                I’m not sure I fully understand the question.

                                                The implementation is entirely new and was built specifically for this project, it is not copied from another project. LLMs were used as development tools, but the architecture, feature selection, integration, testing, and overall direction were designed and validated by contributors and me.

                                            • voidUpdate

                                              today at 9:03 AM

                                              Wow, it speaks EVERY protocol? That's pretty impressive. I'll need to flash one of these so I can read CYCLADES data transmissions, whatever protocol those parallel port security keys use and LORAWAN. Does it also read any random protocol I just invented myself, out of the box?

                                                • geotp

                                                  today at 9:08 AM

                                                  Yes, it includes scripting and raw GPIO/bit-banging features, so you can read essentially any custom protocol yourself, including one you invented five minutes ago

                                                    • voidUpdate

                                                      today at 9:14 AM

                                                      Probably needs an asterisk after "speaks ALL protocols" to say "you will need to write the protocol handlers yourself, this does not speak all protocols out of the box".

                                                      Speaking of which, I wrote a program that can crack any encryption every designed. It just executes a python file in the same folder, you have to write the cracker yourself

                                                      • poppadom1982

                                                        today at 12:59 PM

                                                        That's wonderful, have I mentioned that I have found a piece of software that does EVERYTHING that you've ever wanted? Spreadsheet, web browser, Bitcoin miner, it does EVERYTHING.

                                                        That software is gcc. Only caveat is you need to implement anything yourself, including the software you invented five minutes ago.

                                                        Case in point: clickbait is super annoying

                                                    • picofarad

                                                      today at 1:03 PM

                                                      So the title would be better as saying potentially every protocol, then?

                                                      When it said every protocol, I read it as potentially every protocol, myself. I have an O-scope that can read every wire protocol too.

                                                        • voidUpdate

                                                          today at 1:07 PM

                                                          I mean, anything other than "speaks every protocol", which is incorrect unless someone goes ahead and writes a parser for every single protocol. "Many protocols"? "A wide variety of protocols"? "More protocols out of the box that any other product ever"?