LOGBOOK

HELP

Quiz Entry - updated: 2026.10.20

When flashing a binary without its project, why use minicom -b 115200 -D /dev/ttyUSB0 as the serial monitor instead of idf.py monitor?

idf.py monitor expects an ESP-IDF project and uses its ELF file to decode crash addresses. With only a .bin there is no project and no ELF. Any plain serial terminal works instead, as long as it uses the firmware's baud rate, 115200 by default.

idf.py monitor is a serial terminal with extras. Its most useful extra is decoding: when the firmware crashes it prints raw code addresses, and the monitor looks them up in the project's ELF file (with addr2line) to show function names and source lines. It also knows the project's settings and can rebuild and reflash with a keystroke. All of that needs the project directory.

The board's output is still plain text on the UART, so a generic terminal shows it fine:

  • minicom, a classic Linux serial terminal;
  • -D /dev/ttyUSB0, the board's serial port;
  • -b 115200, the baud rate. Both ends must use the same speed. 115200 is ESP-IDF's default console rate. With the wrong rate the output is garbage characters.

The cost is that crashes appear as bare hex addresses, which cannot be decoded without the ELF. screen /dev/ttyUSB0 115200 or picocom do the same job as minicom.

Go deeper:

From Quiz: SIOT / Sniffing and Replaying IoT Traffic | Updated: Oct 20, 2026