---
title: Introducing the Notecard ESP-IDF Component
description: We're excited to announce the release of the ESP-IDF component for Notecard.
source_url: https://dev.blues.io/blog/introducing-esp-idf-component/
canonical_url: https://dev.blues.io/blog/introducing-esp-idf-component/
markdown_url: https://dev.blues.io/blog/introducing-esp-idf-component.md
---

# Introducing the Notecard ESP-IDF Component

![Introducing the Notecard ESP-IDF Component banner](https://dev.blues.io/images/blog/posts/introducing-esp-idf-component/banner.png?v=63a1b584)

November 17, 2025

## We're excited to announce the release of the ESP-IDF component for Notecard.

- [Announcement](https://dev.blues.io/blog/tag/announcement)

[![Alex Bucknall](https://dev.blues.io/images/blog/authors/alex-bucknall.jpeg?v=92d47efd)](https://dev.blues.io/blog/author/alex-bucknall/)

[Alex BucknallStaff Developer Experience Engineer](https://dev.blues.io/blog/author/alex-bucknall/)

If you're developing an IoT solution, you will likely have evaluated Espressif's ESP32 family of microcontrollers. Their vast selection of features and affordable price points make them a popular choice for IoT applications. Espressif's [ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/index.html) is their official development framework for the ESP32, providing a robust foundation for building professional projects.

![ESP32 development board](https://dev.blues.io/images/blog/posts/introducing-esp-idf-component/esp32.png?v=4150b765)

Today, we're excited to introduce our official ESP-IDF component, [note-espidf](https://github.com/blues/note-espidf), making it easier than ever to add robust multi-RAT connectivity to your ESP32-based projects.

## What is the Notecard ESP-IDF Component?

[note-espidf](https://github.com/blues/note-espidf) is our official ESP-IDF component for communicating with the Notecard over serial or I2C interfaces. This component is specifically designed for developers who want to leverage the full power of ESP-IDF's advanced features while maintaining a simple, and easy to use, API for the Notecard.

Under the hood, the component uses the [note-c](https://github.com/blues/note-c) SDK to communicate with the Notecard. This means that you can use the same API for the Notecard as you would with the other Blues firmware libraries, such as [note-zephyr](https://github.com/blues/note-zephyr).

You can find the component along with a complete set of examples on the [ESP-IDF Component Registry](https://components.espressif.com/components/blues/notecard).

![ESP Registry logo](https://dev.blues.io/images/blog/posts/introducing-esp-idf-component/esp-registry.jpg?v=312af473)

## Why use the ESP-IDF for building IoT products?

The ESP-IDF provides a robust foundation for building professional IoT applications, offering:

- **FreeRTOS integration** for real-time multitasking
- **Advanced memory management** and optimization tools
- **Professional debugging capabilities** with comprehensive logging
- **Extensive hardware abstraction layers** for precise control
- **A comprehensive build system** for all ESP32 devices and configurations

On top of this, the ESP-IDF also supports the ESP component registry, a vast library of third-party components that can be easily integrated into your project. These components include sensor drivers, communication protocols, as well as our new Notecard component.

## Supported ESP32 Devices

The Notecard ESP-IDF component supports the entire ESP32 family, including:

- ESP32
- ESP32-S2
- ESP32-C3
- ESP32-S3
- ESP32-C2
- ESP32-C6
- ESP32-H2
- ESP32-P4
- ESP32-C5
- ESP32-C61

While we ensure that the Notecard component is compatible with **ESP-IDF 5.5** and later, it may also work with previous versions.

## Features and Benefits

### Configuration for I2C and UART

The component provides pre-configured macros that handle setup:

```c
// I2C configuration
notecard_config_t config = NOTECARD_I2C_CONFIG_DEFAULT();

// UART configuration
notecard_config_t config = NOTECARD_UART_CONFIG_DEFAULT();
```

By default, these macros will configure the ESP32 to match the pinout on [Adafruit's ESP32 Feather](https://www.adafruit.com/product/5400), which works great with our [Notecarrier F](https://shop.blues.com/products/notecarrier-f). If you're using a different ESP32 DevKit, you can easily override the default configuration.

![Adafruit ESP32 Feather pinout](https://dev.blues.io/images/blog/posts/introducing-esp-idf-component/adafruit-esp32-v2.png?v=373b0a11)

### Flexible Customization

When you need more control, the component allows you to override any parameter:

```c
// Custom I2C configuration
notecard_config_t config = NOTECARD_I2C_CONFIG_DEFAULT();
config.i2c.port = 0;
config.i2c.sda_pin = 22;
config.i2c.scl_pin = 20;
config.i2c.frequency = 100000;
config.i2c.address = 0x17;
config.i2c.internal_pullup = false;
```

### FreeRTOS Integration

The component is designed with FreeRTOS in mind, ensuring thread safe memory allocation and task management. This is critical for applications that need reliable, concurrent operation.

### Kconfig Configuration

All default parameters are also configurable through ESP-IDF's standard configuration system, `menuconfig`:

```bash
idf.py menuconfig
```

This integration means you can adjust Notecard settings through the same UI you use for all other ESP-IDF components.

![menuconfig Notecard configuration](https://dev.blues.io/images/blog/posts/introducing-esp-idf-component/esp-kconfig.png?v=5c9172cd)

### Outboard Firmware Update (ODFU) Support

Out of the box, Notecard supports [Outboard Firmware Update](https://dev.blues.io/notehub/host-firmware-updates/notecard-outboard-firmware-update.md) (ODFU) for ESP32 devices. This means that you can update the firmware of your ESP32 directly from Notecard, adding a layer of security and flexibility to the deployment and maintenance of your IoT products.

Check out the [ESP32 ODFU Example](https://dev.blues.io/notehub/host-firmware-updates/notecard-outboard-firmware-update.md#esp32-example) for more information on how to use ODFU with the ESP32.

## Getting Started Examples

The component includes a streamlined project creation process. With just one command, you can create a complete working example:

```bash
idf.py create-project-from-example "blues/notecard:basic_usage_i2c"
```

## Professional Development Experience

The component also integrates seamlessly with the VS Code ESP-IDF extension, providing:

- **Integrated building, flashing, and monitoring** through VS Code
- **Real-time serial output** for logging
- **Debugging tools** for tracing and troubleshooting
- **Project templates** that follow ESP-IDF best practices
- **Dependency management** for easily managing components and libraries

## When to Choose ESP-IDF Over Arduino

While our [note-arduino](https://dev.blues.io/tools-and-sdks/firmware-libraries/arduino-library.md) library remains popular for rapid prototyping, the ESP-IDF component is ideal when you need:

- **Deterministic real-time behavior** for industrial applications
- **Advanced memory management** for resource-constrained devices
- **Professional debugging tools** for complex applications
- **Custom hardware drivers** and precise timing control
- **Production-scale deployment** with advanced security features

## Looking Forward

The Notecard ESP-IDF component represents our commitment to supporting professional IoT developers who need the full power of ESP-IDF. Whether you're building industrial monitoring systems, remote asset tracking, or machine learning applications, this component provides the foundation you need.

Check out the [complete documentation](https://dev.blues.io/tools-and-sdks/firmware-libraries/esp-idf-library.md) and join thousands of developers who are building the next generation of connected devices with Notecard and the ESP32.
