- test/esp32/test_esp32_lib_bridge.py: 28-test suite for ESP32 emulation via libqemu-xtensa.dll (GPIO, UART, ADC, pinmap, DLL symbols, manager API) - test/esp32/test_arduino_esp32_integration.py: 13-test integration suite simulating Arduino Uno ↔ ESP32 serial communication (LED_ON/OFF, PING/PONG, GPIO transitions, rapid burst, unknown command resilience) - sketches/blink_lcgamboa/: IRAM/DRAM-safe blink firmware (5× GPIO2 toggle) - sketches/serial_led/: ESP32 firmware responding to serial commands over UART0 - sketches/arduino_serial_controller/: Arduino Uno sketch for serial LED control - sketches/blink_qemu.ino: reference blink sketch for stock QEMU - binaries_lcgamboa/: pre-compiled 4 MB merged flash images for QEMU (blink_lcgamboa + serial_led, arduino-esp32 2.0.17 + FlashMode=dio) - .gitignore: exclude DLL/ROM binaries (too large) and .elf/.map build artifacts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| binaries | ||
| binaries_lcgamboa | ||
| qemu-wasm | ||
| sketches | ||
| web | ||
| README.md | ||
README.md
ESP32 Emulation Test Suite
This directory contains tests for ESP32 emulation using QEMU compiled to WebAssembly.
Structure
sketches/- Arduino sketches for ESP32 (copied from test/esp32/sketches)binaries/- Compiled firmware binaries (.bin,.elf)qemu-config/- QEMU machine configurationsscripts/- Build and test scriptsweb/- HTML/JS wrapper for WebAssembly QEMU
Prerequisites
- QEMU fork built as WebAssembly (see
wokwi-libs/qemu-lcgamboa/) - ESP32 toolchain (arduino-cli with esp32 platform)
- Emscripten SDK (for building QEMU to WASM)
Initial Test
The first test is to compile the blink sketch and run it in QEMU (native) to verify basic GPIO emulation.
Goals
- Emulate GPIO pins (digitalWrite, digitalRead)
- Emulate Serial output (UART)
- Emulate WiFi (station and AP modes)
- Emulate other peripherals (SPI, I2C, ADC, etc.)
- Run entirely in browser via WebAssembly