Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Guide · OtherFree

ESP-IDF Programming Guide

Espressif's official documentation for ESP-IDF, the development framework for ESP32 chips: setup, API reference for Wi-Fi, Bluetooth, peripherals, FreeRTOS, OTA and power management, plus debugging guides. Essential once you go beyond the Arduino functions on an ESP32. Free and open source.

GitHub stars

19.1k (espressif/esp-idf)

GitHub · Sept 2026

Latest release

v6.1 (August 2026)

GitHub · Sept 2026

Licence

Apache 2.0

GitHub · Sept 2026

Arduino core for ESP32

3.3.12, 17.4k GitHub stars

GitHub · Sept 2026

Format

Guide

Topic

Other

Provider

Espressif Systems

Time needed

Setup in an hour, reference for months

Level

Intermediate

Access

Free

What ESP-IDF is

ESP-IDF (Espressif IoT Development Framework) is the official framework for writing firmware for Espressif's ESP32 family of chips. It includes the build system, drivers for every peripheral, the Wi-Fi and Bluetooth stacks, networking and MQTT components, over-the-air update support, power management and FreeRTOS, which ESP-IDF uses as its operating system. The Programming Guide is its documentation: a getting started section, an API reference organised by topic, and API guides that explain how things work underneath.

Even if you write your code in the Arduino IDE, you are using ESP-IDF: Espressif's Arduino core for ESP32 is built on top of it. That is why the ESP-IDF guide is the right place to understand what a function really does on your chip.

Is it worth your time?

If you use an ESP32 for more than a weekend, yes. The Arduino functions cover the basics, but questions like "which pins can I use for analogue input while Wi-Fi is on", "why did my board print a panic message", "how do I update firmware over Wi-Fi safely" or "how big should this task's stack be" are answered in the ESP-IDF guide. Pages such as the ADC, GPIO, FreeRTOS, OTA, sleep modes and fatal errors sections are worth reading even before you switch frameworks.

Choosing the right version and chip

The documentation is versioned and has a separate edition for each chip, such as ESP32, ESP32-S3 or ESP32-C3. Use the chip selector at the top of the page, and the stable version unless your project pins another one. Features and pin limits differ between chips, so reading the wrong edition is a common source of confusion.

Getting started

The getting started section offers several routes: an extension for VS Code, an Eclipse-based IDE, or command-line tools. Pick one, build the hello_world and blink examples, and flash them to your board. Expect the first installation to take an hour or so. After that, working through the examples folder is one of the best ways to learn each component.

Prerequisites

You should be comfortable with C, basic command-line use and the ideas of tasks and interrupts. Beginners are better off starting with the Arduino core and opening these docs alongside it.

Free or paid?

ESP-IDF and its documentation are free and open source under the Apache 2.0 licence.

Common questions

Arduino core or ESP-IDF? Start with the Arduino core for speed, and move to ESP-IDF when you need full control of FreeRTOS, power, security or OTA. The ideas carry over.

Does it cover debugging? Yes. The JTAG debugging and fatal errors pages explain how to use a debugger and how to decode a crash backtrace.

Best for: anyone building a real product or final year project on an ESP32.

open sourcecomputer science

Ready to start?

Opens on Espressif Systems in a new tab.

Open resource
Link broken or out of date?

Report a problem

With "ESP-IDF Programming Guide". Only Tauseef reads this.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.