{"id":21309,"library":"esp-idf-monitor","title":"ESP-IDF Monitor","description":"Serial monitor for Espressif ESP-IDF, providing output decoding, binary log support, and interactive CLI commands. Current version: 1.9.0. Release cadence: irregular, approximately 3-4 releases per year.","status":"active","version":"1.9.0","language":"python","source_language":"en","source_url":"https://github.com/espressif/esp-idf-monitor","tags":["esp-idf","serial-monitor","iot","espressif"],"install":[{"cmd":"pip install esp-idf-monitor","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Serial communication","package":"pyserial","optional":false},{"reason":"Core dump decoding","package":"esp-coredump","optional":false},{"reason":"Decoding functions","package":"esp-idf-panic-decoder","optional":false}],"imports":[{"note":"Wrong import path from old module name.","wrong":"from monitor import make_monitor","symbol":"make_monitor","correct":"from esp_idf_monitor import make_monitor"},{"note":"Correct import for constants.","symbol":"MONITOR_DIR","correct":"from esp_idf_monitor.constants import MONITOR_DIR"}],"quickstart":{"code":"from esp_idf_monitor import make_monitor\n\n# Basic usage (requires a serial port, e.g., /dev/ttyUSB0)\nmonitor = make_monitor(\n    serial_port='/dev/ttyUSB0',\n    elf_file='build/myapp.elf',\n    print_filter='tag:myapp'\n)\nmonitor.run_forever()","lang":"python","description":"Start the monitor with a serial port and ELF file."},"warnings":[{"fix":"Use 'idf-monitor' command or install via pip.","message":"In v1.9.0, the 'idf-monitor' script is added; standalone usage requires Python 3.7+. Prior use via `idf.py monitor` is unchanged.","severity":"breaking","affected_versions":">=1.9.0"},{"fix":"Replace `from monitor` with `from esp_idf_monitor`.","message":"The old module path `from monitor import ...` is deprecated; use `from esp_idf_monitor import ...`.","severity":"deprecated","affected_versions":">=1.4.0"},{"fix":"Specify a valid ELF file via the `--elf` argument or `elf_file` parameter.","message":"On Linux, if no ELF files are found, monitor may exit with an error. Ensure the ELF path is correct.","severity":"gotcha","affected_versions":">=1.7.0"},{"fix":"Set `ESP_IDF_MONITOR_NO_RESET=1` to prevent resetting the chip on open.","message":"The environment variable `ESP_IDF_MONITOR_NO_RESET` changed behavior in v1.4.0; it now disables reset on connect.","severity":"breaking","affected_versions":">=1.4.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use `from esp_idf_monitor import ...` instead.","cause":"Old import path for esp-idf-monitor.","error":"ModuleNotFoundError: No module named 'monitor'"},{"fix":"Add user to dialout group: `sudo usermod -aG dialout $USER` and log out/in.","cause":"User lacks read/write permission on the serial port.","error":"SerialException: could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'"},{"fix":"Specify the ELF file with `--elf path/to/your_app.elf`.","cause":"Monitor cannot find the ELF binary.","error":"ValueError: No ELF files found. Provide ELF file using --elf option."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}