ESP32 con Docker: compila firmware reproducible y deja que los agentes de IA trabajen solos

ESP32 Firmware Development with Docker Sandboxes

El desarrollo de firmware para ESP32 se simplifica con Docker y Docker Sandboxes. La imagen oficial `espressif/idf` garantiza compilaciones reproducibles, mientras que los sandboxes (microVM con su propio kernel y daemon de Docker) permiten que agentes de IA como Claude Code trabajen de forma autónoma y segura, flasheando hardware real a través de un puente serie por red (RFC2217). El artículo detalla un flujo de trabajo práctico: compilación con la imagen oficial, entornos paralelos para firmware nuevo y legacy, y sesiones de IA supervisadas con políticas de red y aislamiento de credenciales.

Un agente que decida hacer `curl` de tu firmware a un lugar inesperado simplemente no puede.
  1. mzakharo1

    Recientemente añadimos soporte para ESP32-C5/C6 con WiFi al QEMU de Espressif. Poder levantar máquinas virtuales acelera bastante el desarrollo. Ahora podemos tomar nuestra imagen de firmware de producción y ejecutarla sin modificaciones en QEMU. No más esperas para flashear placas, levantando múltiples placas al instante.

    https://github.com/CognitiveSystemsCorp/qemu_esp

  2. kooi

    ¿Parece un poco sobrecargado?

    Estamos usando Rust con embassy en la plataforma ESP y es bastante maravilloso.

    Tenemos todos los módulos de periféricos aislados y tenemos módulos no periféricos compatibles con un planificador de escritorio de embassy y periféricos simulados.

    Los arneses son lo suficientemente buenos ahora como para que puedas usarlos en un bucle con el hardware real.

    El siguiente paso es conectar un Saleae y hacer que el agente pruebe contra señales reales.

  3. jakewins

    Probé esto hace un tiempo y descubrí que al final era más fácil simplemente darle al agente de firmware una máquina dedicada; hay mucho de bajo nivel al que quieres acceder para iterar en el firmware, y las capas de Docker confundían al agente cuando depuraba fallos, cuelgues, caídas de tensión, etc.

    Combinar una pequeña máquina dedicada con un concentrador USB que admita el ciclo de encendido por puerto permite que el agente itere y desatasque cosas sin intervención humana durante períodos muy largos (días). Obviamente, cualquier software producido de esa manera es inutilizable, pero es increíble para depurar. El agente obtiene un osciloscopio programable, ciclo de encendido y periféricos (también con ciclo de encendido) que emulan las diversas cosas con las que nuestro producto se comunica en el mundo real.

    TL;DR: Descubrí que las capas de Docker solo causaban confusión al agente, y darle un portátil viejo era mucho más simple y mucho más potente.

Más de este día

2026-08-22