Cirkit Designer, działające w przeglądarce narzędzie do rysowania układów, pisania oprogramowania i ich symulacji, emuluje teraz oryginalny ESP32 i ESP32-S3 instrukcja po instrukcji. Jego założyciel Austin Small opisał, jak to działa, we wpisie na portalu deweloperskim Espressifu z 26 października 2026 roku. Dla majsterkowiczów z ESP32 najważniejsze jest to, że szkic z ekranem, czujnikami i przyciskami sprawdzisz, zanim części trafią na biurko. Symulacja jest bezpłatna.
Jak to działa
Emulator napisano od zera w Ruście i skompilowano do WebAssembly, więc działa na komputerze użytkownika, w karcie przeglądarki. Wykonuje te same instrukcje Xtensa co prawdziwy układ, łącznie z kodem ROM Espressifu i programem rozruchowym drugiego stopnia, a potem FreeRTOS i właściwą aplikację. Peryferia są odwzorowane na poziomie rejestrów, a nie przez podstawianie wyników wywołań API. Sterowniki rozmawiają więc z emulowanymi GPIO, UART, I2C, SPI, ADC, licznikami, PWM z LEDC i RMT, którego używają diody NeoPixel.
Wszystko dzieje się lokalnie, dlatego naciśnięcie przycisku czy odświeżenie ekranu nie czeka na odpowiedź serwera. Kod kompiluje Arduino CLI na serwerach Cirkit, ale można też wgrać zgodny, gotowy plik binarny. Przez serwery idą również zapytania do AI i połączenia z zewnętrznymi usługami w internecie. Projekty sieciowe mogą korzystać z HTTP, MQTT, WebSocket i UDP przez bramkę Cirkit. Bezpośrednie budowanie projektów ESP-IDF ma pojawić się wkrótce.
Według zespołu niewielka grupa pracowała nad emulatorem mniej więcej osiem miesięcy. Najtrudniejsze okazały się zgodność z ROM, okna rejestrów Xtensa i wydajność. Rozważano uruchamianie QEMU na serwerach, ale odrzucono ten pomysł z powodu opóźnień sieci i kosztu emulowania każdej sesji po stronie serwera.
Asystent AI
Cirkit ma też asystenta AI, który łączy układ, pisze i poprawia oprogramowanie oraz pomaga szukać błędów. W przykładzie z wpisu jedno zdanie polecenia wystarczyło do zbudowania na ESP32-S3 lokalizatora Międzynarodowej Stacji Kosmicznej. Urządzenie pobiera przez Wi-Fi bieżące położenie stacji i rysuje je na symulowanym ekranie ILI9341. Jeśli jakiejś części jeszcze nie ma w symulatorze, asystent może napisać dla niej model. We wpisie pokazano w ten sposób zbudowany wyświetlacz LCD 16x2 na I2C.
Co dalej
Obsługa ESP32-C3 i ESP32-C6 ma pojawić się wkrótce. Dla inteligentnego domu to ważne, bo właśnie C6 obsługuje Thread i Zigbee. Zespół chce też, żeby asystent sam uruchamiał oprogramowanie, obserwował wynik i w pętli poprawiał błędy.
Cirkit nie jest jedynym symulatorem ESP32 w przeglądarce. Na tym samym portalu w lipcu przedstawiono otwartoźródłowy Velxio. Cirkit stawia na to, żeby cały emulator działał na komputerze użytkownika, a projektowanie układu, oprogramowanie i symulacja były w jednym miejscu.