esp-at icon indicating copy to clipboard operation
esp-at copied to clipboard

Unable to build esp-at for Classic Bluetooth with Serial Port Protocol (SPP)

Open chrisj7903 opened this issue 4 months ago • 7 comments

Answers checklist

  • [X] I have read the documentation ESP-AT Programming Guide and the issue is not addressed there.
  • [X] I have compiled the hello_world example Get Started with ESP-IDF and the issue is not addressed there.
  • [X] I have updated my ESP-AT branch (master or release) to the latest version and checked that the issue is present there.
  • [X] I have searched the issue tracker for a similar issue and not found a similar issue.

ESP-AT version

v3.4.0.0-46-g7b9487c2

Operating System used

Windows

If you are using Windows, please specify command line type.

CMD

What is the expected behavior?

By following the instructions at Compile ESP-AT Project Locally and How to Enable ESP-AT Classic Bluetooth I expect to successfully build esp-at firmware, with Classic Bluetooth enabled with SPP.

What is the actual behavior?

The build fails if both "AT bt command support" and "AT bt SPP command support" are enabled using the menuconfig utility as describned in the instructions. However, if I build without SPP selected and only "AT bt command support" selected, the build & flashing succeed and the hardware responds corectly to basic Classic Bluetooth commands.

Steps to reproduce

Following the instructions at Compile ESP-AT Project Locally

cd %userprofile%\esp git clone --recursive https://github.com/espressif/esp-at.git cd esp-at python build.py install choose 1. Platform_ESP32 choose 1. WROOM-32 choose 1: Yes (silence mode enabled, to reduce firmware size) python build.py menuconfig Component config AT -> AT bt command support (selected) -> AT bt SPP command support (selected) Quit with Save = Yes python build.py build

the build fails with a fatal error as shown in logs following and attached iun ZIP file build_logs.zip

Build or installation Logs

Platform name:ESP32     Module name:WROOM-32    Silence:1
submodules check completed for updates.
esp_tls_parse_ecc_key.patch does not need to be applied.
fatfs_generation.patch does not need to be applied.
support_ext_partition.patch does not need to be applied.
modify_bluedroid_conn_timeout.patch does not need to be applied.
C:\Users\CJ\esp\esp-at\module_config\module_esp32_default\patch\libbtdm_app.a does not need to be applied.
patches check completed for updates.
Ready to set up environment variables..
PATH is C:\Espressif\tools\xtensa-esp-elf-gdb\14.2_20240403\xtensa-esp-elf-gdb\bin;C:\Espressif\tools\riscv32-esp-elf-gdb\14.2_20240403\riscv32-esp-elf-gdb\bin;C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20230928\xtensa-esp-elf\bin;C:\Espressif\tools\riscv32-esp-elf\esp-13.2.0_20230928\riscv32-esp-elf\bin;C:\Espressif\tools\esp32ulp-elf\2.35_20220830\esp32ulp-elf\bin;C:\Espressif\tools\cmake\3.24.0\bin;C:\Espressif\tools\openocd-esp32\v0.12.0-esp32-20240318\openocd-esp32\bin;C:\Espressif\tools\ninja\1.11.1\;C:\Espressif\tools\idf-exe\1.0.3\;C:\Espressif\tools\ccache\4.8\ccache-4.8-windows-x86_64;C:\Espressif\tools\dfu-util\0.11\dfu-util-0.11-win64;C:\Espressif\frameworks\esp-idf-v5.2.2\tools;C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\;C:\Espressif\tools\idf-git\2.44.0\cmd\;C:\Espressif;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\MATLAB\R2024a\bin;C:\Program Files\MATLAB\R2023b\bin;C:\PROGRA~1\MATLAB\R2020b\bin;C:\Program Files (x86)\IVI Foundation\IVI\bin;C:\Program Files\IVI Foundation\IVI\bin;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;C:\Program Files\IVI Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Users\CJ\AppData\Local\Microsoft\WindowsApps;C:\Users\CJ\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\;
IDF_PYTHON_ENV_PATH is C:\Espressif\python_env\idf5.2_py3.11_env
sys.platform is win32
Not using an unsupported version of tool xtensa-esp-elf-gdb found in PATH: 14.2_20240403. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'Not using an unsupported version of tool riscv32-esp-elf-gdb found in PATH: 14.2_20240403. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool xtensa-esp32-elf found in PATH: esp-13.2.0_20230928-13.2.0. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool xtensa-esp32s2-elf found in PATH: esp-13.2.0_20230928-13.2.0. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool xtensa-esp32s3-elf found in PATH: esp-13.2.0_20230928-13.2.0. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool riscv32-esp-elf found in PATH: esp-13.2.0_20230928-13.2.0. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool openocd-esp32 found in PATH: v0.12.0-esp32-20240318. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool ninja found in PATH: 1.11.1. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool ccache found in PATH: 4.8. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
Not using an unsupported version of tool dfu-util found in PATH: 0.11. To use it, run 'C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\CJ\esp\esp-at\esp-idf\tools\idf_tools.py export --prefer-system'
export str is OPENOCD_SCRIPTS=C:\Espressif\tools\openocd-esp32\v0.12.0-esp32-20230921\openocd-esp32\share\openocd\scripts
ESP_ROM_ELF_DIR=C:\Espressif\tools\esp-rom-elfs\20220823\
ESP_IDF_VERSION=5.0
PATH=C:\Espressif\tools\xtensa-esp-elf-gdb\12.1_20231023\xtensa-esp-elf-gdb\bin;C:\Espressif\tools\riscv32-esp-elf-gdb\12.1_20231023\riscv32-esp-elf-gdb\bin;C:\Espressif\tools\xtensa-esp32-elf\esp-2022r1-11.2.0\xtensa-esp32-elf\bin;C:\Espressif\tools\xtensa-esp32s2-elf\esp-2022r1-11.2.0\xtensa-esp32s2-elf\bin;C:\Espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\bin;C:\Espressif\tools\riscv32-esp-elf\esp-2022r1-11.2.0\riscv32-esp-elf\bin;C:\Espressif\tools\esp32ulp-elf\2.35_20220830\esp32ulp-elf\bin;C:\Espressif\tools\cmake\3.24.0\bin;C:\Espressif\tools\openocd-esp32\v0.12.0-esp32-20230921\openocd-esp32\bin;C:\Espressif\tools\ninja\1.10.2\;C:\Espressif\tools\idf-exe\1.0.3\;C:\Espressif\tools\ccache\4.6.2\ccache-4.6.2-windows-x86_64;C:\Espressif\tools\dfu-util\0.9\dfu-util-0.9-win64;C:\Users\CJ\esp\esp-at\esp-idf\tools;%PATH%
IDF_DEACTIVATE_FILE_PATH=C:\Users\CJ\AppData\Local\Temp\tmpvxh8synmidf_12492

PATH is C:\Espressif\tools\xtensa-esp-elf-gdb\12.1_20231023\xtensa-esp-elf-gdb\bin;C:\Espressif\tools\riscv32-esp-elf-gdb\12.1_20231023\riscv32-esp-elf-gdb\bin;C:\Espressif\tools\xtensa-esp32-elf\esp-2022r1-11.2.0\xtensa-esp32-elf\bin;C:\Espressif\tools\xtensa-esp32s2-elf\esp-2022r1-11.2.0\xtensa-esp32s2-elf\bin;C:\Espressif\tools\xtensa-esp32s3-elf\esp-2022r1-11.2.0\xtensa-esp32s3-elf\bin;C:\Espressif\tools\riscv32-esp-elf\esp-2022r1-11.2.0\riscv32-esp-elf\bin;C:\Espressif\tools\esp32ulp-elf\2.35_20220830\esp32ulp-elf\bin;C:\Espressif\tools\cmake\3.24.0\bin;C:\Espressif\tools\openocd-esp32\v0.12.0-esp32-20230921\openocd-esp32\bin;C:\Espressif\tools\ninja\1.10.2\;C:\Espressif\tools\idf-exe\1.0.3\;C:\Espressif\tools\ccache\4.6.2\ccache-4.6.2-windows-x86_64;C:\Espressif\tools\dfu-util\0.9\dfu-util-0.9-win64;C:\Users\CJ\esp\esp-at\esp-idf\tools;%PATH%;C:\Espressif\tools\xtensa-esp-elf-gdb\14.2_20240403\xtensa-esp-elf-gdb\bin;C:\Espressif\tools\riscv32-esp-elf-gdb\14.2_20240403\riscv32-esp-elf-gdb\bin;C:\Espressif\tools\xtensa-esp-elf\esp-13.2.0_20230928\xtensa-esp-elf\bin;C:\Espressif\tools\riscv32-esp-elf\esp-13.2.0_20230928\riscv32-esp-elf\bin;C:\Espressif\tools\esp32ulp-elf\2.35_20220830\esp32ulp-elf\bin;C:\Espressif\tools\cmake\3.24.0\bin;C:\Espressif\tools\openocd-esp32\v0.12.0-esp32-20240318\openocd-esp32\bin;C:\Espressif\tools\ninja\1.11.1\;C:\Espressif\tools\idf-exe\1.0.3\;C:\Espressif\tools\ccache\4.8\ccache-4.8-windows-x86_64;C:\Espressif\tools\dfu-util\0.11\dfu-util-0.11-win64;C:\Espressif\frameworks\esp-idf-v5.2.2\tools;C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\;C:\Espressif\tools\idf-git\2.44.0\cmd\;C:\Espressif;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\MATLAB\R2024a\bin;C:\Program Files\MATLAB\R2023b\bin;C:\PROGRA~1\MATLAB\R2020b\bin;C:\Program Files (x86)\IVI Foundation\IVI\bin;C:\Program Files\IVI Foundation\IVI\bin;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;C:\Program Files\IVI Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Users\CJ\AppData\Local\Microsoft\WindowsApps;C:\Users\CJ\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\;
IDF_PYTHON_ENV_PATH is C:\Espressif\python_env\idf5.2_py3.11_env
Executing action: all (aliases: build)
Running ninja in directory C:\Users\CJ\esp\esp-at\build
Executing "ninja all"...
[0/1] Re-running CMake...-- silence:1, sdkconfig:C:/Users/CJ/esp/esp-at/module_config/module_esp32_default/sdkconfig_silence.defaults
-- partition_table_dir: C:/Users/CJ/esp/esp-at
esp-at branch: master
esp-at docs version: latest
no extra component dirs
-- Component directory C:/Users/CJ/esp/esp-at/components/fs_image does not contain a CMakeLists.txt file. No component will be added
-- ccache will be used for faster recompilation
-- Building ESP-IDF components for target esp32
NOTICE: Skipping optional dependency: espressif/cmake_utilities
NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
NOTICE: Skipping optional dependency: espressif/cmake_utilities
NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
NOTICE: Skipping optional dependency: espressif/cmake_utilities
NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
Processing 3 dependencies:
[3/3] idf (5.0.6)NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
NOTICE: Skipping optional dependency: espressif/cmake_utilities
-- Project sdkconfig file C:/Users/CJ/esp/esp-at/sdkconfig
Loading defaults file C:/Users/CJ/esp/esp-at/module_config/module_esp32_default/sdkconfig_silence.defaults...
-- App "esp-at" version: v3.4.0.0-46-g7b9487c2
-- Adding linker script C:/Users/CJ/esp/esp-at/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_system/ld/esp32/sections.ld.in
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld
silence:1, ld core:C:/Users/CJ/esp/esp-at/components/at/lib/libesp32_at_core_silence.a
-- Set custom partition table: C:/Users/CJ/esp/esp-at/module_config/module_esp32_default/at_customize.csv
Parsing CSV input...
Verifying table...
-- Components: app_trace app_update at bootloader bootloader_support bt cmock console customized_partitions cxx decoder driver efuse esp-tls esp_adc esp_app_format esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_netif esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump espressif__esp_websocket_client espressif__mdns esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash openthread partition_table perfmon protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: C:/Users/CJ/esp/esp-at/esp-idf/components/app_trace C:/Users/CJ/esp/esp-at/esp-idf/components/app_update C:/Users/CJ/esp/esp-at/components/at C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader_support C:/Users/CJ/esp/esp-at/esp-idf/components/bt C:/Users/CJ/esp/esp-at/esp-idf/components/cmock C:/Users/CJ/esp/esp-at/esp-idf/components/console C:/Users/CJ/esp/esp-at/components/customized_partitions C:/Users/CJ/esp/esp-at/esp-idf/components/cxx C:/Users/CJ/esp/esp-at/components/decoder C:/Users/CJ/esp/esp-at/esp-idf/components/driver C:/Users/CJ/esp/esp-at/esp-idf/components/efuse C:/Users/CJ/esp/esp-at/esp-idf/components/esp-tls C:/Users/CJ/esp/esp-at/esp-idf/components/esp_adc C:/Users/CJ/esp/esp-at/esp-idf/components/esp_app_format C:/Users/CJ/esp/esp-at/esp-idf/components/esp_common C:/Users/CJ/esp/esp-at/esp-idf/components/esp_eth C:/Users/CJ/esp/esp-at/esp-idf/components/esp_event C:/Users/CJ/esp/esp-at/esp-idf/components/esp_gdbstub C:/Users/CJ/esp/esp-at/esp-idf/components/esp_hid C:/Users/CJ/esp/esp-at/esp-idf/components/esp_http_client C:/Users/CJ/esp/esp-at/esp-idf/components/esp_http_server C:/Users/CJ/esp/esp-at/esp-idf/components/esp_https_ota C:/Users/CJ/esp/esp-at/esp-idf/components/esp_https_server C:/Users/CJ/esp/esp-at/esp-idf/components/esp_hw_support C:/Users/CJ/esp/esp-at/esp-idf/components/esp_lcd C:/Users/CJ/esp/esp-at/esp-idf/components/esp_local_ctrl C:/Users/CJ/esp/esp-at/esp-idf/components/esp_netif C:/Users/CJ/esp/esp-at/esp-idf/components/esp_partition C:/Users/CJ/esp/esp-at/esp-idf/components/esp_phy C:/Users/CJ/esp/esp-at/esp-idf/components/esp_pm C:/Users/CJ/esp/esp-at/esp-idf/components/esp_psram C:/Users/CJ/esp/esp-at/esp-idf/components/esp_ringbuf C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom C:/Users/CJ/esp/esp-at/esp-idf/components/esp_system C:/Users/CJ/esp/esp-at/esp-idf/components/esp_timer C:/Users/CJ/esp/esp-at/esp-idf/components/esp_wifi C:/Users/CJ/esp/esp-at/esp-idf/components/espcoredump C:/Users/CJ/esp/esp-at/managed_components/espressif__esp_websocket_client C:/Users/CJ/esp/esp-at/managed_components/espressif__mdns C:/Users/CJ/esp/esp-at/esp-idf/components/esptool_py C:/Users/CJ/esp/esp-at/esp-idf/components/fatfs C:/Users/CJ/esp/esp-at/esp-idf/components/freertos C:/Users/CJ/esp/esp-at/esp-idf/components/hal C:/Users/CJ/esp/esp-at/esp-idf/components/heap C:/Users/CJ/esp/esp-at/esp-idf/components/http_parser C:/Users/CJ/esp/esp-at/esp-idf/components/idf_test C:/Users/CJ/esp/esp-at/esp-idf/components/ieee802154 C:/Users/CJ/esp/esp-at/esp-idf/components/json C:/Users/CJ/esp/esp-at/esp-idf/components/log C:/Users/CJ/esp/esp-at/esp-idf/components/lwip C:/Users/CJ/esp/esp-at/main C:/Users/CJ/esp/esp-at/esp-idf/components/mbedtls C:/Users/CJ/esp/esp-at/esp-idf/components/mqtt C:/Users/CJ/esp/esp-at/esp-idf/components/newlib C:/Users/CJ/esp/esp-at/esp-idf/components/nvs_flash C:/Users/CJ/esp/esp-at/esp-idf/components/openthread C:/Users/CJ/esp/esp-at/esp-idf/components/partition_table C:/Users/CJ/esp/esp-at/esp-idf/components/perfmon C:/Users/CJ/esp/esp-at/esp-idf/components/protobuf-c C:/Users/CJ/esp/esp-at/esp-idf/components/protocomm C:/Users/CJ/esp/esp-at/esp-idf/components/pthread C:/Users/CJ/esp/esp-at/esp-idf/components/sdmmc C:/Users/CJ/esp/esp-at/esp-idf/components/soc C:/Users/CJ/esp/esp-at/esp-idf/components/spi_flash C:/Users/CJ/esp/esp-at/esp-idf/components/spiffs C:/Users/CJ/esp/esp-at/esp-idf/components/tcp_transport C:/Users/CJ/esp/esp-at/esp-idf/components/ulp C:/Users/CJ/esp/esp-at/esp-idf/components/unity C:/Users/CJ/esp/esp-at/esp-idf/components/usb C:/Users/CJ/esp/esp-at/esp-idf/components/vfs C:/Users/CJ/esp/esp-at/esp-idf/components/wear_levelling C:/Users/CJ/esp/esp-at/esp-idf/components/wifi_provisioning C:/Users/CJ/esp/esp-at/esp-idf/components/wpa_supplicant C:/Users/CJ/esp/esp-at/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/CJ/esp/esp-at/build
[29/1201] Running utility command for customized_bin
Creating NVS binary with version: V2 - Multipage Blob Support Enabled

Created NVS binary: ===> C:/Users/CJ/esp/esp-at/build/customized_partitions\mfg_nvs.bin
[47/1201] Generating ../../partition_table/partition-table.binPartition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
phy_init,data,phy,0xf000,4K,
otadata,data,ota,0x10000,8K,
nvs,data,nvs,0x12000,56K,
at_customize,64,0,0x20000,896K,
ota_0,app,ota_0,0x100000,1536K,
ota_1,app,ota_1,0x280000,1536K,
*******************************************************************************
[657/1201] Performing configure step for 'bootloader'-- Found Git: C:/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Espressif/tools/xtensa-esp32-elf/esp-2022r1-11.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Espressif/tools/xtensa-esp32-elf/esp-2022r1-11.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe - 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: C:/Espressif/tools/xtensa-esp32-elf/esp-2022r1-11.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32
Dependencies lock doesn't exist, solving dependencies.
NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
NOTICE: Updating lock file at C:\Users\CJ\esp\esp-at\esp-idf\components\bootloader\subproject\dependencies.lock
Processing 1 dependencies:
[1/1] idf (5.0.6)NOTICE: Skipping optional dependency: espressif/bootloader_support_plus
-- Project sdkconfig file C:/Users/CJ/esp/esp-at/sdkconfig
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld
-- App "bootloader" version: v5.0.6-dirty
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader/subproject/main/ld/esp32/bootloader.ld
-- Adding linker script C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader/subproject/main/ld/esp32/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp_app_format esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa
-- Component paths: C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader_support C:/Users/CJ/esp/esp-at/esp-idf/components/efuse C:/Users/CJ/esp/esp-at/esp-idf/components/esp_app_format C:/Users/CJ/esp/esp-at/esp-idf/components/esp_common C:/Users/CJ/esp/esp-at/esp-idf/components/esp_hw_support C:/Users/CJ/esp/esp-at/esp-idf/components/esp_rom C:/Users/CJ/esp/esp-at/esp-idf/components/esp_system C:/Users/CJ/esp/esp-at/esp-idf/components/esptool_py C:/Users/CJ/esp/esp-at/esp-idf/components/freertos C:/Users/CJ/esp/esp-at/esp-idf/components/hal C:/Users/CJ/esp/esp-at/esp-idf/components/log C:/Users/CJ/esp/esp-at/bootloader_components/main C:/Users/CJ/esp/esp-at/esp-idf/components/bootloader/subproject/components/micro-ecc C:/Users/CJ/esp/esp-at/esp-idf/components/newlib C:/Users/CJ/esp/esp-at/esp-idf/components/partition_table C:/Users/CJ/esp/esp-at/esp-idf/components/soc C:/Users/CJ/esp/esp-at/esp-idf/components/spi_flash C:/Users/CJ/esp/esp-at/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/CJ/esp/esp-at/build/bootloader
[101/102] Generating binary image from built executableesptool.py v4.7.0
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Generated C:/Users/CJ/esp/esp-at/build/bootloader/bootloader.bin
[102/102] cmd.exe /C "cd /D C:\Users\CJ\esp\esp-at\build\b...00 C:/Users/CJ/esp/esp-at/build/bootloader/bootloader.bin"Bootloader binary size 0x6330 bytes. 0xcd0 bytes (11%) free.
[1199/1201] Generating binary image from built executableesptool.py v4.7.0
Creating esp32 image...
Merged 2 ELF sections
Successfully created esp32 image.
Generated C:/Users/CJ/esp/esp-at/build/esp-at.bin
[1200/1201] cmd.exe /C "cd /D C:\Users\CJ\esp\esp-at\build...rtition-table.bin C:/Users/CJ/esp/esp-at/build/esp-at.bin"FAILED: esp-idf/esptool_py/CMakeFiles/app_check_size C:/Users/CJ/esp/esp-at/build/esp-idf/esptool_py/CMakeFiles/app_check_size
cmd.exe /C "cd /D C:\Users\CJ\esp\esp-at\build\esp-idf\esptool_py && C:\Espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:/Users/CJ/esp/esp-at/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 partition --type app C:/Users/CJ/esp/esp-at/build/partition_table/partition-table.bin C:/Users/CJ/esp/esp-at/build/esp-at.bin"
Error: All app partitions are too small for binary esp-at.bin size 0x183a00:
  - Part 'ota_0' 0/16 @ 0x100000 size 0x180000 (overflow 0x3a00)
  - Part 'ota_1' 0/17 @ 0x280000 size 0x180000 (overflow 0x3a00)
ninja: build stopped: subcommand failed.
ninja failed with exit code 1, output of the command is in the C:\Users\CJ\esp\esp-at\build\log\idf_py_stderr_output_4600 and C:\Users\CJ\esp\esp-at\build\log\idf_py_stdout_output_4600
A fatal error occurred: idf.py build failed

More Information

I suspect some years back this was possible (to add Classic Bluetooth with SPP to ESP32 firmware). For example see this description (circa 2021)

However after many weeks of research I fear it may no longer possible as building with SPP always results in an oversized image/firmware size problem, no matter how many tweaks I tried (after studying Minimizing Binary Size)

There are just too many options and tweaks I don't understand, so I'm hoping either for guidance on the correct tweaks, or if necessary, an update to the esp-at menuconfig utiulity with new build options to support BT+SPP+A2DP as was originally intended.

In my perfect world view: there would be a menuconfig option to build a completely Classic Bluetooth focussed, stripped down firmware (e.g no BLE, no WiFi at all). Hopefully this can could be done within the actual firmware size limits and constraints.

chrisj7903 avatar Oct 10 '24 10:10 chrisj7903