esp-at-skill

Build, customize, and debug Espressif ESP-AT AT-command firmware with verified recipes and API references.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Developing with ESP-AT firmware requires precise knowledge of closed-source AT core APIs, Kconfig options, partition tables, and module-specific pin mappings; guessing any of these leads to non-functional firmware or unresponsive custom commands. This Skill grounds every function signature, configuration symbol, and pin definition in the real esp-at repository headers and documentation, eliminating hallucinated APIs. ## Core Features & Use Cases - Scenario Recipes: Eight step-by-step recipes covering local build and flash, AT port pin changes, partition customization, module config overrides, custom AT commands, BLE GATT service customization, OTA upgrades, and AT over SPI/SDIO. - Verified References: Complete API quick reference from components/at/include headers, full Kconfig option tables from main/Kconfig, and 27 categorized pitfalls with wrong/correct code comparisons. - Use Case: Add a custom AT+MYCMD command to ESP-AT firmware for an ESP32-C3 module by following the add_custom_command recipe, which covers the esp_at_cmd_t array, ESP_AT_CMD_SET_INIT_FN registration, AT_CUSTOM_COMPONENTS environment variable, and linker flags. ## Quick Start Ask the AI to add a custom AT command to ESP-AT firmware or to build and flash ESP-AT for a specific module such as ESP32-C3 MINI-1.

Frequently Asked Questions about esp-at-skill

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

FAQPage Schema
How do I add a custom AT command to ESP-AT firmware?

Define an esp_at_cmd_t array with your command callbacks, implement esp_at_custom_cmd_register, and register it with the ESP_AT_CMD_SET_INIT_FN macro. Set the AT_CUSTOM_COMPONENTS environment variable to your component path and add the -u linker flag before running build.py build.

How to build and flash ESP-AT firmware locally?

Clone the esp-at repository with --recursive, run ./build.py install to select platform and module, optionally configure features via ./build.py menuconfig, then run ./build.py build and ./build.py -p PORT flash. Verify by sending AT over the command UART at 115200 baud.

Which chips does ESP-AT support?

ESP-AT supports ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, and ESP32-S2. ESP32-S3 and ESP32-H2 are explicitly not supported by the ESP-AT firmware.

Why is my custom AT command not responding after flashing?

The most common causes are a missing ESP_AT_CMD_SET_INIT_FN macro, an unset AT_CUSTOM_COMPONENTS environment variable, or a missing -u linker option causing the linker to discard the registration function. Also ensure WHOLE_ARCHIVE TRUE is set in the component CMakeLists.txt.

Why does AT+SYSFLASH or AT+FS fail on ESP-AT?

These commands depend on at_customize.bin being flashed to the correct secondary partition address, which varies by chip (for example 0x1E000 for ESP32-C3). Flashing only the factory or OTA binary leaves these features unavailable.

Can ESP-AT use SPI or SDIO instead of UART?

Yes, ESP-AT supports UART, SPI, SDIO, and socket transports selected via the AT_COMMUNICATION_METHOD Kconfig choice. Use corresponding modules like ESP32C3-SPI or ESP32-SDIO and the host-side examples in examples/at_spi_master and examples/at_sdio_host.