Golioth and ESP-IDF

Hello everyone! So I am trying to add Golioth to an ESP-IDF example. Specifically the WifiProvisioning example. I first build and install the example without Golioth and all is fine. When I follow the instructions here How to add Golioth to any ESP-IDF project - Golioth to add Golioth, I get an error no such file or directory <wifi_provisioning/manager.h>. This file is a part of the ESP-IDF and located in the components folder. esp-idf\components\wifi_provisioning. These ESP modules and using VSCode are all new to me. Am I missing a config somewhere? Something in the Cmake file? I feel like I need this stuff explained to me like I’m a 5th grader. :rofl:

Hey @mjphillips1981,

Could you please confirm the version of ESP-IDF and Golioth Firmware SDK you are using?

The blog post you mentioned is outdated, particularly step 4, as the golioth.h header file is no longer part of the latest SDK release. However, the instructions in steps 1 through 3 for integrating the Golioth Firmware SDK into the project remain accurate and applicable.

Should all be the latest versions. I just downloaded everything.

ESP-IDF v1.8.1
Golioth 0.15.0

And I have yet to actually add any of the Golioth code. I followed the steps of adding the repo, adding the configs to the sdkconfig file, adding the EXTRA_COMPONENT_DIRS to the project CMake, and adding “golioth_sdk” to the dependencies of the main CMake. I did a complete clean of the project, deleted the autogenerated sdkconfig file and did a build and now the file I mentioned above is not found. It almost seems like the ESP-IDF components folder and the Golioth esp-idf components folder are paths are getting crossed or something.

I guess some questions I have are

  1. where do I find the list/explanations of CONFIG_… that go into the sdkconfig.default file?

  2. Where do I find the list/explanations that go into the set(deps ...)

I have so much to learn. I am used to using tools like the CubeMX for ST where everything is just laid out in front of you. All of these configs and CMake files is just overwhelming. :slight_smile:

I somehow managed to figure out just by trial and error. Needed to add “esp_wifi” and “wifi_provisioning” to the dependencies. But like I questioned above, where do I find what to put in these different configs and such.

set (deps
     "golioth_sdk"
     "esp_wifi"
     "wifi_provisioning"
)

Hey @mjphillips1981,

Great work figuring out the missing dependencies!

With Golioth Firmware SDK v0.15.0, you should use ESP-IDF v5.3 according to the release notes.

Configuration symbols are defined using Kconfig language, usually, symbols are grouped and placed in different Kconfig files. In the Firmware SDK, those Kconfig files and their locations are:

  • src/Kconfig
  • src/Kconfig.authentication
  • src/Kconfig.coap
  • src/Kconfig.logging

For other dependencies, such as esp_wifi, it can be found in the components folder: components/esp_wifi/Kconfig.

ESP-IDF uses esp-idf-kconfig package that is based on kconfiglib, which is a Python extension to the Kconfig system.

Due to the different workflows used by ESP-IDF and Zephyr compared to CubeMX for ST, it will take some time to adjust and become familiar with using Kconfig and CMake. The effort is well worth it. :slight_smile:

1 Like

Ha… See I’m dumb to this stuff. I gave you the version of the extension (1.8.1). The ESP-IDF version is 5.3.1. But I think the info you gave me definitely helps!! Thank you. I will keep trying to move forward.

1 Like