Usando Sublime Text + TerminalIntroPasso 1: Abrir o projeto no Sublime TextPasso 2: Abrir o terminal integrado da EspressifPasso 3: Comandos de Terminal para controlar a placaResumo (Sublime + Terminal)Exemplo no macOS
Abordagem mais rápida e limpa se você busca máxima velocidade e zero interfaces pesadas. Esta combinação usa o terminal para o trabalho pesado e o Sublime apenas para edição de texto.
.c, .cpp ou .h.Para compilar, você deve usar o terminal que já possui as variáveis de ambiente do ESP32 carregadas:
source ~/esp/esp-idf/export.sh).No terminal que você acabou de abrir, navegue até a pasta do seu projeto exemplo (cd caminho/da/pasta) e use os três comandos principais da ferramenta idf.py:
xxxxxxxxxx% idf.py set-target esp32xxxxxxxxxx% idf.py buildxxxxxxxxxx% idf.py -p COMX flash monitorExemplo de comando de flash no macOS:
% idf.py -p /dev/cu.usbserial-1410 flash monitor
Obs.: Substitua COMX pela porta real do seu ESP32, como COM3 no Windows ou /dev/ttyUSB0 no Linux. O comando monitor mostra os printf do código em tempo real. Para sair do monitor, pressione Ctrl + ]).
Se você optar pelo método rápido, a receita de bolo na aula será:
CMakeLists.txt explicados acima.cd caminho/de/MeuProjetoidf.py buildidf.py -p PORTA flash monitorMontando manualmente a estrutura requerida da pastas:
xxxxxxxxxx(base) fernandopassold@MacBook-Pro-de-Fernando Senoide1 % tree.├── CMakeLists.txt└── main ├── CMakeLists.txt └── main.c
2 directories, 3 files(base) fernandopassold@MacBook-Pro-de-Fernando Senoide1 %Abrindo o terminal próprio para uso do ESP-IDF:
Abra o App eim (localizado em /Applications) e na janela do ESP_IDF Version Management, dentro deInstalled Versions (no caso v6.1-beta1, localizada na pasta: ~/.espressif/v6.1-beta1/esp-idf), selecione o primeiro ícone referente à IDF Terminal. Espere abrir uma nova janela de terminal bash (alguns ajustes serão executados) e deve aparecer algo como:
xxxxxxxxxxLast login: Sun Aug 30 00:33:41 on ttys000bash --rcfile <(cat ~/.bashrc 2>/dev/null; echo 'source "/Users/fernandopassold/.espressif/tools/activate_idf_v6.1-beta1.sh"' 2>/dev/null || echo 'echo Script not found: /Users/fernandopassold/.espressif/tools/activate_idf_v6.1-beta1.sh')(base) fernandopassold@MacBook-Pro-de-Fernando ~ % bash --rcfile <(cat ~/.bashrc 2>/dev/null; echo 'source "/Users/fernandopassold/.espressif/tools/activate_idf_v6.1-beta1.sh"' 2>/dev/null || echo 'echo Script not found: /Users/fernandopassold/.espressif/tools/activate_idf_v6.1-beta1.sh')Added environment variable ESP_IDF_VERSION = 6.1Added environment variable IDF_VERSION = 6.1.0Added environment variable IDF_TOOLS_PATH = /Users/fernandopassold/.espressif/toolsAdded environment variable IDF_COMPONENT_LOCAL_STORAGE_URL = file:///Users/fernandopassold/.espressif/toolsAdded environment variable IDF_PATH = /Users/fernandopassold/.espressif/v6.1-beta1/esp-idfAdded environment variable ESP_ROM_ELF_DIR = /Users/fernandopassold/.espressif/tools/esp-rom-elfs/20241011/Added environment variable OPENOCD_SCRIPTS = /Users/fernandopassold/.espressif/tools/openocd-esp32/v0.12.0-esp32-20260424/openocd-esp32/share/openocd/scriptsAdded environment variable IDF_PYTHON_ENV_PATH = /Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venvAdded environment variable ESP_CLANG_LIBS_PATH = /Users/fernandopassold/.espressif/tools/esp-clang-libs/esp-21.1.3_20260408/esp-clang/libAdded proper directory to PATHActivated virtual environment at /Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venvRegistered idf.py tab completion (bash).Environment setup complete for the current shell session.These changes will be lost when you close this terminal.You are now using IDF version 6.1.0.eim select v6.1-beta1
The default interactive shell is now zsh.To update your account to use zsh, please run `chsh -s /bin/zsh`.For more details, please visit https://support.apple.com/kb/HT208050.(venv) bash-3.2$
"Caminhando" até a pasta do seu projeto. Basta digitar cd e arrastar a pasta do Projeto até este terminal. Deve resultar algo como:
xxxxxxxxxx(venv) bash-3.2$ cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1 (venv) bash-3.2$ pwd/Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1(venv) bash-3.2$ tree.├── CMakeLists.txt└── main ├── CMakeLists.txt └── main.c
2 directories, 3 files(venv) bash-3.2$Definindo a placa (target):
xxxxxxxxxx(venv) bash-3.2$ idf.py set-target esp32Adding "set-target"'s dependency "fullclean" to list of commands with default set of options.Executing action: fullcleanBuild directory '/Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build' not found. Nothing to clean.Executing action: set-targetSet Target to: esp32, new sdkconfig will be created.Running cmake in directory /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/buildExecuting "cmake -G Ninja -B /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build -DPYTHON_DEPS_CHECKED=1 -DPYTHON=/Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venv/bin/python -DESP_PLATFORM=1 -DIDF_TARGET=esp32 -DCCACHE_ENABLE=False /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1"...-- Found Git: /usr/bin/git (found version "2.39.5 (Apple Git-154)")-- Component directory /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/idf_test does not contain a CMakeLists.txt file. No component will be added-- Minimal build - OFF-- The C compiler identification is GNU 15.2.0-- The CXX compiler identification is GNU 15.2.0-- The ASM compiler identification is GNU-- Found assembler: /Users/fernandopassold/.espressif/tools/xtensa-esp-elf/esp-15.2.0_20251204/xtensa-esp-elf/bin/xtensa-esp32-elf-gcc-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working C compiler: /Users/fernandopassold/.espressif/tools/xtensa-esp-elf/esp-15.2.0_20251204/xtensa-esp-elf/bin/xtensa-esp32-elf-gcc - skipped-- Detecting C compile features-- Detecting C compile features - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Check for working CXX compiler: /Users/fernandopassold/.espressif/tools/xtensa-esp-elf/esp-15.2.0_20251204/xtensa-esp-elf/bin/xtensa-esp32-elf-g++ - skipped-- Detecting CXX compile features-- Detecting CXX compile features - done-- git rev-parse returned 'fatal: not a git repository (or any parent up to mount point /Volumes)Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).'-- Could not use 'git describe' to determine PROJECT_VER.-- Building ESP-IDF components for target esp32-- ESP-TEE is currently supported only on the esp32c6;esp32h2;esp32c5;esp32c61 SoCs-- KCONFIG_REPORT_VERBOSITY not set, using default-- Project sdkconfig file /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/sdkconfigNOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bt/host/nimble/Kconfig.in:1421: BT_NIMBLE_MESH_PROVISIONER: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bt/controller/esp32/Kconfig.in:177: BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/fatfs/Kconfig:240: FATFS_PRINT_LLI: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/fatfs/Kconfig:245: FATFS_PRINT_FLOAT: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: Kconfig parser version: 1NOTE: Kconfig defaults policy: use sdkconfigNOTE: Status: Finished successfully-- Compiler supported targets: xtensa-esp-elf-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- App "meu_projeto_esp32" version: 1-- Found Python3: /Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venv/bin/python (found version "3.14.7") found components: Interpreter-- Performing Test CMAKE_HAVE_LIBC_PTHREAD-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success-- Found Threads: TRUE-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success-- Setting up mbedtls configuration-- Linkage type is PUBLIC-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_system/ld/esp32/memory.ld.in-- -> Preprocessing .in script: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_system/ld/esp32/memory.ld.in-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_system/ld/esp32/sections.ld.in-- -> Preprocessing .in script: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_system/ld/esp32/sections.ld.in-- -> Applying ldgen processing: /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/esp-idf/esp_system/ld/sections.ld.in-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libc-funcs.ld-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld-- Adding linker script /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_regi2c/esp32/rom.regi2c.ldCMake Warning at /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:106 (message): Private include directory '/Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_wifi/wifi_apps/roaming_app/include' belongs to component esp_wifi but is being used by component wpa_supplicant. It is recommended to define the component dependency for wpa_supplicant on the component esp_wifi, i.e. 'idf_component_register(... PRIV_REQUIRES esp_wifi)' in the CMakeLists.txt of wpa_supplicant, and specify the included directory as idf_component_register(... PRIV_INCLUDE_DIRS <dir relative to component>) in the CMakeLists.txt of component esp_wifi.Call Stack (most recent call first): /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:130 (__component_validation_check_include_dirs) /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/CMakeLists.txt:356 (__component_validation_run_checks)
CMake Warning at /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:106 (message): Private include directory '/Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_wifi/wifi_apps/roaming_app/src' belongs to component esp_wifi but is being used by component wpa_supplicant. It is recommended to define the component dependency for wpa_supplicant on the component esp_wifi, i.e. 'idf_component_register(... PRIV_REQUIRES esp_wifi)' in the CMakeLists.txt of wpa_supplicant, and specify the included directory as idf_component_register(... PRIV_INCLUDE_DIRS <dir relative to component>) in the CMakeLists.txt of component esp_wifi.Call Stack (most recent call first): /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:130 (__component_validation_check_include_dirs) /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/CMakeLists.txt:356 (__component_validation_run_checks)
CMake Warning at /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:106 (message): Private include directory '/Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_wifi/wifi_apps/include/apps_private' belongs to component esp_wifi but is being used by component wpa_supplicant. It is recommended to define the component dependency for wpa_supplicant on the component esp_wifi, i.e. 'idf_component_register(... PRIV_REQUIRES esp_wifi)' in the CMakeLists.txt of wpa_supplicant, and specify the included directory as idf_component_register(... PRIV_INCLUDE_DIRS <dir relative to component>) in the CMakeLists.txt of component esp_wifi.Call Stack (most recent call first): /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:130 (__component_validation_check_include_dirs) /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/CMakeLists.txt:356 (__component_validation_run_checks)
CMake Warning at /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:106 (message): Private include directory '/Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/wpa_supplicant/src' belongs to component wpa_supplicant but is being used by component esp_wifi. It is recommended to define the component dependency for esp_wifi on the component wpa_supplicant, i.e. 'idf_component_register(... PRIV_REQUIRES wpa_supplicant)' in the CMakeLists.txt of esp_wifi, and specify the included directory as idf_component_register(... PRIV_INCLUDE_DIRS <dir relative to component>) in the CMakeLists.txt of component wpa_supplicant.Call Stack (most recent call first): /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:130 (__component_validation_check_include_dirs) /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/CMakeLists.txt:356 (__component_validation_run_checks)
CMake Warning at /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:106 (message): Private include directory '/Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/wpa_supplicant/esp_supplicant/src' belongs to component wpa_supplicant but is being used by component esp_wifi. It is recommended to define the component dependency for esp_wifi on the component wpa_supplicant, i.e. 'idf_component_register(... PRIV_REQUIRES wpa_supplicant)' in the CMakeLists.txt of esp_wifi, and specify the included directory as idf_component_register(... PRIV_INCLUDE_DIRS <dir relative to component>) in the CMakeLists.txt of component wpa_supplicant.Call Stack (most recent call first): /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/tools/cmake/component_validation.cmake:130 (__component_validation_check_include_dirs) /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/CMakeLists.txt:356 (__component_validation_run_checks)
-- Component idf::esp_trace will be linked with -Wl,--whole-archive-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_asrc_adapter esp_blockdev esp_blockdev_util esp_bootloader_format esp_coex esp_common esp_driver_ana_cmpr esp_driver_bitscrambler esp_driver_cam esp_driver_cordic esp_driver_dac esp_driver_dma esp_driver_gpio esp_driver_gptimer esp_driver_i2c esp_driver_i2s esp_driver_i3c esp_driver_isp esp_driver_jpeg esp_driver_ledc esp_driver_mcpwm esp_driver_parlio esp_driver_pcnt esp_driver_ppa esp_driver_rmt esp_driver_sd_intf esp_driver_sdio esp_driver_sdm esp_driver_sdmmc esp_driver_sdspi esp_driver_spi esp_driver_touch_sens esp_driver_tsens esp_driver_twai esp_driver_uart esp_driver_usb_serial_jtag esp_eth esp_event esp_gdbstub esp_hal_ana_cmpr esp_hal_ana_conv esp_hal_asrc esp_hal_cam esp_hal_clock esp_hal_cordic esp_hal_dma esp_hal_emac esp_hal_gpio esp_hal_gpspi esp_hal_i2c esp_hal_i2s esp_hal_i3c esp_hal_ieee802154 esp_hal_jpeg esp_hal_lcd esp_hal_ledc esp_hal_mcpwm esp_hal_mspi esp_hal_parlio esp_hal_pcnt esp_hal_pmu esp_hal_ppa esp_hal_regi2c esp_hal_rmt esp_hal_rtc_timer esp_hal_sd esp_hal_security esp_hal_systimer esp_hal_timg esp_hal_touch_sens esp_hal_twai esp_hal_uart esp_hal_usb esp_hal_wdt esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_libc esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_security esp_stdio esp_system esp_timer esp_trace esp_usb_cdc_rom_console esp_wifi espcoredump esptool_py fatfs freertos hal heap http_parser ieee802154 log lwip main mbedtls nvs_flash nvs_sec_provider openthread partition_table perfmon protobuf-c protocomm pthread rt sdmmc soc spi_flash spiffs tcp_transport ulp unity vfs wear_levelling wpa_supplicant xtensa-- Component paths: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/app_trace /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/app_update /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bootloader /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bootloader_support /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/cmock /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/console /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/cxx /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/driver /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/efuse /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp-tls /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_adc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_app_format /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_asrc_adapter /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_blockdev /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_blockdev_util /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_bootloader_format /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_coex /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_common /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_ana_cmpr /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_bitscrambler /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_cam /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_cordic /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_dac /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_dma /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_gpio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_gptimer /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_i2c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_i2s /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_i3c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_isp /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_jpeg /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_ledc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_mcpwm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_parlio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_pcnt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_ppa /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_rmt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_sd_intf /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_sdio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_sdm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_sdmmc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_sdspi /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_spi /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_touch_sens /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_tsens /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_twai /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_uart /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_driver_usb_serial_jtag /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_eth /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_event /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_gdbstub /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_ana_cmpr /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_ana_conv /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_asrc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_cam /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_clock /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_cordic /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_dma /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_emac /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_gpio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_gpspi /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_i2c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_i2s /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_i3c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_ieee802154 /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_jpeg /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_lcd /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_ledc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_mcpwm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_mspi /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_parlio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_pcnt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_pmu /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_ppa /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_regi2c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_rmt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_rtc_timer /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_sd /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_security /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_systimer /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_timg /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_touch_sens /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_twai /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_uart /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_usb /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hal_wdt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hid /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_http_client /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_http_server /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_https_ota /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_https_server /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_hw_support /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_lcd /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_libc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_local_ctrl /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_mm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_netif /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_netif_stack /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_partition /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_phy /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_pm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_psram /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_ringbuf /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_rom /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_security /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_stdio /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_system /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_timer /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_trace /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_usb_cdc_rom_console /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esp_wifi /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/espcoredump /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/esptool_py /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/fatfs /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/freertos /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/hal /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/heap /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/http_parser /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/ieee802154 /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/log /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/lwip /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/main /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/mbedtls /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/nvs_flash /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/nvs_sec_provider /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/openthread /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/partition_table /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/perfmon /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/protobuf-c /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/protocomm /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/pthread /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/rt /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/sdmmc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/soc /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/spi_flash /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/spiffs /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/tcp_transport /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/ulp /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/unity /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/vfs /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/wear_levelling /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/wpa_supplicant /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/xtensa-- Configuring done (72.6s)-- Generating done (3.5s)-- Build files have been written to: /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build(venv) bash-3.2$ Note uma curiosidade:
xxxxxxxxxx(venv) bash-3.2$ python --versionPython 3.14.7(venv) bash-3.2$ which python/Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venv/bin/python(venv) bash-3.2$ Obs.: Neste computador está instalando o conda + Python:
xxxxxxxxxxLast login: Sun Aug 30 00:43:07 on ttys001(base) fernandopassold@MacBook-Pro-de-Fernando ~ % conda --versionconda 25.7.0(base) fernandopassold@MacBook-Pro-de-Fernando ~ % python --versionPython 3.13.5(base) fernandopassold@MacBook-Pro-de-Fernando ~ % which python/opt/miniconda3/bin/python(base) fernandopassold@MacBook-Pro-de-Fernando ~ %
Compilando o projeto:
xxxxxxxxxx(venv) bash-3.2$ idf.py buildExecuting action: all (aliases: build)Running ninja in directory /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/buildExecuting "ninja all"...[1/1] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader &...umes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader/bootloader.biBootloader binary size 0x6640 bytes. 0x9c0 bytes (9%) free.[64/68] Generating esp-idf/esp_system/ld/sections.ldNOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bt/host/nimble/Kconfig.in:1421: BT_NIMBLE_MESH_PROVISIONER: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/bt/controller/esp32/Kconfig.in:177: BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/fatfs/Kconfig:240: FATFS_PRINT_LLI: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.NOTE: /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/fatfs/Kconfig:245: FATFS_PRINT_FLOAT: 'default 0' is not a valid bool value (only 'y' and 'n' are allowed). Value is treated as 'n'.[67/68] Generating binary image from built executableesptool v5.3.1Creating ESP32 image...Merged 3 ELF sections.Successfully created ESP32 image.Generated /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.bin[68/68] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build && /Users/.../Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.bimeu_projeto_esp32.bin binary size 0x27120 bytes. Smallest app partition is 0x100000 bytes. 0xd8ee0 bytes (85%) free.
Project build complete. To flash, run: idf.py flashor idf.py -p PORT flashor python -m esptool --chip esp32 -b 460800 --before default-reset --after hard-reset write-flash --flash-mode dio --flash-size 2MB --flash-freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/meu_projeto_esp32.binor from the "/Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build" directory python -m esptool --chip esp32 -b 460800 --before default-reset --after hard-reset write-flash "@flash_args"(venv) bash-3.2$Note: a primeira compilação pode tardar um pouco (neste caso tardou +8 minutos)...
Fazer o flash (sem o monitor neste caso):
(venv) bash-3.2$ idf.py -p /dev/cu.usbserial-0001 flash # fazendo o flashAdding "flash"'s dependency "all" to list of commands with default set of options.Executing action: all (aliases: build)Running ninja in directory /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/buildExecuting "ninja all"...[1/1] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader &...umes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader/bootloader.biBootloader binary size 0x6640 bytes. 0x9c0 bytes (9%) free.[5/8] Generating esp-idf/esp_system/ld/sections.ldSkipping linker script generation, section names unchanged[7/8] Generating binary image from built executableesptool v5.3.1Creating ESP32 image...Merged 3 ELF sections.Successfully created ESP32 image.Generated /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.bin[8/8] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build && /Users/fe.../Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.bimeu_projeto_esp32.bin binary size 0x27120 bytes. Smallest app partition is 0x100000 bytes. 0xd8ee0 bytes (85%) free.Executing action: flashRunning ninja in directory /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/buildExecuting "ninja flash"...[1/7] Performing build step for 'bootloader'[1/1] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader && /Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venv/bin/python /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/bootloader/bootloader.binBootloader binary size 0x6640 bytes. 0x9c0 bytes (9%) free.[2/7] No install step for 'bootloader'[3/7] Completed 'bootloader'[4/7] Linking CXX executable meu_projeto_esp32.elf[5/7] Generating binary image from built executableesptool v5.3.1Creating ESP32 image...Merged 3 ELF sections.Successfully created ESP32 image.Generated /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.bin[6/7] cd /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build && /Users/fernandopassold/.espressif/tools/python/v6.1-beta1/venv/bin/python /Users/fernandopassold/.espressif/v6.1-beta1/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 partition --type app /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/partition_table/partition-table.bin /Volumes/DADOS/Users/fpassold/Documents/ESP32/Projetos/Senoide1/build/meu_projeto_esp32.binmeu_projeto_esp32.bin binary size 0x27120 bytes. Smallest app partition is 0x100000 bytes. 0xd8ee0 bytes (85%) free.[6/7] Running utility command for flashesptool --chip esp32 -p /dev/cu.usbserial-0001 -b 460800 --before=default-reset --after=hard-reset write-flash --flash-mode dio --flash-freq 40m --flash-size 2MB 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 meu_projeto_esp32.bin --diff-with bootloader/bootloader_flashed.bin partition_table/partition-table_flashed.bin meu_projeto_esp32_flashed.binesptool v5.3.1Connected to ESP32 on /dev/cu.usbserial-0001:Chip type: ESP32-D0WD-V3 (revision v3.1)Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme NoneCrystal frequency: 40MHzMAC: 44:1d:64:f4:d4:a8
Stub flasher running.Changing baud rate to 460800...Changed.
Configuring flash size...
Writing 'bootloader/bootloader.bin' at 0x00001000...SHA digest in image updated.SHA digest in image updated.'bootloader/bootloader.bin' at 0x00001000 verified.
Writing 'partition_table/partition-table.bin' at 0x00008000...'partition_table/partition-table.bin' at 0x00008000 verified.
Writing 'meu_projeto_esp32.bin' at 0x00010000...'meu_projeto_esp32.bin' at 0x00010000 verified.
Hard resetting via RTS pin...Done(venv) bash-3.2$ Obs.: Se tivéssemos ativado o monitor, a única maneira de voltar a ter controle no bash é pressionando: Cmd+].
Finalizando atividades. Por fim, como estamos no terminal IDF, melhor voltar o sistema do host:
xxxxxxxxxx(venv) bash-3.2$ exitexit(base) fernandopassold@MacBook-Pro-de-Fernando ~ %
Fernando Passold, em 29-30/08/2026