esp_iot_framework  v0.1.0-alpha
© 2026 AmakeSasha, distributed under a license Apache-2.0
Core

Modules

 Core
 The ecosystem engine. Provides framework initialization, Wi-Fi configuration, network profile management, and system lifecycle hooks.
 
 Core Extension
 Low-level API exposing NVS storage, FreeRTOS task management, IP event handlers, and internal configuration queries for creating nodes.
 
 Core Macros
 Preprocessor utilities for standardized logging, sequential error checking, and task spawning.
 

Detailed Description

esp_iot_framework_core v0.2.1

A meta-framework for building reliable, node-based IoT frameworks on Espressif Systems devices

esp32esp32s2esp32s3esp32c2esp32c3esp32c6

esp_iot_framework_core is the core component of the framework that handles low-level device infrastructure boilerplate. It ensures the device connects to the network automatically, stores data securely, and runs stably without crashing. It is designed for building network nodes rather than standalone end devices (though the latter is technically possible but not recommended).

Key Features

For an in-depth look, check out the documentation for each section:

Usage for creating nodes

Configure your project's main CMakeLists.txt like this (replace <TEXT> with the desired values, without the <>s themselves):

set(COMPONENT_NAME <COMPONENT_NAME>)
idf_component_register(
SRCS <SOURCE_FILES>
INCLUDE_DIRS <PUBLIC_INCLUDE_DIRS>
PRIV_INCLUDE_DIRS <PRIVATE_INCLUDE_DIRS>
PRIV_REQUIRES <DEPENDENCIES> esp_iot_framework_core
EMBED_FILES <FILES_TO_EMBED>
)
# Required for logging macros
set(comp_target "__idf_${COMPONENT_NAME}")
target_compile_options(${comp_target} PRIVATE "-fmacro-prefix-map=${CMAKE_CURRENT_LIST_DIR}=.")

In the destination device, you will need to specify the path to the component. You can do this using one of the following methods: