esp-adf-skill

Generates ESP-ADF audio pipeline firmware code for ESP32 series chips.

28|3|Updated Jun 24, 2026
One-click install
npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-adf-skill-jasonyang170
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: esp-adf-skill
Source: https://github.com/JasonYANG170/esp-dev-skill/tree/main/repos/esp-adf
Command: npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-adf-skill-jasonyang170

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developing audio applications with Espressif's ESP-ADF framework requires precise knowledge of pipeline topology, element lifecycle, board-level Kconfig symbols, and version compatibility; mistakes cause silent failures, distorted playback, or build errors. This Skill grounds AI-generated firmware code in the real ESP-ADF repository documentation, headers, and examples so agents stop inventing APIs. ## Core Features & Use Cases - Scenario Recipes: 15 step-by-step recipes covering MP3 playback from Flash/HTTP/SD card, WAV/AMR recording, Bluetooth A2DP/HFP, speech recognition (WakeNet/MultiNet/VAD), playlists, LED display service, VoIP/SIP, cloud TTS (Baidu/AWS Polly), OTA, and CLI consoles. - API & Config Reference: Verified function signatures for audio_pipeline, audio_element, streams, codecs, peripherals, and board APIs, plus the full CONFIG_*_BOARD board-selection table and ESP-IDF v5.1–v5.5 compatibility matrix. - Pitfall Prevention: 12 documented critical pitfalls with WRONG/CORRECT code pairs, such as reconfiguring I2S clock after AEL_MSG_CMD_REPORT_MUSIC_INFO and the stop → wait_for_stop → terminate shutdown sequence. - Use Case: Ask the agent to build an internet radio on an ESP32-S3-Korvo-2 board; it follows the HTTP MP3 recipe, wires http_stream → mp3_decoder → i2s_stream, selects the correct board Kconfig, and produces a buildable idf.py project. ## Quick Start Ask the AI agent to create an ESP-ADF project that plays an MP3 file from an SD card on your specific ESP32 board, and it will load the matching recipe and generate the complete firmware code.

Frequently Asked Questions about esp-adf-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I play an MP3 file with ESP-ADF?

Create an audio pipeline linking a source stream (http_stream, fatfs_stream, or a custom read callback) to mp3_decoder and an i2s_stream writer, then call audio_pipeline_run. Initialize the codec first with audio_board_init and audio_hal_ctrl_codec in DECODE mode.

How to fix ESP32 audio playing at wrong speed or pitch?

The I2S clock was not updated after decoding. Listen for AEL_MSG_CMD_REPORT_MUSIC_INFO from the decoder, read the real sample rate with audio_element_getinfo, then call i2s_stream_set_clk with the actual rate, bits, and channels.

Which ESP-IDF versions are compatible with ESP-ADF?

ESP-ADF master works with ESP-IDF release/v5.1 through v5.5; IDF master is not guaranteed compatible. ESP-ADF release/v2.7 supports IDF v5.1–v5.3, while release/v2.8 extends support to v5.5.

Why does my ESP-ADF build fail to find mp3_decoder.h?

The codec headers live in the esp-adf-libs precompiled submodule, which is missing without a recursive clone. Run git submodule update --init --recursive in the ESP-ADF repository to fetch esp-adf-libs and esp-sr.

Can ESP32-S2 use Bluetooth A2DP audio with ESP-ADF?

No, ESP32-S2 only supports BLE and lacks Classic Bluetooth, so A2DP and HFP are unavailable. Use ESP32, ESP32-S3, or ESP32-C3 for bluetooth_service A2DP Sink/Source or HFP applications.

How do I properly stop and destroy an ESP-ADF audio pipeline?

Call audio_pipeline_stop, audio_pipeline_wait_for_stop, then audio_pipeline_terminate in that order. For cleanup, remove the listener first with audio_pipeline_remove_listener, destroy the event interface, then deinit the pipeline and each element.