Cirkit Designer ya ejecuta firmware compilado para el ESP32 y el ESP32-S3 dentro del navegador, con un emulador fiel a nivel de instrucción que su equipo escribió desde cero en Rust y compiló a WebAssembly. El detalle de la arquitectura salió publicado en el blog de desarrolladores de Espressif en octubre de 2026.
Cirkit Designer es un entorno de desarrollo electrónico que funciona en el navegador. Sirve para diseñar circuitos, escribir firmware y probar proyectos embebidos en simulación. El firmware compilado corre localmente, en el equipo del usuario.
El emulador ejecuta instrucciones Xtensa del chip elegido y reproduce el comportamiento de hardware necesario para arrancar el firmware y conectarlo con los componentes del lienzo. El programa en ejecución se comunica con pantallas, sensores, botones y otros dispositivos simulados mediante GPIO, UART, I2C, SPI, ADC y PWM, sin necesidad de una placa física.
El equipo de Cirkit apostó por emular el hardware en vez de reemplazar las llamadas a la API del firmware por respuestas simuladas. El firmware compilado y sus drivers interactúan con registros de periféricos, interrupciones y transferencias de datos modelados.
Cirkit incluye además un agente de IA que trabaja dentro del mismo entorno. A partir de un prompt inicial, el agente diseña y cablea el circuito, escribe y modifica el firmware y ayuda a diagnosticar problemas, todo en el mismo espacio de trabajo donde el proyecto corre en simulación.
Si un proyecto necesita un componente que todavía no tiene modelo de simulación, el agente puede crearlo e integrarlo al circuito. Diseño del circuito, desarrollo del firmware y extensión del simulador quedan en un mismo flujo de trabajo.
Un rastreador de la Estación Espacial Internacional
Para mostrarlo, el autor del artículo le pidió al agente un dispositivo con ESP32-S3 que siguiera a la Estación Espacial Internacional (EEI). La instrucción fue corta.
Build me an esp32 powered tracker of the ISS, use an ILI9341 for display and make it beautiful.
En español, "constrúyeme un rastreador de la EEI con un esp32, usa una ILI9341 como pantalla y hazlo bonito". Cirkit AI creó el circuito, conectó el ESP32-S3 a la pantalla y escribió el firmware que descarga los datos de la estación y muestra su posición, altitud y velocidad.
El proyecto ISS Space Tracker está abierto en Cirkit Designer y basta iniciar la simulación para verlo funcionando en tiempo real.
Con el rastreador andando, el autor siguió trabajando con el agente para mejorar la interfaz. Agregaron un mapa fotográfico de la Tierra, tarjetas de telemetría legibles y un marcador animado de la estación. Después le pidió mostrar hacia dónde se dirigía la EEI, y el agente sumó una consulta de posiciones previstas para los siguientes 45 minutos, dibujadas como línea punteada junto a una estela azul con las posiciones ya recibidas. Cada actualización redibuja solo las zonas que cambian, así el mapa no desaparece mientras se mueven las lecturas.
El firmware usa WiFiClientSecure y HTTPClient para obtener la posición actual y la prevista desde la API Where the ISS at?. Las coordenadas se dibujan con Adafruit_GFX y Adafruit_ILI9341 a través del periférico SPI por hardware del ESP32-S3. Un JPEG descargado aparte entrega el mapa de fondo, que el firmware decodifica en memoria.
Para probarlo hay que abrir el proyecto en un navegador de escritorio e iniciar la simulación. Tras conectarse a CirkitWifi, el firmware pide la última posición cada diez segundos. La pantalla muestra coordenadas y telemetría, y una estela registra las posiciones recogidas durante la sesión. Una insignia LIVE indica el modo con datos en vivo. Si no hay conexión, un modo DEMO rotulado muestra una órbita ilustrativa.
Firmware simulado conectado a servicios reales
Las peticiones HTTPS del rastreador pasan por la pasarela de red de Cirkit hacia los servicios externos. El firmware del ESP32-S3 procesa las respuestas y controla la pantalla localmente en el navegador. El mismo soporte de red cubre proyectos con HTTP, MQTT, WebSocket y UDP, y la guía de redes de Cirkit explica la configuración.
¿Cómo corre el firmware dentro del navegador?
El flujo de compilación integrado de Cirkit usa Arduino CLI en su servidor para compilar el código del proyecto para la placa ESP32 o ESP32-S3 elegida. El núcleo de Arduino para ESP32 está construido sobre ESP-IDF, así que esos proyectos ya ejecutan código de ESP-IDF dentro del emulador. El soporte para compilar proyectos ESP-IDF directamente en Cirkit viene pronto, según el equipo.
También se pueden subir binarios precompilados compatibles. En los dos casos el firmware corre sin modificaciones en el navegador, donde el emulador ejecuta las mismas instrucciones Xtensa que correrían en el chip físico.
Hacer correr firmware sin modificar fue, según el equipo, uno de los desafíos de ingeniería más difíciles. El emulador tiene que ejecutar el código ROM de Espressif, soportar el bootloader de segunda etapa mientras carga la aplicación y reproducir el hardware necesario para FreeRTOS y la aplicación. Cada etapa depende de que el estado del procesador, los accesos a memoria y el comportamiento de los periféricos sean correctos antes de que la aplicación pueda arrancar.
Ya en marcha, el firmware habla con los componentes simulados mediante las interfaces de hardware emuladas. Puede leer un sensor por I2C, mandar comandos a una pantalla por SPI o mover un servo con PWM, y los modelos de componentes responden a esas operaciones.
Los dos modelos de chip soportan:
- GPIO, UART, I2C, SPI y ADC
- Temporizadores y PWM por LEDC
- Transmisión RMT para NeoPixels
Las capacidades de los periféricos y la asignación de pines cambian entre ambos chips. Para la placa del ejemplo, la documentación de ESP32-S3 de Cirkit lista las funciones soportadas y sus limitaciones prácticas.
Por qué corre en el equipo del usuario
El equipo quería que la interacción con el circuito respondiera rápido, sin la latencia de mandar cada entrada a un servidor y esperar el resultado.
Una alternativa era correr QEMU, un emulador de código abierto que modela procesadores, memoria y dispositivos de hardware, en los servidores de Cirkit. Habría ejecutado el firmware, pero cada pulsación de botón tendría que viajar al servidor y la actualización de pantalla volver de regreso. La respuesta del circuito habría dependido de la conexión del usuario.
Con el emulador de Cirkit, el firmware y los componentes simulados corren juntos en el navegador. Botones, lecturas de sensores y actualizaciones de pantalla se resuelven en el dispositivo del usuario.
La arquitectura también escala mejor. Cada equipo aporta la capacidad de cómputo de su propio proyecto, así que no hace falta emular una CPU en el servidor por cada sesión. Según Cirkit, eso les permite ofrecer la simulación de ESP32 gratis.
Construir el emulador le tomó al equipo, que es pequeño, cerca de ocho meses, incluida la compatibilidad con la ROM, el comportamiento de las ventanas de registros de Xtensa y la optimización de rendimiento. Su resumen de ingeniería describe ese trabajo.
La compilación con Arduino CLI, las peticiones al agente de IA y el acceso a servicios de internet siguen pasando por el servidor de Cirkit. La ejecución del firmware y la comunicación con los componentes simulados ocurren localmente.
¿Qué pasa si falta un componente?
Si el proyecto necesita un componente que Cirkit todavía no simula, se le puede pedir al agente que lo construya. Cirkit AI crea el modelo de simulación del componente con su comportamiento, su protocolo de comunicación y su parte visual interactiva. Después se conecta al circuito, se prueba con firmware y se ajusta junto al agente. El componente queda disponible para otros proyectos.
La guía para construir componentes de Cirkit explica el proceso.
Una pantalla LCD I2C hecha por el agente
El tutorial de la LCD I2C de 16x2 muestra un modelo de pantalla creado por Cirkit AI que recibe comandos I2C del firmware y dibuja los caracteres correspondientes. Un sketch de prueba manda Hello World a la LCD por I2C. En el tutorial, el usuario le pide al agente afinar el espaciado entre caracteres y agregar los números que faltaban, y desarrolla el modelo contra un firmware en ejecución. El tutorial incluye la implementación para revisarla y adaptarla.
Lo que viene
Con la simulación de ESP32 y ESP32-S3 disponible, el soporte para ESP32-C3 y ESP32-C6 está anunciado para pronto. El equipo también trabaja en que el agente pueda correr el firmware, observar cómo se comporta el proyecto, encontrar problemas y corregir circuito y firmware de forma iterativa.
Más adelante, la meta declarada es llevar al desarrollador desde la idea inicial hasta un prototipo físico, uniendo diseño de circuitos y simulación con la compra de componentes, el armado del hardware y las pruebas en dispositivos reales.






