To just get going with hacking, a more logical way is to create an Robusto + ESP-IDF project and an idf_component.yml.
Then, a managed_components
-folder would appear with all the components brought in by the ESP-IDF dependency management.
But then we wouldn't learn much.
Instead, this project creates a running system by using the PlatformIO-dependency management:
- Create a normal PlatformIO project (Done. This is that project.)
- Edit the main.c (Done)
- Create a folder called Components (Done, but from here you continue)
- In
platform.ini
- change to the ESP32 you want to update. Find it in Devices. - Install Robusto - Run
pio pkg install --storage-dir ./components --library "robusto/robusto"
- Click the "General->Run menuconfig" task in the PlatformIO task bar.
- In Robusto configuration -> Memory, check "Do memory monitoring", just to have something happen.
- Click "s" and enter to save the configuration.
- The
sdkconfig.az-delivery-devkit-v4
config file is created and will be used in your build. - Run the Upload and Monitor task.
- If there is an ESP32 (of any kind, probably) connected, it will start reporting boot up available memory and warn, as the warning level has been set low.
- It may take a short while as while the esp32_exception_decoder is good in that it reports what line the error happened, it is kind of slow to start.
Lots.
- Because we specified
--storage-dir ./components
in step 4, the dependencies didn't end up in.pio/libdeps/az-delivery-devkit-v4
, but in thecomponents
folder. - We did this, because the menuconfig implementation in PlatformIO for ESP-IDF does not look in
.pio/libdeps/az-delivery-devkit-v4
for KConfig (menu items) and KConfig.projbuild (top menu items) -files. - So if we hadn't done this, the esp_modem component would have failed to build.
- This because it requires the CONFIG_ESP_MODEM_CMUX_DELAY_AFTER_DLCI_SETUP1 setting to be set to something.
And the menuconfig application is what is generating those settings, step 8 above. - But wait, a
managed_components
folder appeared with RadioLib in it even though no PlatformIO dependency was there?
That, friends is actually a mystery. Perhaps the ESP-IDF subsystem reacts to the presence of the idf_component.yml.
Footnotes
-
Note that menuconfig adds CONFIG_ to all defines it..defines. ↩