# How to create an ESP-IDF component

DevFeed: [How to create an ESP-IDF component](<https://devfeed.tech/articles/how-to-create-an-esp-idf-component-13673.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2024/12/how-to-create-an-esp-idf-component/>)

Author: John Lee

Published: 2024-12-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Development](<https://devfeed.tech/topics/development.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [components](<https://devfeed.tech/tags/components.md>), [driver](<https://devfeed.tech/tags/driver.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp-idf-component](<https://devfeed.tech/tags/esp-idf-component.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [i2c](<https://devfeed.tech/tags/i2c.md>), [library](<https://devfeed.tech/tags/library.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [project](<https://devfeed.tech/tags/project.md>), [registry](<https://devfeed.tech/tags/registry.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [sensor](<https://devfeed.tech/tags/sensor.md>)

## AI overview

This tutorial explains how to create and add project components in ESP-IDF. It covers component structure, placement in an application or separate project, and an example sensor driver for an I2C device using an ESP32-C3 development board with an integrated SHTC3 sensor.

## Source excerpt

Using a monolithic architecture to develop complex applications tightly integrated with all the business logic, peripheral drivers, protocols, cloud connectivity, and so on, might sound like a nightmare. Yet, this is common in embedded systems, because it helps keep the resource overhead to the minimum. Inevitably, such approach makes collaborative development, maintenance, and reuse of code challenging to say the least.