espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.25k stars 7.19k forks source link

ESP32-D0WD-V3 doesn't send back SCAN_RESP packets. (IDFGH-9277) #10660

Open zapta opened 1 year ago

zapta commented 1 year ago

Answers checklist.

IDF version.

Espressif IDF v1.5.1

Operating System used.

Windows

How did you build your project?

VS Code IDE

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

None

Development Kit.

ESP32 WROOM boards

Power Supply used.

USB

What is the expected behavior?

Device responds to BLE SCAN_REQ requests, when using the Espressif gatts_table_creat_demo.c example.

What is the actual behavior?

ESP32-D0WDQ6 (revision v1.0) works as expected. ESP32-D0WD-V3 (revision v3.0) does not respond to BLE SCAN_REQ requests. I am reporting here using your gatts_table_creat_demo.c example but experience the same issue with other BLE programs.

Attached are screen shots and packet captures files from wireshark.

wireshark_ESP32-D0WD-V1

wireshark_ESP32-D0WD-V3

wireshark_ packets.zip

Steps to reproduce.

  1. Build a run Espressif gatts_table_creat_demo.c example on a ESP32-D0WD-V3 device.
  2. Use Nordic's nRF Connect app for android or iphone to scan for BLE devices. Notice that you see "ESP_GATTS_DEMO". Do not connect to it and leave the phone app scanning.
  3. Run a BLE packet sniffer (I am using the Nordic sniffer with wireshark https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le).
  4. Observe in the sniffer traffic to/from the "ESP_GATTS_DEMO", identify the SCAN_REQ packets sent to it and observe if it sends back corresponding SCAN_RESP packets.

With the ESP32-D0WDQ6 (revision v1.0) device I do get the SCAN_REQ (good). With the ESP32-D0WD-V3 (revision v3.0) I don't.

Debug Logs.

This is the log when running the ESP32-D0WD-V3 (revision v3.0) which doesn't send back SCAN_RESP:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:6992
load:0x40078000,len:15452
load:0x40080400,len:3840
0x40080400: _init at ??:?

entry 0x4008064c
I (27) boot: ESP-IDF v5.0 2nd stage bootloader
I (27) boot: compile time 10:43:07
I (27) boot: chip revision: v3.0
I (30) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (37) boot.esp32: SPI Speed      : 40MHz
I (42) boot.esp32: SPI Mode       : DIO
I (46) boot.esp32: SPI Flash Size : 2MB
I (51) boot: Enabling RNG early entropy source...
I (56) boot: Partition Table:
I (60) boot: ## Label            Usage          Type ST Offset   Length
I (67) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (75) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (82) boot:  2 factory          factory app      00 00 00010000 00100000
I (90) boot: End of partition table
I (94) boot_comm: chip revision: 3, min. application chip revision: 0
I (101) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=175a8h ( 95656) map
I (144) esp_image: segment 1: paddr=000275d0 vaddr=3ffbdb60 size=049a0h ( 18848) load
I (152) esp_image: segment 2: paddr=0002bf78 vaddr=40080000 size=040a0h ( 16544) load
I (159) esp_image: segment 3: paddr=00030020 vaddr=400d0020 size=5ea94h (387732) map 
I (299) esp_image: segment 4: paddr=0008eabc vaddr=400840a0 size=134f8h ( 79096) load
I (332) esp_image: segment 5: paddr=000a1fbc vaddr=50000000 size=00010h (    16) load
I (344) boot: Loaded app from partition at offset 0x10000
I (344) boot: Disabling RNG early entropy source...
I (356) cpu_start: Pro cpu up.
I (356) cpu_start: Starting app cpu, entry point is 0x400812f8
0x400812f8: call_start_cpu1 at C:/Users/user/esp/esp-idf/components/esp_system/port/cpu_start.c:142

I (0) cpu_start: App cpu up.
I (372) cpu_start: Pro cpu start user code
I (372) cpu_start: cpu freq: 160000000 Hz
I (372) cpu_start: Application information:
I (377) cpu_start: Project name:     esdidf_scan_resp
I (383) cpu_start: App version:      b5c7fbd-dirty
I (388) cpu_start: Compile time:     Jan 30 2023 12:26:07
I (394) cpu_start: ELF file SHA256:  3cf270b6c6e6f1e6...
I (400) cpu_start: ESP-IDF:          v5.0
I (405) heap_init: Initializing. RAM available for dynamic allocation:
I (412) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (418) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (424) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (430) heap_init: At 3FFC61D0 len 00019E30 (103 KiB): DRAM
I (437) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (443) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (450) heap_init: At 40097598 len 00008A68 (34 KiB): IRAM
I (457) spi_flash: detected chip: generic
I (460) spi_flash: flash io: dio
W (464) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.       
I (479) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (524) BTDM_INIT: BT controller compile version [8020d24]
I (524) system_api: Base MAC address is not set
I (524) system_api: read default base MAC address from EFUSE
I (534) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
I (934) GATTS_TABLE_DEMO: create attribute table successfully, the number handle = 8

I (944) GATTS_TABLE_DEMO: SERVICE_START_EVT, status 0, service_handle 40
I (954) GATTS_TABLE_DEMO: advertising start successfully

More Information.

  1. My test project is here https://github.com/zapta/espidf_scan_resp
  2. This may be related to the reports here https://www.esp32.com/viewtopic.php?f=2&t=30483&p=109009#p109009
xiewenxiang commented 1 year ago

ESP-IDF versions before V3.3 are already End of Life. could you please use the latest release branch to test?

https://github.com/espressif/esp-idf/blob/master/SUPPORT_POLICY.md

zapta commented 1 year ago

@xiewenxiang, the bug report here is based on a fresh install of VSCode/ESPIDF and the gatts table create demo it offered me. Is there a newer version thaמ a fresh install? How do I upgrade to a newer ESPIDF version in VSCode?

Here is a log of my build. It may give you information of the version I got from the fresh install.

 *  Executing task: cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -B c:\projects\espidf_scan_resp\repo\build -S c:\projects\espidf_scan_resp\repo 

-- Found Git: C:/Users/user/.espressif/tools/idf-git/2.30.1/cmd/git.exe (found version "2.30.1.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:/Users/user/.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:/Users/user/.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:/Users/user/.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
-- Project sdkconfig file C:/projects/espidf_scan_resp/repo/sdkconfig
Loading defaults file C:/projects/espidf_scan_resp/repo/sdkconfig.defaults...
Loading defaults file C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32...
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:392 CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE was replaced with CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:393 CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION was replaced with CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION       
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:394 CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER was replaced with CONFIG_ESP_PHY_MAX_WIFI_TX_POWER
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:395 CONFIG_ESP32_PHY_MAX_TX_POWER was replaced with CONFIG_ESP_PHY_MAX_TX_POWER
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1077 CONFIG_OTA_ALLOW_HTTP was replaced with CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1100 CONFIG_ESP32_DEBUG_OCDAWARE was replaced with CONFIG_ESP_DEBUG_OCDAWARE
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1101 CONFIG_ESP32_BROWNOUT_DET was replaced with CONFIG_ESP_BROWNOUT_DET
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1102 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1103 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1104 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1105 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1106 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1107 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1108 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1109 CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 was replaced with CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1110 CONFIG_ESP32_BROWNOUT_DET_LVL was replaced with CONFIG_ESP_BROWNOUT_DET_LVL
C:/projects/espidf_scan_resp/repo/sdkconfig.defaults.esp32:1111 CONFIG_ESP32_REDUCE_PHY_TX_POWER was replaced with CONFIG_ESP_PHY_REDUCE_TX_POWER
-- 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
-- Found Python3: C:/Users/user/.espressif/python_env/idf5.0_py3.8_env/Scripts/python.exe (found version "3.8.7") found components: Interpreter 
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- App "esdidf_scan_resp" version: b5c7fbd-dirty
-- Adding linker script C:/projects/espidf_scan_resp/repo/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_system/ld/esp32/sections.ld.in
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld
-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx 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 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/user/esp/esp-idf/components/app_trace C:/Users/user/esp/esp-idf/components/app_update C:/Users/user/esp/esp-idf/components/bootloader C:/Users/user/esp/esp-idf/components/bootloader_support C:/Users/user/esp/esp-idf/components/bt C:/Users/user/esp/esp-idf/components/cmock C:/Users/user/esp/esp-idf/components/console C:/Users/user/esp/esp-idf/components/cxx C:/Users/user/esp/esp-idf/components/driver C:/Users/user/esp/esp-idf/components/efuse C:/Users/user/esp/esp-idf/components/esp-tls C:/Users/user/esp/esp-idf/components/esp_adc C:/Users/user/esp/esp-idf/components/esp_app_format C:/Users/user/esp/esp-idf/components/esp_common C:/Users/user/esp/esp-idf/components/esp_eth C:/Users/user/esp/esp-idf/components/esp_event C:/Users/user/esp/esp-idf/components/esp_gdbstub C:/Users/user/esp/esp-idf/components/esp_hid C:/Users/user/esp/esp-idf/components/esp_http_client C:/Users/user/esp/esp-idf/components/esp_http_server C:/Users/user/esp/esp-idf/components/esp_https_ota C:/Users/user/esp/esp-idf/components/esp_https_server C:/Users/user/esp/esp-idf/components/esp_hw_support C:/Users/user/esp/esp-idf/components/esp_lcd C:/Users/user/esp/esp-idf/components/esp_local_ctrl C:/Users/user/esp/esp-idf/components/esp_netif C:/Users/user/esp/esp-idf/components/esp_partition C:/Users/user/esp/esp-idf/components/esp_phy C:/Users/user/esp/esp-idf/components/esp_pm C:/Users/user/esp/esp-idf/components/esp_psram C:/Users/user/esp/esp-idf/components/esp_ringbuf C:/Users/user/esp/esp-idf/components/esp_rom C:/Users/user/esp/esp-idf/components/esp_system C:/Users/user/esp/esp-idf/components/esp_timer C:/Users/user/esp/esp-idf/components/esp_wifi C:/Users/user/esp/esp-idf/components/espcoredump C:/Users/user/esp/esp-idf/components/esptool_py C:/Users/user/esp/esp-idf/components/fatfs C:/Users/user/esp/esp-idf/components/freertos C:/Users/user/esp/esp-idf/components/hal C:/Users/user/esp/esp-idf/components/heap C:/Users/user/esp/esp-idf/components/http_parser C:/Users/user/esp/esp-idf/components/idf_test C:/Users/user/esp/esp-idf/components/ieee802154 C:/Users/user/esp/esp-idf/components/json C:/Users/user/esp/esp-idf/components/log C:/Users/user/esp/esp-idf/components/lwip C:/projects/espidf_scan_resp/repo/main C:/Users/user/esp/esp-idf/components/mbedtls C:/Users/user/esp/esp-idf/components/mqtt C:/Users/user/esp/esp-idf/components/newlib C:/Users/user/esp/esp-idf/components/nvs_flash C:/Users/user/esp/esp-idf/components/openthread C:/Users/user/esp/esp-idf/components/partition_table C:/Users/user/esp/esp-idf/components/perfmon C:/Users/user/esp/esp-idf/components/protobuf-c C:/Users/user/esp/esp-idf/components/protocomm C:/Users/user/esp/esp-idf/components/pthread C:/Users/user/esp/esp-idf/components/sdmmc C:/Users/user/esp/esp-idf/components/soc C:/Users/user/esp/esp-idf/components/spi_flash C:/Users/user/esp/esp-idf/components/spiffs C:/Users/user/esp/esp-idf/components/tcp_transport C:/Users/user/esp/esp-idf/components/ulp C:/Users/user/esp/esp-idf/components/unity C:/Users/user/esp/esp-idf/components/usb C:/Users/user/esp/esp-idf/components/vfs C:/Users/user/esp/esp-idf/components/wear_levelling C:/Users/user/esp/esp-idf/components/wifi_provisioning C:/Users/user/esp/esp-idf/components/wpa_supplicant C:/Users/user/esp/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/projects/espidf_scan_resp/repo/build

 *  Executing task: ninja  

[23/1142] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,
*******************************************************************************
[559/1142] Performing configure step for 'bootloader'
-- Found Git: C:/Users/user/.espressif/tools/idf-git/2.30.1/cmd/git.exe (found version "2.30.1.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:/Users/user/.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:/Users/user/.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:/Users/user/.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
-- Project sdkconfig file C:/projects/espidf_scan_resp/repo/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/user/esp/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld
-- App "bootloader" version: v5.0
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/Users/user/esp/esp-idf/components/bootloader/subproject/main/ld/esp32/bootloader.ld
-- Adding linker script C:/Users/user/esp/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/user/esp/esp-idf/components/bootloader C:/Users/user/esp/esp-idf/components/bootloader_support C:/Users/user/esp/esp-idf/components/efuse C:/Users/user/esp/esp-idf/components/esp_app_format C:/Users/user/esp/esp-idf/components/esp_common C:/Users/user/esp/esp-idf/components/esp_hw_support C:/Users/user/esp/esp-idf/components/esp_rom C:/Users/user/esp/esp-idf/components/esp_system C:/Users/user/esp/esp-idf/components/esptool_py C:/Users/user/esp/esp-idf/components/freertos C:/Users/user/esp/esp-idf/components/hal C:/Users/user/esp/esp-idf/components/log C:/Users/user/esp/esp-idf/components/bootloader/subproject/main C:/Users/user/esp/esp-idf/components/bootloader/subproject/components/micro-ecc C:/Users/user/esp/esp-idf/components/newlib C:/Users/user/esp/esp-idf/components/partition_table C:/Users/user/esp/esp-idf/components/soc C:/Users/user/esp/esp-idf/components/spi_flash C:/Users/user/esp/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/projects/espidf_scan_resp/repo/build/bootloader
[612/1142] Performing build step for 'bootloader'
[1/101] Generating project_elf_src_esp32.c
[2/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/lldesc.c.obj
[3/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdm_periph.c.obj
[4/101] Building C object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/eri.c.obj
[5/101] Building C object esp-idf/xtensa/CMakeFiles/__idf_xtensa.dir/xt_trax.c.obj
[6/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dport_access.c.obj
[7/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/adc_periph.c.obj
[8/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/dac_periph.c.obj
[9/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/gpio_periph.c.obj
[10/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/dport_access_common.c.obj
[11/101] Building C object CMakeFiles/bootloader.elf.dir/project_elf_src_esp32.c.obj
[12/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/ledc_periph.c.obj
[13/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rmt_periph.c.obj
[14/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/rtc_io_periph.c.obj
[15/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/interrupts.c.obj
[16/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/pcnt_periph.c.obj
[17/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/lcd_periph.c.obj
[18/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2s_periph.c.obj
[19/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/mcpwm_periph.c.obj
[20/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/i2c_periph.c.obj
[21/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdmmc_periph.c.obj
[22/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/spi_periph.c.obj
[23/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/timer_periph.c.obj
[24/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/touch_sensor_periph.c.obj
[25/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/sdio_slave_periph.c.obj
[26/101] Building C object esp-idf/soc/CMakeFiles/__idf_soc.dir/esp32/uart_periph.c.obj
[27/101] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/mpu_hal.c.obj
[28/101] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/efuse_hal.c.obj
[29/101] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/wdt_hal_iram.c.obj
[30/101] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/mmu_hal.c.obj
[31/101] Building C object esp-idf/micro-ecc/CMakeFiles/__idf_micro-ecc.dir/uECC_verify_antifault.c.obj
[32/101] Building C object esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj
[33/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_init.c.obj
[34/101] Building C object esp-idf/hal/CMakeFiles/__idf_hal.dir/esp32/efuse_hal.c.obj
[35/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common.c.obj
[36/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_common_loader.c.obj
[37/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash.c.obj
[38/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_mem.c.obj
[39/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console.c.obj
[40/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random.c.obj
[41/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_random_esp32.c.obj
[42/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_clock_loader.c.obj
[43/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_console_loader.c.obj
[44/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_encrypt.c.obj
[45/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp_image_format.c.obj
[46/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_utility.c.obj
[47/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_soc.c.obj
[48/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_panic.c.obj
[49/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_init.c.obj
[50/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/flash_partitions.c.obj
[51/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/secure_boot.c.obj
[52/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/bootloader_efuse.c.obj
[53/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/bootloader_flash_config_esp32.c.obj
[54/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/bootloader_flash/src/flash_qio_mode.c.obj
[55/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_sha.c.obj
[56/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_fields.c.obj
[57/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_utility.c.obj
[58/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_fields.c.obj
[59/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_api.c.obj
[60/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/esp32/esp_efuse_table.c.obj
[61/101] Building C object esp-idf/esp_system/CMakeFiles/__idf_esp_system.dir/esp_err.c.obj
[62/101] Building ASM object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_longjmp.S.obj
[63/101] Building C object esp-idf/bootloader_support/CMakeFiles/__idf_bootloader_support.dir/src/esp32/bootloader_esp32.c.obj
[64/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/esp_efuse_utility.c.obj
[65/101] Building C object esp-idf/efuse/CMakeFiles/__idf_efuse.dir/src/efuse_controller/keys/without_key_purposes/three_key_blocks/esp_efuse_api_key.c.obj
[66/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_efuse.c.obj
[67/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_regi2c.c.obj
[68/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/esp_memory_utils.c.obj
[69/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_spiflash.c.obj
[70/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/cpu.c.obj
[71/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_pm.c.obj
[72/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_init.c.obj
[73/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/chip_info.c.obj
[74/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_crc.c.obj
[75/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_sys.c.obj
[76/101] Building C object esp-idf/esp_common/CMakeFiles/__idf_esp_common.dir/src/esp_err_to_name.c.obj
[77/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk_init.c.obj
[78/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_sleep.c.obj
[79/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_time.c.obj
[80/101] Building C object esp-idf/esp_rom/CMakeFiles/__idf_esp_rom.dir/patches/esp_rom_uart.c.obj
[81/101] Building C object esp-idf/esp_hw_support/CMakeFiles/__idf_esp_hw_support.dir/port/esp32/rtc_clk.c.obj
[82/101] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_noos.c.obj
[83/101] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log.c.obj
[84/101] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/bootloader_start.c.obj
[85/101] Building C object esp-idf/log/CMakeFiles/__idf_log.dir/log_buffers.c.obj
[86/101] Linking C static library esp-idf\log\liblog.a
[87/101] Linking C static library esp-idf\esp_rom\libesp_rom.a
[88/101] Linking C static library esp-idf\esp_common\libesp_common.a
[89/101] Linking C static library esp-idf\esp_hw_support\libesp_hw_support.a
[90/101] Linking C static library esp-idf\esp_system\libesp_system.a
[91/101] Linking C static library esp-idf\efuse\libefuse.a
[92/101] Linking C static library esp-idf\bootloader_support\libbootloader_support.a
[93/101] Linking C static library esp-idf\esp_app_format\libesp_app_format.a
[94/101] Linking C static library esp-idf\hal\libhal.a
[95/101] Linking C static library esp-idf\micro-ecc\libmicro-ecc.a
[96/101] Linking C static library esp-idf\soc\libsoc.a
[97/101] Linking C static library esp-idf\xtensa\libxtensa.a
[98/101] Linking C static library esp-idf\main\libmain.a
[99/101] Linking C executable bootloader.elf
[100/101] Generating binary image from built executable
esptool.py v4.4
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Generated C:/projects/espidf_scan_resp/repo/build/bootloader/bootloader.bin
[101/101] cmd.exe /C "cd /D C:\projects\espidf_scan_resp\repo\build\bootloader\esp-idf\esptool_py && C:\Users\user\.espressif\python_env\idf5.0_py3.8_env\Scripts\python.exe C:/Users/user/esp/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/projects/espidf_scan_resp/repo/build/bootloader/bootloader.bin"
Bootloader binary size 0x6700 bytes. 0x900 bytes (8%) free.
[1141/1142] Generating binary image from built executable
esptool.py v4.4
Creating esp32 image...
Merged 25 ELF sections
Successfully created esp32 image.
Generated C:/projects/espidf_scan_resp/repo/build/esdidf_scan_resp.bin
[1142/1142] cmd.exe /C "cd /D C:\projects\espidf_scan_resp\repo\build\esp-idf\esp...partition-table.bin C:/projects/espidf_scan_resp/repo/build/esdidf_scan_resp.bin"esdidf_scan_resp.bin binary size 0x91ff0 bytes. Smallest app partition is 0x100000 bytes. 0x6e010 bytes (43%) free.

 *  Executing task: C:\Users\user\.espressif\python_env\idf5.0_py3.8_env\Scripts\python.exe C:\Users\user\esp\esp-idf\components\esptool_py\esptool\esptool.py -p COM10 -b 460800 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_freq 40m --flash_size 2MB 0x1000 bootloader/bootloader.bin 0x10000 esdidf_scan_resp.bin 0x8000 partition_table/partition-table.bin 

esptool.py v4.4
Serial port COM10
xiewenxiang commented 1 year ago

@zapta It doesn't look like Espressif IDF v1.5.1. Can you provide the exact commit information for ESP-IDF? Or provide the app.bin file you compiled.

zapta commented 1 year ago

@xiewenxiang , below is a zip file with the .bin file I found in my build directory. You can also find a complete snapshot of my project, including all the build files here https://github.com/zapta/espidf_scan_resp

If there is a way to print the version information of my ESPIDF or to upgrade my VSCode ESPIDF extension please let me know.

esdidf_scan_resp.zip

xiewenxiang commented 1 year ago

@zapta I directly used the bin file you provided and made corresponding tests, and it seems that there is no problem. test_log_20230201.txt

图片

xiewenxiang commented 1 year ago

capture src files

xiewenxiang commented 1 year ago
image

The hardware information is the same

zapta commented 1 year ago

Thanks @xiewenxiang, I will at your results and try to identify differences in the configurations. Will also try to order ESP32 modules from other sources to compare.

Is there a free viewer to look at the capture file you sent? I am using wireshark which is free but am not sure if it can open those files.

xiewenxiang commented 1 year ago

@zapta

https://teledynelecroy.com/support/softwaredownload/psgdocuments.aspx?standardid=2&mseries=671

zapta commented 1 year ago

Thanks @xiewenxiang. I will try to debug it here. Can you give me a hint where the SCAN_REQ is handled in the ESP32 Bluddroid stack? E.g. where I can breakpoint and see if it arrived or not and where the decision to send back the SCAN_RSP is done. I looked at the code and found events and function related to scan rsp but there are all for BLE 5.0 which is not enabled for the ESP32.

https://github.com/espressif/esp-idf/tree/master/components/bt/host/bluedroid

zapta commented 1 year ago

Hi @xiewenxiang, I tried the Nimble example as is and getting the same results. https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/nimble/bleprph .

This is the module that doesn't work https://www.amazon.com/gp/product/B07BK435ZW (the ones I got from amazon look exactly the except that they don't have the espressif logo on the wroom module as shown in the picture below). Can I mail you one or two of those modules so you can try to replicate it on your side? It seems that the adv resp is sent by the ble controller logic which is a closed code so I debug it.

IMG-3826

webmonkey commented 1 year ago

@zapta I have been trying to work out a similar problem that was exhibited with a ESP32-D0WD-V3 but worked fine with ESP32-D0WDQ6 chip. Interestingly I am having problems with exactly the same type of "D1 Mini" style ESP32 board.

NinoZore commented 1 year ago

i have actualy the same problem and there is no clue i can find on internet ,D0WDQ6 work perfectly but D0WD-V3 wont work with ble i work with 2 similar uControler from the same order(https://www.amazon.fr/AZ-Delivery-NodeMCU-développement-dénergie-successeur/dp/B071P98VTG/ref=sxin_16_ci_mcx_mi_sr_m_il?__mk_fr_FR=ÅMÅŽÕÑ&content-id=amzn1.sym.21edd561-171c-4ac1-9264-688591dfe037%3Aamzn1.sym.21edd561-171c-4ac1-9264-688591dfe037&crid=1TDG8VFWHHCJM&cv_ct_cx=esp32+dev+c&keywords=esp32+dev+c&pd_rd_i=B071P98VTG&pd_rd_r=84561d0a-a525-47c2-9288-4ef63863e097&pd_rd_w=CWQt3&pd_rd_wg=8key4&pf_rd_p=21edd561-171c-4ac1-9264-688591dfe037&pf_rd_r=7C1Q090BKCAK0H03DXG7&qid=1678713442&sbo=EO%2BcdOgoisx3waG5xqcZQA%3D%3D&sprefix=esp32+dev+c%2Caps%2C81&sr=1-3-b3105280-ed1c-4fae-986f-6c4501b9525e)

zapta commented 1 year ago

I can't say with high confidence that I don't have much information, but it seems that when I use actual Espressif modules, I don't encounter the problem. Again, I can't say it for sure and couldn't identify differences in fuses or others between Espressif and non Espressif modules.

This is what I used for the PCB I designed: https://jlcpcb.com/partdetail/EspressifSystems-ESP32_WROOM_32UN4/C328062

On Mon, Mar 13, 2023 at 6:18 AM Nino Nicolas @.***> wrote:

i have actualy the same problem and there is no clue i can find on internet ,D0WDQ6 work perfectly but D0WD-V3 wont work with ble i work with 2 similar uControler from the same order( https://www.amazon.fr/AZ-Delivery-NodeMCU-développement-dénergie-successeur/dp/B071P98VTG/ref=sxin_16_ci_mcx_mi_sr_m_il?__mk_fr_FR=ÅMÅŽÕÑ&content-id=amzn1.sym.21edd561-171c-4ac1-9264-688591dfe037%3Aamzn1.sym.21edd561-171c-4ac1-9264-688591dfe037&crid=1TDG8VFWHHCJM&cv_ct_cx=esp32+dev+c&keywords=esp32+dev+c&pd_rd_i=B071P98VTG&pd_rd_r=84561d0a-a525-47c2-9288-4ef63863e097&pd_rd_w=CWQt3&pd_rd_wg=8key4&pf_rd_p=21edd561-171c-4ac1-9264-688591dfe037&pf_rd_r=7C1Q090BKCAK0H03DXG7&qid=1678713442&sbo=EO%2BcdOgoisx3waG5xqcZQA%3D%3D&sprefix=esp32+dev+c%2Caps%2C81&sr=1-3-b3105280-ed1c-4fae-986f-6c4501b9525e https://www.amazon.fr/AZ-Delivery-NodeMCU-d%C3%A9veloppement-d%C3%A9nergie-successeur/dp/B071P98VTG/ref=sxin_16_ci_mcx_mi_sr_m_il?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&content-id=amzn1.sym.21edd561-171c-4ac1-9264-688591dfe037%3Aamzn1.sym.21edd561-171c-4ac1-9264-688591dfe037&crid=1TDG8VFWHHCJM&cv_ct_cx=esp32+dev+c&keywords=esp32+dev+c&pd_rd_i=B071P98VTG&pd_rd_r=84561d0a-a525-47c2-9288-4ef63863e097&pd_rd_w=CWQt3&pd_rd_wg=8key4&pf_rd_p=21edd561-171c-4ac1-9264-688591dfe037&pf_rd_r=7C1Q090BKCAK0H03DXG7&qid=1678713442&sbo=EO%2BcdOgoisx3waG5xqcZQA%3D%3D&sprefix=esp32+dev+c%2Caps%2C81&sr=1-3-b3105280-ed1c-4fae-986f-6c4501b9525e )

— Reply to this email directly, view it on GitHub https://github.com/espressif/esp-idf/issues/10660#issuecomment-1466131918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQVMQOJ5NMXSAE7DZ3DRQTW34NDZANCNFSM6AAAAAAULUETKE . You are receiving this because you were mentioned.Message ID: @.***>

pablopeu commented 1 year ago

Adding another case to the thread, ESP32-D0WD-V3 chip fails and ESP32-D0WDQ6(rev1) works as expected. Simple arduino app for emulating a PC keyboard using the https://github.com/T-vK/ESP32-BLE-Keyboard library.

soufiane707 commented 4 months ago

another case of ESP32-D0WD-V3 failing to connect with my ps5 dual sense controller via bluetooth but other esp32's worked

esp-zhp commented 4 months ago

@soufiane707 This seems to be a new issue. Could you create a new GitHub issue and provide the complete log?