개요
ESP32-S3 개발 보드를 다중 프로토콜 분석 디버깅 도구로 변환하여 I2C, SPI, UART, 1-Wire, JTAG, CAN, 적외선, 블루투스, Wi-Fi, Sub-GHz 및 RFID 등의 프로토콜을 지원합니다. 스니핑, 스크립트 제어, EEPROM 읽기 및 웹 터미널 기능을 갖추고 있습니다.
README 미리보기
# ESP32 Bit Pirate\n\n[](https://geo-tp.github.io/ESP32-Bit-Pirate/)\n\n\n**ESP32 Bit Pirate** is open-source firmware that turns your device into a multi-protocol development and analysis tool, inspired by the legendary Bus Pirate.\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\nThe official project website centralizes everything: [ESP32 Bit Pirate Website](https://geo-tp.github.io/ESP32-Bit-Pirate/).\n\nFrom there you can [install the firmware](https://geo-tp.github.io/ESP32-Bit-Pirate/webflasher/), open the [web tools](https://geo-tp.github.io/ESP32-Bit-Pirate/web-tools/), follow [hardware guides](https://geo-tp.github.io/ESP32-Bit-Pirate/hardware/), explore [recipes](https://geo-tp.github.io/ESP32-Bit-Pirate/recipes/), and access the [documentation](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki).\n\n\n\n\n## Features\n\n- Interactive command-line interface (CLI) via **USB Serial or WiFi Web**.\n- **Modes for:**\n - [HiZ](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/01-HiZ) (default)\n - [I2C](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/05-I2C) (scan, glitch, slave mode, dump, eeprom)\n - [SPI](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/06-SPI) (eeprom, flash, sdcard, slave mode)\n - [UART](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/03-UART) / [Half-Duplex UART](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/04-HDUART) (bridge, read, write)\n - [1WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/02-1WIRE) (ibutton, eeprom)\n - [2WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/07-2WIRE) (sniff, smartcard) / [3WIRE](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/08-3WIRE) (eeprom)\n - [DIO](https://github.com/geo-tp/ESP32-Bit-Pirate/wiki/09-DIO) (Digital I/O, read, pullup, set, pwm)\n - [Infrared](https://github.com/geo-t
FAQ (4)
compatibilityCardputer ADV에서 M5Stack LoRa Cap SX1262를 사용하면 LoRa 모드가 작동하나요?
네. LoRa cap을 Cardputer ADV에 연결하고 기본 핀 구성을 사용하세요. 필요한 핀은 이미 사전 구성되어 있습니다.
문제 해결IRremoteESP8266이 긴 에어컨 리모컨 raw 신호를 여러 프레임으로 분할하고 marks/spaces를 누락하는 문제를 해결하는 방법
기본 raw 캡처 버퍼가 너무 작습니다. IRremoteESP8266에서 kRawBuf = 100은 mark/space 항목을 99개만 저장하므로, 반복되는 72비트 프레임과 같은 긴 AC 리모컨 신호가 이를 초과하여 분할되거나 잘릴 수 있습니다. InfraredService.cpp에서 더 큰 버퍼(예: 512)로 IRrecv를 할당하세요:
_receiver = new IRrecv(_rxPin, 512);
각 configure() 호출에서 재할당하기 전에 이전 수신기를 해제하여 더 큰 버퍼가 누수되지 않도록 하세요:
if (_receiver != nullptr) {
_receiver->disableIRIn();
delete _receiver;
_receiver = nullptr;
}
_receiver = new IRrecv(_rxPin, 512);
그런 다음 ESP32 Bit Pirate 펌웨어를 다시 빌드하고 플래시하세요. 임시 대안으로 라이브러리의 IRrecv.h에서 kRawBuf를 변경할 수도 있지만, IRrecv 생성자에 크기를 전달하고 객체 수명 주기를 수정하는 것이 권장되는 해결 방법입니다.
문제 해결ESP32-S3FH4R2, 4 MB 플래시, 2 MB PSRAM을 탑재한 ESP32-S3-Zero 또는 ESP32-S3 SuperMini 지원을 추가하려면 어떻게 해야 하나요?
ESP32-S3 DevKit을 기반으로 사용자 정의 PlatformIO 환경/프로필을 사용하고 board_build.flash_size = 4MB를 설정하세요. 4 MB 파티션 테이블을 생성하세요. 예를 들어 partitions_s3_4m.csv:
# Name, Type, SubType, Offset, Size,
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xF000, 0x1000,
factory, app, factory, 0x10000, 0x390000,
spiffs, data, spiffs, 0x3A0000, 0x60000,
board_build.partitions = partitions_s3_4m.csv로 이를 참조한 다음, 새 PlatformIO 환경에서 보드별 GPIO를 구성하세요. 이 레이아웃은 coredump 파티션을 생략하고 384 KB SPIFFS 파티션을 사용하여 4 MB 플래시에 맞춥니다. 전용 환경에서 issue #180의 memset 관련 크래시가 발생하는 경우, ::memset()을 명시적으로 호출하는 것이 알려진 해결 방법입니다.
문제 해결기본 TX 핀을 사용할 때 M5StickS3에서 IR 신호 수신 또는 기록이 작동하지 않는 문제를 어떻게 해결하나요?
기본 TX 핀 대신 RMT 페리페럴을 통해 M5StickS3의 내장 IR 수신기를 사용하십시오. M5StickS3 IR 수신 구현이 포함된 라이브러리/펌웨어 버전으로 업데이트한 다음, M5Stack의 M5StickS3 IR NEC 예제에 나온 것처럼 RMT 읽기 및 디코딩을 사용하도록 IR 수신을 구성하십시오. 다시 빌드한 후 NEC 호환 리모컨으로 녹화를 테스트하십시오.