Espressif publicó la versión 2.3.0 de la extensión ESP-IDF para VS Code. Trae integración del chat de IA con la salida de las tareas de la extensión, servidores MCP y otras mejoras. Si encuentras un problema o tienes ideas, Espressif pide reportarlas como un issue en GitHub.

Las novedades principales son cuatro.

El resto de los cambios está en las notas de la versión 2.3.0.

¿Qué hace el botón para pedirle ayuda a la IA?

En Visual Studio Code se puede activar el chat y conectarlo a Copilot, a otro proveedor de IA o a modelos propios. Los detalles están en la guía de VS Code para activar las funciones de IA y en la documentación de la vista de chat.

Desde la versión 1.11.0, la extensión permite ejecutar comandos de ESP-IDF directamente desde el chat y ver ahí su salida. Un proyecto se compila escribiendo build the project o #espIdfCommands build en el chat. Los demás comandos de chat están en la documentación de Language Tools.

En la 2.3.0, comandos como ESP-IDF: Build your project ofrecen diagnóstico con IA cuando una tarea falla. Al elegir Ask AI to fix en la notificación de la salida de la tarea, se abre una vista de chat nueva con esa salida incluida en un prompt para ayudar a encontrar el problema.

Espressif muestra el flujo con un ejemplo.

1. Abre un proyecto ESP-IDF con un error de compilación en Visual Studio Code o Cursor. Por ejemplo, llama en main() a una función que no existe. 2. Ejecuta ESP-IDF: Build your project (el ícono de la barra de estado). 3. La tarea de compilación arranca y llega a un punto de falla. Entonces aparece una notificación.

Si la compilación produce un error, aparece esta notificación.

4. Presiona Ask AI to fix. Se abre una vista de chat de IA nueva con la salida de la tarea incluida en el prompt.

Aparece un chat nuevo con la salida de la tarea de compilación.

Compilar, grabar y monitorear una sola partición

El ajuste "idf.partitionToUse" de la extensión elige qué partición usar, entre app, bootloader o partition-table. Al ejecutar ESP-IDF: Build, Flash and Start a Monitor on Your Device (el ícono de la barra de estado), el comando compila el proyecto, graba la partición elegida y abre una sesión de monitor.

Por ejemplo, con "idf.partitionToUse": "app", ese comando compila y graba solo la partición de la aplicación, y después abre el monitor.

La 2.3.0 agrega el comando ESP-IDF: Build App, Flash App and Start Monitor. Hace esas tres tareas sobre la partición App sin tener que fijar "idf.partitionToUse" en el settings.json. Compilar o grabar solo la partición afectada por los cambios puede acortar el tiempo de cada tarea.

Para compilar o grabar una sola de esas particiones también hay comandos separados.

  • ESP-IDF: Build App Only
  • ESP-IDF: Build Bootloader Only
  • ESP-IDF: Build Partition Table
  • ESP-IDF: Flash App Only (UART)
  • ESP-IDF: Flash Bootloader Only (UART)
  • ESP-IDF: Flash Partition Table (UART)

¿Qué servidores MCP registra la extensión?

El Model Context Protocol (MCP) es un estándar abierto que permite a los modelos de IA conectarse con herramientas externas, entre ellas las de la colección de servidores MCP de Espressif. Como explica la documentación de Language Tools de la extensión, la extensión registra servidores MCP remotos para que la vista de chat de VS Code pueda llamar a las herramientas de Espressif sin una entrada aparte en mcp.json.

La extensión aporta dos servidores HTTP.

Estos servidores no necesitan un proyecto ESP-IDF local. Se registran cuando la extensión carga, salvo que idf.extensionActivationMode esté en never en el settings.json de VS Code.

Para activarlos hay que seguir estos pasos.

1. Ejecuta MCP: List Servers desde la paleta de comandos. 2. Si no están corriendo, inicia las dos entradas, Espressif Documentation y ESP Component Registry. 3. VS Code abre un navegador para autenticarse. Inicia sesión con una cuenta de GitHub o de WeChat. Solo se usa un identificador de cuenta anonimizado para aplicar los límites de uso. El detalle está en el artículo sobre el servidor MCP de documentación de Espressif. 4. Si el servidor del Component Registry también pide autenticación, completa ese paso de la misma forma. 5. Abre el chat (View > Chat) para iniciar una sesión.

Tras iniciar sesión, el chat puede usar la búsqueda en la documentación y las herramientas del registro de componentes junto con la herramienta de comandos de ESP-IDF descrita más arriba.

Mejor resolución de símbolos al depurar

Durante una sesión de depuración, el usuario podía ver ?? Unknown Source en la pila de llamadas, o un error que decía que no se encontraban los límites de la función actual.

Fuente desconocida en la pila de llamadas durante una sesión de depuración de ESP-IDF

Antes había que configurar a mano el launch.json para incluir los símbolos de la ROM.

JSON
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "gdbtarget",
      "request": "attach",
      "name": "Eclipse CDT GDB Adapter",
      "imageAndSymbols": {
        "symbolFileName": "/home/user/.espressif/tools/esp-rom-elfs/20241011/esp32s3_rev0_rom.elf",
        "symbolOffset": "0"
      }
    }
  ]
}

O bien ejecutar este comando de gdb en la consola de depuración de VS Code.

Código
add-symbol-file /home/user/.espressif/tools/esp-rom-elfs/20241011/esp32s3_rev0_rom.elf

Ahora el adaptador de depuración carga los archivos gdbinit del proyecto ESP-IDF desde su directorio de compilación al iniciar la sesión. Esos archivos traen instrucciones de configuración de GDB e información de símbolos que permiten ubicar el código fuente sin configuración manual.