ESP32 I2C scanner
Find devices that acknowledge on an unknown I2C bus and use the detected 7-bit addresses as the first clue for deeper inspection.
ESP32-S3 I2C protocol debugging
ESP32 Bit Pirate turns a compatible ESP32-S3 board into an I2C scanner and bus debugging workbench. Use it to find unknown addresses, read registers, open the dedicated EEPROM shell for 24XX/AT24C chips and recover common SDA/SCL lockups before writing target firmware.
Start with the smallest read-only checks. Once the bus responds, move to the recipe that matches the device or failure mode you are investigating.
Connect GND, SDA and SCL.
Start I2C mode on ESP32 Bit Pirate.
Scan the bus to find responding 7-bit addresses.
Identify the device or compare the address with the datasheet.
Read known registers or open the EEPROM shell for 24XX/AT24C chips, then continue with a monitor or recovery recipe.
mode i2c
scan
identify 0x68
regs 0x68 16
eeprom 0x50
Example CLI flow. See the I2C wiki for exact syntax and firmware-specific options.
Use this overview to choose the right I2C workflow before opening a detailed recipe.
Find devices that acknowledge on an unknown I2C bus and use the detected 7-bit addresses as the first clue for deeper inspection.
Read known registers from sensors, RTCs, controllers and other I2C peripherals after the address and wiring are confirmed.
Work with common 24XX / AT24C-style EEPROM devices through the dedicated eeprom [addr] shell, where chip probing, addressing width, page size and backup order matter before any write operation.
Debug buses where a target holds SDA low, transactions hang, or a previous controller left the bus in a bad state.
Observe changing values over time and decide whether the problem is wiring, power, timing, address selection or device behavior.
Move from manual serial debugging to repeatable checks when scans, reports or validation runs become part of a lab workflow.
I2C debugging often starts before firmware integration. A small external tool can answer whether the bus is alive, which address responds and whether the target behaves like the expected part.
Use an external I2C scan and simple register reads to confirm power, ground, SDA, SCL and pull-ups before writing device-specific firmware.
For EEPROM work, the safe path is to scan the bus, open eeprom [addr], probe/analyze the chip and back up data before writes, erase actions or board-level experiments.
Many I2C failures come from swapped SDA/SCL, missing common ground, weak pull-ups, wrong voltage levels or address format confusion.
These notes are intentionally short. The detailed command references live in the project documentation and firmware repository.
SDA and SCL need pull-ups. Some modules already include them, while bare boards and EEPROM chips often depend on the surrounding circuit.
ESP32 GPIO is 3.3 V; choose level adaptation before I2C tests on 1.8 V or 5 V hardware.
I2C scans usually report 7-bit addresses. Datasheets sometimes present shifted 8-bit read/write addresses.
Start read-only, confirm common ground, avoid powering unknown boards blindly and back up memory devices before writes.
Most I2C failures are electrical, addressing or bus-state problems. Check these before changing target firmware.
Check common ground, SDA/SCL order, pull-ups and target power.
Compare 7-bit scan results with datasheet addresses that may be shown as 8-bit read/write values.
Disconnect targets one by one, then try the I2C bus recovery workflow.
Check pull-up strength, cable length, target voltage and whether another controller is driving the bus.
Confirm address pins, then use the EEPROM shell probe/analyze flow to verify page size, addressing width and read range before assuming the chip is dead.
These pages are the task-level I2C workflows. This overview keeps the protocol-level guidance here, while each recipe covers wiring, commands and troubleshooting in detail.
This page is a protocol overview. Use the site index for the full web experience, or GitHub for source code, firmware documentation and the I2C command reference.
Flash a supported ESP32-S3 board before testing I2C mode from the browser.
Open Web FlasherOpen the maintained firmware wiki for I2C mode commands and behavior.
Open I2C command referenceCheck board pin mapping, voltage and hardware notes before wiring a I2C bus.
Compare supported ESP32-S3 boardsOpen Web Serial for I2C commands after the matching firmware is running.
Open Web Serial Terminal for ESP32 Bit PirateUse the browser-based BPIO2 tool for direct bus experiments from the web interface.
Open Bit Bang I2C browser controllerBrowse recipes that connect I2C work to wiring, commands, captures and troubleshooting.
Browse all hardware debugging recipesCheck firmware source, issues and releases that affect I2C support.
Open GitHub repositoryShort answers for common questions before moving into a detailed workflow.
Yes. ESP32 Bit Pirate can scan a bus, show responding addresses and give you a starting point for device identification.
Yes. Use the recovery-oriented I2C workflow when a target holds SDA low or a bus stops responding after a failed transaction.
No. I2C is one part of the ecosystem. The same project also covers other wired buses, browser tools, firmware workflows and hardware documentation.