ESP32 Bit Pirate

ESP32-S3 GPIO and digital I/O debugging

GPIO, PWM, servo and signal control

ESP32 Bit Pirate turns a compatible ESP32-S3 board into a GPIO, DIO, PWM and servo debugging workbench. Use it to list pins, read logic levels, scan active pins, pulse outputs, measure frequency, generate PWM and test simple digital devices.

GPIO and DIO debugging visual with an ESP32 board, digital input pins, pulse output and logic-level signals

Quick GPIO / DIO workflow

Start with passive checks, confirm the pin is safe, then move to output, pulse, PWM or servo tests only when the wiring and target logic level are understood.

  1. 01

    Check the board pinout and choose a GPIO that is exposed, safe and not already reserved by onboard hardware.

  2. 02

    Connect common ground first, then connect only the signal you want to inspect.

  3. 03

    Start DIO mode and read the pin state before driving anything from the ESP32.

  4. 04

    Use scan, sniff or measure to decide whether the line is idle, active, clock-like or better suited to a logic analyzer capture.

  5. 05

    Use pulse, toggle, PWM or servo output only on inputs that are safe for 3.3 V ESP32 GPIO levels.

mode dio
pins
read 21
sniff 22
measure 5 2000
pulse 1 50
pwm 5 1000 75
reset 5

Example CLI flow. See the DIO wiki for exact syntax, protected GPIO notes and firmware-specific behavior.

GPIO and DIO workflows covered by ESP32 Bit Pirate

Use this overview to choose the right digital I/O workflow before opening a detailed recipe.

Check

GPIO logic-level checks

Confirm whether a line is high, low, floating or unsafe before assigning it to a protocol mode or driving it as an output.

Scan

Active pin discovery

Use pin scans and quick triage workflows to find lines that are changing before trying UART, I2C, SPI or a full logic capture.

Sniff

GPIO edge logging

Log rising and falling edges from the CLI when the main question is whether a pin is alive and changing.

Pulse

Microsecond trigger pulses

Generate short reset, trigger, enable or timing pulses without writing a temporary sketch for the ESP32.

Measure

Rough frequency checks

Count transitions over a short window to decide whether a signal behaves like a clock, interrupt or periodic output.

Drive

PWM and servo tests

Generate simple PWM or servo-style control signals for lab inputs, LED drivers, optocouplers and externally powered servo tests.

When an ESP32-S3 GPIO workbench helps

DIO mode is often the first stop before picking a real protocol. It answers whether a line is safe, exposed, idle, active or worth capturing in more detail.

Unknown pin

Before choosing a protocol

Use basic pin reads, scans and edge sniffing to decide whether a test pad looks like GPIO, clock, interrupt, reset or a protocol signal.

Bench trigger

Before writing a helper sketch

Use pulse, toggle or PWM when you need a quick signal generator for a reset input, enable line or simple timing experiment.

Board bring-up

Before blaming firmware

Many failures come from wrong GPIO selection, missing ground, unsafe voltage levels, floating inputs or onboard peripherals using the same pin.

GPIO hardware reminders

Digital I/O looks simple, but wrong voltage, direction or pin selection can damage hardware or hide the real problem.

Voltage levels

ESP32 GPIO is 3.3 V logic. Use the supported level-adaptation path before working with 1.8 V or 5 V targets.

Direction

Start as input when probing unknown hardware. Only drive a line after confirming that the target input can safely accept the signal.

Common ground

Logic reads, pulses, PWM and frequency checks need a shared reference between ESP32 Bit Pirate and the target circuit.

Protected pins

Some GPIOs may be reserved, not exposed or connected to onboard screen, SD card, buttons, USB or radio hardware depending on the board.

Common GPIO / DIO problems

Most digital I/O issues are wiring, direction, level or timing problems. Check these before assuming the target firmware is wrong.

Always high or low

Check whether the line is pulled up, pulled down, floating, held by another device or using an unexpected idle state.

No edge output

Verify the target action is really happening, the selected GPIO matches the physical pin and common ground is connected.

Pulse not detected

Increase pulse width, confirm the target input threshold and use a logic analyzer when the pulse is too short to observe from the CLI.

PWM or servo unstable

Power loads externally, share ground, avoid driving motors from GPIO and reset the pin after testing.

Wrong frequency

Use DIO measurement as a rough check. Move to SUMP, PulseView or the Web Logic Analyzer when precise timing matters.

Board choice for GPIO work

DIO workflows depend on exposed pins. Pick a board with enough accessible GPIO before planning pulses, frequency checks or unknown-pin discovery.

Detailed GPIO and DIO recipes

These pages are the task-level digital I/O workflows. This overview keeps the protocol-level guidance here, while each recipe covers wiring, commands and troubleshooting in detail.

Useful GPIO / DIO references

This page is a protocol overview. Use the site index for the full web experience, or GitHub for source code, firmware documentation and the DIO command reference.

Flash ESP32 Bit Pirate

Flash a supported ESP32-S3 board before testing DIO/GPIO mode from the browser.

Open Web Flasher

DIO command reference

Open the maintained firmware wiki for DIO mode commands, examples and hardware notes.

Open DIO command reference

Logic Analyzer

Move from quick DIO checks to waveform capture when timing, duty cycle or protocol shape matters.

Open Web Logic Analyzer

ESP32 Bit Pirate GitHub

Check firmware source, issues and releases that affect DIO/GPIO support.

Open GitHub repository

GPIO / DIO debugging FAQ

Short answers for common questions before moving into a detailed workflow.

Can ESP32 Bit Pirate read GPIO logic levels?

Yes. DIO mode can show pin states, read a selected GPIO and scan for active lines before you choose a protocol-specific workflow.

Can ESP32 Bit Pirate generate GPIO pulses or PWM?

Yes. DIO mode includes pulse, toggle, PWM and servo-oriented workflows for controlled bench tests on compatible signal inputs.

Can ESP32 Bit Pirate replace a logic analyzer for GPIO work?

DIO mode is useful for quick checks such as levels, edges and rough frequency. Use the logic analyzer workflow when you need accurate timing or waveform capture.