[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75737":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},75737,"ESP32-Bit-Pirate","geo-tp\u002FESP32-Bit-Pirate","geo-tp","A Hardware Hacking Tool with Web-Based CLI That Speaks Every Protocol ",null,"https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bit-Pirate","C++",3765,292,48,30,0,218,542,609,654,29.4,false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"esp32","hardware-hacking","debugging","can-bus","i2c","jtag","spi","uart","subghz","gpio","wifi","rfid","arduino","eeprom","bluetooth","pwm","flipperzero","radio","protocols","2026-06-12 02:03:35","# ESP32 Bit Pirate\n\n![Logo banner of the ESP32 Bit Pirate firmware](images\u002Flogo_protocols_banner_small.png)\n\n\n**ESP32 Bit Pirate** is an open-source firmware that turns your device into a multi-protocol hacker's tool, inspired by the [legendary Bus Pirate](https:\u002F\u002Fbuspirate.com\u002F).\n\nIt supports sniffing, sending, scripting, and interacting with various digital protocols (I2C, UART, 1-Wire, SPI, etc.) via a serial terminal or web-based CLI. It also communicates with radio protocols like Bluetooth, Wi-Fi, Sub-GHz and RFID.\n\nUse the [ESP32 Bit Pirate Web Flasher](https:\u002F\u002Fgeo-tp.github.io\u002FESP32-Bit-Pirate\u002Fwebflasher\u002F) to install the firmware in one click. See the [Wiki](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki) for step-by-step guides on every mode and command. Check [ESP32 Bit Pirate Scripts](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate-Scripts) for a collection of scripts.\n\nFor hardware extensions, see the [ESP32 Bus Expander](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Expander) for additional radio interfaces, and the [ESP32 Bit Pirate Dock](https:\u002F\u002Fgithub.com\u002FAndreiVladescu\u002FESP32-Bus-Pirate-Dock) to use original [Bus Pirate](https:\u002F\u002Fbuspirate.com\u002F) adapters and accessories.\n\n![Demo showing the different mode of the ESP32 Bit Pirate firmware](images\u002Fhelp.gif)\n![Demo showing the LittleFS file system of the ESP32 Bit Pirate firmware](images\u002Flittlefs.gif)\n\n## Features\n\n- Interactive command-line interface (CLI) via **USB Serial or WiFi Web**.\n- **Modes for:**\n   - [HiZ](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F01-HiZ) (default)\n   - [I2C](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F05-I2C) (scan, glitch, slave mode, dump, eeprom)\n   - [SPI](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F06-SPI) (eeprom, flash, sdcard, slave mode)\n   - [UART](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F03-UART) \u002F [Half-Duplex UART](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F04-HDUART) (bridge, read, write)\n   - [1WIRE](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F02-1WIRE) (ibutton, eeprom)\n   - [2WIRE](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F07-2WIRE) (sniff, smartcard) \u002F [3WIRE](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F08-3WIRE) (eeprom)\n   - [DIO](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F09-DIO) (Digital I\u002FO, read, pullup, set, pwm)\n   - [Infrared](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F11-INFRARED) (send, record, universal remote)\n   - [USB](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F12-USB) (HID, mouse, keyboard, gamepad, storage)\n   - [Bluetooth](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F13-BLUETOOTH) (BLE HID, scan, spoofing, sniffing)\n   - [Wi-Fi](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F14-WIFI) \u002F [Ethernet](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F18-ETHERNET) (sniff, deauth, nmap, netcat)\n   - [JTAG](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F15-JTAG) (scan pinout, SWD)\n   - [LED](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F10-LED) (animations, set LEDs)\n   - [I2S](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F16-I2S) (test speakers, mic, play sound)\n   - [CAN](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F17-CAN) (sniff, send and receive frames)\n   - [SUBGHZ](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F19-SUBGHZ) (analyze, record, replay)\n   - [RFID](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F20-RFID) (read, write, clone)\n   - [RF24](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F21-RF24) (scan, send, receive)\n   - [FM](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F22-FM) (analyze, broadcast)\n   - [CELL](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F23-CELL) (dump sim card, sms, call)\n\n\n- **Protocol sniffers** for I2C, SPI, 1Wire, 2wire, CAN, Wi-Fi, Bluetooth, SubGhz.\n- Baudrate **auto-detection**, AT commands and various tools for UART.\n- Registers manipulation, **EEPROM dump tools**, identify devices for I2C.\n- Read all sort of **EEPROM, Flash** and various others tools for SPI.\n- Scripting using **Bus Pirate-style bytecode** instructions or **Python**.\n- Device-B-Gone command with more than **80 supported INFRARED protocols**.\n- Direct I\u002FO management, **PWM, servo**, pulse.\n- Analyze radio signals and frequencies **on every bands**.\n- Near than **50 addressable LEDs protocols** supported.\n- **Ethernet and WiFi** are supported to access networks.\n- Import and export data with the **LittleFS over HTTP.**\n\n## Supported Devices\n\n\n| Device               |                                     | Description                       |\n|-----------------------|------------------------------------------|---------------------------------------------------|\n| **ESP32 S3 Dev Kit**  | ![Photo of the ESP32 S3 Dev Kit](\u002Fimages\u002Fs3-devkit_s.jpg)     | More than 20 available GPIO, 1 button |\n| **M5 Cardputer**      | ![Photo of the M5 Cardputer](\u002Fimages\u002Fcardputer_s.png)            | 2 GPIO (Grove), screen, keyboard, mic, speaker, IR TX, SD card, battery, [standalone mode](#standalone-mode-for-the-cardputer)            |\n| **M5 Cardputer ADV**  | ![Photo of the M5 Cardputer ADV](\u002Fimages\u002Fcardputer-adv_s.jpg)    | 12 GPIO (Grove, Header), screen, keyboard, mic, speaker, IR TX, SD card, IMU, battery, [standalone mode](#standalone-mode-for-the-cardputer)                  |\n| **M5 Stick S3** | ![Photo of the M5 Stick S3](\u002Fimages\u002Fm5sticks3_s.jpg)      | 13 GPIO (Grove, Header), screen, mic, speaker, IR TX, IR RX, IMU, 3 buttons, battery                 |\n| **M5 StampS3**        | ![Photo of the M5 StampS3](\u002Fimages\u002Fstamps3_s.jpg)             | 9 GPIO (exposed pins), 1 button                       |\n| **M5 AtomS3 Lite**    | ![Photo of the M5 Atom S3 Lite](\u002Fimages\u002Fatom_s.jpg)            | 8 GPIO (Grove, Header), IR TX, 1 buttton                  |\n| **LILYGO T-Display** | ![Photo of the T-Display-S3](\u002Fimages\u002Ft_displays3_s.jpg) | 13 GPIO (1 Qwicc), screen, 2 buttons |\n| **LILYGO T-Embed**    | ![Photo of the LILYGO T-Embed](\u002Fimages\u002Ftembed_s.jpg)          | 9 GPIO (Grove, Header), screen, encoder, speaker, mic, SD card                                         |\n| **LILYGO T-Embed CC1101** | ![Photo of the LILYGO T-Embed CC1101](\u002Fimages\u002Ftembedcc1101_s.jpg) | 4 GPIO (2x Qwiic), screen, encoder, speaker, mic, SD Card, CC1101, PN532, IR TX, IR RX , battery                                 |\n| **LILYGO T-Embed CC1101 Plus** | ![Photo of the LILYGO T-Embed CC1101 Plus](\u002Fimages\u002Ftembedcc1101_s.jpg) | 4 GPIO (2x Qwiic), screen, encoder, speaker, mic, SD Card, CC1101, NRF24, PN532, IR TX, IR RX , battery                                 |\n| **Seeed Studio Xiao S3** | ![Photo of the Seeed Studio Xiao ESP32-S3](\u002Fimages\u002Fxiaos3_s.jpg)        | 9 GPIO (exposed pins), 1 button        \n\n- **Other ESP32-S3-based Boards**\n\n  - All boards based on the **ESP32-S3 can be supported**, provided they have at least **8 MB of flash.**\n\n  - You can **flash the s3 dev-kit firmware onto any ESP32-S3 board.**\n\n  - Keep in mind that the **default pin mapping in the firmware may not match** your specific board.\n\n## Getting Started\n\n[![Banner of the ESP32 Bit Pirate web flasher](images\u002Fflasher.jpg)](https:\u002F\u002Fgeo-tp.github.io\u002FESP32-Bit-Pirate\u002Fwebflasher\u002F)\n\n1. 🔧 Flash the firmware  \n   - Use the [ESP32 Bit Pirate Web Flasher](https:\u002F\u002Fgeo-tp.github.io\u002FESP32-Bit-Pirate\u002Fwebflasher\u002F) to burn the firmware directly from a web browser.\n   - You can also burn it on [M5Burner](https:\u002F\u002Fdocs.m5stack.com\u002Fen\u002Fdownload), in the M5stick, AtomS3, M5StampS3 or Cardputer category.\n\n2. 🔌 Connect via Serial or Web\n   - Serial: any terminal app (see [Connect via Serial](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Serial))\n   - Web: configure Wi-Fi and access the CLI via browser (see [Wi-Fi Connection](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F00-Terminal))\n\n3. 🧪 Use commands like:\n   ```bash\n   mode\n   help\n   scan\n   sniff\n   ...\n    ```\n\n## Wiki\n\n[![Banner of the ESP32 Bit Pirate Wiki page](images\u002Fbus_pirate_wiki.png)](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F)\n\n📚 **[Visit the Wiki](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki)** for detailed documentation on every mode and command.\n\nIncludes:\n- [Terminal mode](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F00-Terminal) - About serial and web terminal.\n- [Mode overviews](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki) - Browse supported modes.\n- [Instruction syntax](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Instructions) - Master the instructions.\n- [Serial setup](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Serial) - Serial access via USB.\n\nThe wiki is the best place to learn how everything works.\n\n## Scripting\n\n[![Banner of the ESP32 Bit Pirate Scripts page](images\u002Fbus_pirate_scripts.png)](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate-Scripts\u002F)\n\n🛠️ [**Automate interactions with the ESP32 Bit Pirate**](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Python) using **Python scripts over serial.**\n\n**Examples and ready-to-use scripts** are available in the repository: [ESP32 Bit Pirate Scripts](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate-Scripts).\n\n**Including:** Logging data in a file, eeprom and flash dump, interracting with GPIOs, LED animation...\n   \n## Expander\n[![Banner of the ESP32 Bit Pirate Expander page](images\u002Fbus_pirate_exp.png)](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Expander)\n\n\n🔌 **[Expand the capabilities of the ESP32 Bit Pirate](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Expander)** with additional hardware modules.\nThe Expander adds support for the **WiFi 5 GhZ** or other radio protocols.\n\n![A Cardputer connected to an expander C5](images\u002Fcardputer_with_c5.jpg)\n\n\n## Dock\n[![Banner of the ESP32 Bit Pirate Dock page](images\u002Fbus_pirate_dock.png)](https:\u002F\u002Fgithub.com\u002FAndreiVladescu\u002FESP32-Bus-Pirate-Dock)\n\n🔧 **[A docking station for the ESP32 S3 DevKit](https:\u002F\u002Fgithub.com\u002FAndreiVladescu\u002FESP32-Bus-Pirate-Dock) designed to work with original Bus Pirate adapters.**  \nIt allows you to plug and use the original [Bus Pirate](https:\u002F\u002Fbuspirate.com\u002F) ecosystem of adapters and accessories.\n\n![The ESP32 Bit Pirate dock board](images\u002Fbus_pirate_dock_board.png)\n\n(Coming soon)\n\n[![PCBWay Logo](images\u002Fpcbway_logo.png)](https:\u002F\u002Fwww.pcbway.com)\n\n\n\n## Command-Line Interfaces\n\nThe ESP32 Bit Pirate firmware provides three command-line interface (CLI) modes:\n\n| Interface         | Advantages                                                                 | Ideal for...                          |\n|------------------|-----------------------------------------------------------------------------|----------------------------------------|\n| **Web Interface** | - Accessible from any browser\u003Cbr>- PC, tablets, mobiles\u003Cbr>- Works over Wi-Fi\u003Cbr>- No cables needed | Quick tests, demos, headless setups   |\n| **Serial Interface** | - Faster performance\u003Cbr>- Instant responsiveness\u003Cbr>- Handles large data smoothly | Intensive sessions, frequent interactions |\n| **Standalone** | - Only for the Cardputer\u003Cbr>- On device keyboard\u003Cbr>- On device screen | Portable sessions, Quick tests |\n\n\nAll interfaces share the same command structure and can be used interchangeably ([more details](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F00-Terminal)).\n\n## Mobile Web Interface over WiFi\n![An iPhone screenshot showing the Bit Pirate firmware web interface](images\u002Fpresentation_mobile.png)\n\n## Standalone Mode for the Cardputer\n![A Cardputer running the ESP32 Bit Pirate in standalone mode](images\u002Fstandalonemode_s.png)\n\n## Using the ESP32 Bit Pirate to speak UART over WiFi\n![A demo Using the ESP32 Bit Pirate firmware with UART](images\u002Fdemo2.gif)\n\n## Contribute\nSee [How To Contribute](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Contribute) section, which outlines a **simple way to add a new command** to any mode.\n\n## Visuals Assets\n\n#### [![Small logo of the ESP32 Bit Pirate firmware](images\u002Flogo_square_small.png)](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Visual-Assets)\n\nSee [images, logo, presentations, photo, video, illustrations](https:\u002F\u002Fgithub.com\u002Fgeo-tp\u002FESP32-Bus-Pirate\u002Fwiki\u002F99-Visual-Assets). These visuals can be **freely used in blog posts, documentation, videos, or articles** to help explain and promote the firmware.\n\n\n## Warning\n> ⚠️ **Voltage Warning**: Devices should only operate at **3.3V** or **5V**.  \n> - Do **not** connect peripherals using other voltage levels — doing so may **damage your ESP32**.\n\n> ⚠️ **Usage Warning**: This firmware is provided for **educational, diagnostic, and interoperability testing purposes only**.\n> - Do not use it to interfere with, probe, or manipulate devices without proper authorization.\n> - Avoid any unauthorized RF transmissions (e.g., sub-GHz) that could violate local regulations or disrupt networks and communications.\n> - The authors are not responsible for any misuse of this software or hardware, including legal consequences resulting from unauthorized access or signal emission.\n> - Always stay within the bounds of your country’s laws and responsible disclosure policies.\n","ESP32 Bit Pirate 是一个开源固件，将设备转变为支持多种数字协议和无线协议的硬件黑客工具。它通过串行终端或基于Web的CLI提供对I2C、UART、1-Wire、SPI等数字协议以及蓝牙、Wi-Fi、Sub-GHz和RFID等无线协议的嗅探、发送、脚本编写与交互功能。该工具非常适合需要进行硬件调试、逆向工程或物联网安全研究的场景。用户可以通过一键式Web Flasher轻松安装此固件，并利用其丰富的模式和支持的命令集来执行各种任务。此外，还提供了额外的硬件扩展选项以增强功能。",2,"2026-06-11 03:53:10","trending"]