Hi everyone,
I’m currently porting a BLE project to the ESP32-C6 using ESP-IDF v5.4, but I’ve run into a significant issue with the NimBLE component in the official Component Registry.
Registry Search Issues: When searching the ESP-IDF Component Registry for "nimble" or "espressif/nimble," no results are returned, or the search seems indexed incorrectly.
Component Manager Failure: Adding espressif/nimble: "^1.6.0" to the idf_component.yml fails because the manager cannot resolve the dependency or the versioning. Same wen using espressif/nimble: "*"
Broken Download Links: Attempting to access direct download links for the component versions results in a 404 error, making it impossible to manually integrate the component as a workaround.
Manual Setup Hurdles: I’ve tried cloning the repository manually, but without a properly pre-configured CMakeLists.txt (specifically tailored for the ESP-IDF build system), the build fails on the ESP32-C6 due to missing FreeRTOS header visibility (e.g., FreeRTOS.h not found), even when dependencies are declared.
The led_strip component - I used for test purposes - works perfectly via the Component Manager, so the environment itself seems fine. It appears there is a specific issue with the NimBLE entry in the registry at the moment.
Has anyone else experienced this recently? Is there a reliable mirror or a "standalone" version of the NimBLE port that includes the necessary idf_component_register CMake logic for the C6?
Any help or a fix for the registry links would be greatly appreciated!
Setup:
Chip: ESP32-C6, IDF Version: v5.4, OS: macOS
Regards Karlheinz
Issue with NimBLE Component in IDF Component Registry (ESP32-C6 / IDF v5.4)
-
nopnop2002
- Posts: 347
- Joined: Thu Oct 03, 2019 10:52 pm
- Contact:
Re: Issue with NimBLE Component in IDF Component Registry (ESP32-C6 / IDF v5.4)
NimBLE is part of the ESP-IDF standard components.
idf_component.yml is not required.
idf_component.yml is not required.
Code: Select all
$ find . -name nimble_port.h -print
./components/bt/host/nimble/nimble/porting/nimble/include/nimble/nimble_port.h
-
MicroController
- Posts: 2661
- Joined: Mon Oct 17, 2022 7:38 pm
- Location: Europe, Germany
Re: Issue with NimBLE Component in IDF Component Registry (ESP32-C6 / IDF v5.4)
Also important to note:
https://docs.espressif.com/projects/esp ... g-sequenceTo begin with, make sure that the NimBLE stack is enabled from menuconfig choose NimBLE for the Bluetooth host.
Re: Issue with NimBLE Component in IDF Component Registry (ESP32-C6 / IDF v5.4)
Hi everyone,
I wanted to give a quick update and say thank you for the helpful hints!
The issue is now resolved. The key takeaway for me (and perhaps for others using ESP-IDF v5.4 with the C3/C6) was:
Native Integration: For this specific version, I didn't need to add NimBLE via the idf_component.yml.
CMake Requirements: In main/CMakeLists.txt, adding bt to the REQUIRES list was the correct way to go, as it automatically pulls in the necessary NimBLE references.
Menuconfig: Enabling Bluetooth and selecting NimBLE as the host in menuconfig is essential to activate the system component. I had already done this before.
Headers: Also, for modern IDF versions, including "nimble/nimble_port_freertos.h" is the correct way to handle the port, while older headers like nimble_port_esp32.h are no longer needed.
Looks good that project will soon building and flashing correctly on my ESP32-C6. Thanks again for pointing me in the right direction!
Best regards, Karlheinz
I wanted to give a quick update and say thank you for the helpful hints!
The issue is now resolved. The key takeaway for me (and perhaps for others using ESP-IDF v5.4 with the C3/C6) was:
Native Integration: For this specific version, I didn't need to add NimBLE via the idf_component.yml.
CMake Requirements: In main/CMakeLists.txt, adding bt to the REQUIRES list was the correct way to go, as it automatically pulls in the necessary NimBLE references.
Menuconfig: Enabling Bluetooth and selecting NimBLE as the host in menuconfig is essential to activate the system component. I had already done this before.
Headers: Also, for modern IDF versions, including "nimble/nimble_port_freertos.h" is the correct way to handle the port, while older headers like nimble_port_esp32.h are no longer needed.
Looks good that project will soon building and flashing correctly on my ESP32-C6. Thanks again for pointing me in the right direction!
Best regards, Karlheinz
Who is online
Users browsing this forum: meta-externalagent and 10 guests