Esp32 Core Component


Contains startup code, crash handling and additional Esp32-specific support code, including the ESP-IDF SDK.

If you want to tune ESP-IDF to your needs you should run:

make SMING_ARCH=Esp32 sdk-menuconfig

Followed by:


Configuration variables

The following variables may need to be changed if tools are installed in a different location, or if multiple versions are installed. By default, the most current version will be used.


Location of xtensa compiler toolchain


Location of ULP compiler toolchain


Location of ESP32 version of Open OCD JTAG debugging tools.


Location of ESP-IDF python.


default: disabled


This setting is provided for debugging purposes ONLY.

Sming uses a custom event loop to ensure that timer and task callbacks are all executed in the same thread context.

Sometimes this behaviour can cause issues with IDF code. Setting this to 1 will create the event loop in a separate thread, which is standard IDF behaviour.


An empty ESP IDF project is built which generates a set of libraries and headers which the framework can then be built against.

The project is located in project/{SMING_SOC}.

The code for this project is copied from sdk/project.

The default configuration settings are obtained from sdk/config and written to project/{SMING_SOC}/sdkconfig.defaults.

When sdk-menuconfig is run, the project/{SMING_SOC}/sdkconfig is modified. This can be reset using make sdk-config-clean.

If custom settings are required for a project then place these in a separate file and set SDK_CUSTOM_CONFIG to the location, relative to the project source root directory.


Used by

Environment Variables

SoC support

  • esp32

  • esp32c2

  • esp32c3

  • esp32s2

  • esp32s3