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

AT Firmware does not build when using Bluedroid for ESP32-C6

Open JHedgesBartec opened this issue 10 months ago • 1 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

v4.0.0.0

Operating System used

Linux

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

None

What is the expected behavior?

When changing the Bluetooth Host from Nimble to Bluedroid from menuconfig -> Component config -> Bluetooth -> Host to "Bluedroid - Dual-mode" the AT-Firmware builds for the ESP32-C6 target. Bluedroid host is required to satisfy the Bluetooth SIG certification. It is not expected to disable blufi when using Bluedroid

What is the actual behavior?

Application fails to build with blufi issues idf_py_stdout_output_77817.log Disabling blufi support from menuconfig -> Component config -> AT -> AT blufi command support then fails to build with nimble issues, though it is not expected to disable blufi when using Bluedroid idf_py_stdout_output_83613.log

Steps to reproduce

  1. Clone the repo from the v4.0.0.0 release branch using git clone --branch v4.0.0.0 --recursive https://github.com/espressif/esp-at.git
  2. Install the tools as per the local compile instructions selecting the ESP32-C6
  3. Switch the Bluetooth Host to Bluedroid using menuconfig
  4. Disable Blufi support using menu config
  5. Build the firmware as per the local compile instructions

Build or installation Logs

Logs too large, see actual behavior for logs.

More Information

No response

JHedgesBartec avatar Apr 03 '24 14:04 JHedgesBartec

I have managed to progress the build by changing the following: Component Config -> Bluetooth -> Host = Bluedroid Component Config -> Bluetooth -> Bluedroid Options -> Include blufi function = enabled Component Config -> Bluetooth -> Bluedroid Options -> Enable Peripheral Preferred Connection Parameters characteristic in GAP service = enabled Component Config -> Bluetooth -> Bluedroid Options -> Enable BLE 4.2 features = enabled

The build is now failing at the linker step trying to link nimble functions even though it is disabled, see: idf_py_stdout_output_115646.log

sdkconfig: sdkconfig.txt

JHedgesBartec avatar Apr 04 '24 10:04 JHedgesBartec

@JHedgesBartec Hello! You cannot modify the default Bluetooth protocol stack. This is because the core code in libesp32c6_at_core.a already uses the default protocol stack. Switching the protocol stack would result in some symbols not being found during the linking phase.

Could you please provide more details about why you need to change it, maybe we can give some suggestions.

ustccw avatar May 17 '24 12:05 ustccw

Direct support from Espressif received. ESP32-C6 should only be built with NimBLE - BT SIG listing identified to allow use of the NimBLE stack.

JHedgesBartec avatar May 20 '24 13:05 JHedgesBartec