ESP32: Difference between pio run -t menuconfig vs. idf.py menuconfig

Hi,
I try to migrate some of my projects from standalone espressif-tools to Vscode embedded PIO.

However: The configuration of ESP32 projects seems to be somewhat out of sync.
When I run:

pio run menuconfig vs. idf.py menuconfig

the pio configuration is missing 4 entries:

  • BLUETOOTH
  • ESP32 BLE Mesh Support
  • ESP32-specific
  • Power management

So I am not able to create bluetooth based projects with the PIO toolchain. Furthermore: When I open an sdkconfig, which was created with core espressif tools, and save it within PIO, all configuration items from those 4 sections are missing in the resulting sdkconfig. The project is now broken and does not longer compile.

Are there some more options in platformio.ini needed, to get those configuration settings?

1 Like

Hello again,

nobody here with any idea?
Right now it looks somewhat stupid for me, using PIO, when I need a own Espressif-IDE installation in parallel, to be able to configure new projects.

Pretty sure that if you use idf.py it uses the ESP-IDF installation that you have manually set up, not the one PlatformIO uses. Those are at different versions (different IDF_PATH so to say) and have inherently different options. Only use pio run -t menuconfig to change the options to change the ESP-IDF options for a PlatformIO project so that it uses the right ESP-IDF version that PlatformIO uses…

Yes, I know, that they are different. That is the problem. I need to use idf.py because pio run -t menuconfig does not offer bluetooth configuration and other things.
In addition: When I have a working espidf project, and open the configuration with pio run -t menuconfig and save the configuration without changing anything, the configuration is broken.
All Bluetooth settings are gone, the project can’t be compiled any longer.

Can’t reproduce that behavior If I go into the premade example espidf-ble-eddystone and execute pio run -t menuconfig, it’s clearly there

You can clearly see all “missing” 4 in the screenshot.