03 UART - geo-tp/ESP32-Bus-Pirate GitHub Wiki

UART Mode

UART mode allows communication over a standard serial interface using TX/RX pins.
This mode is useful for probing unknown serial devices, sending and receiving data, or bridging traffic.


🧩 Commands

Command Description
scan Attempts to detect the correct baud rate using known probe strings
ping Sends probes and collects replies to test if a UART device is responsive
read Continuously reads from UART until [ENTER] is pressed
write <text> Sends the specified text to the connected device over UART
bridge Starts a real-time full-duplex UART bridge (ESP32 to device)
spam <text> <ms> Continuously write text every given ms until ENTER is pressed
glitch Placeholder for future glitch-based timing attacks (not yet implemented)
xmodem <recv/send> <path> Transfer file using XMODEM protocol (send or receive from SD)
config Interactive configuration: RX/TX pins, baud rate, data bits, parity, etc.
['Hello' r:64] ... Sends custom instruction sequences using bytecode-like syntax

📝 Notes

  • scan uses entropy and ASCII analysis to guess baudrate automatically.
  • ping sends predefined probes and analyzes responses to detect UART activity.
  • spam can send special chars like \n.
  • bridge connects the terminal input/output to the device in real-time. Press any ESP32 button to stop.
  • xmodem send and receive operations require an SD card, as files are read from or written to the SD.
  • xmodem at 115200 baud (≈11.5 kB/s), transferring a 1 MB file over XMODEM takes approximately 90 seconds.
  • config supports full UART parameter customization:
    • RX/TX pins
    • Baudrate
    • Data bits (5–8)
    • Parity (None, Even, Odd)
    • Stop bits (1 or 2)
    • Inversion (for certain logic-level devices)
  • The custom instruction syntax (['Hello' r:64]) lets you build sequences of writes, delays, and reads manually.

📌 Example Usage

mode uart
config                 # Configure pins and settings
scan                   # Try to find the right baud rate
ping                   # Send probes for a response
write AT               # Send AT text
write Hello\n          # Send Hello with a line return
read                   # View device output
bridge                 # Real-time serial passthrough
spam Hello 1000        # Write Hello every second
spam \n 5              # Send ENTER every 5ms
xmodem send /file.txt  # Send a file via XMODEM from SD
xmodem recv /file.txt  # Receive a file via XMODEM to SD
['AT' r:64]            # Send 'AT' and read 64 bytes

▶️ Demo

demo2

🔧 Hardware

dupont-male-front
⚠️ **GitHub.com Fallback** ⚠️