Commit Graph

4 Commits

Author SHA1 Message Date
David Montero Crespo 71616e580d Add end-to-end tests for ESP32 I2C functionality and circuit verification
- Implemented `i2c-esp32-real-firmware.test.ts` to test ESP32 I2C communication via backend and WebSocket.
- Created `load-example-transitions.test.ts` to ensure proper loading of examples between board-less and board-based contexts.
- Added `CircuitVerificationModal.tsx` to display circuit verification results before running simulations.
- Developed `circuitVerifier.ts` to perform pre-flight checks for circuit safety, identifying potential issues like short circuits and component overloads.
- Introduced minimal ESP32 I2C master sketch `esp32_i2c_writer.ino` for testing I2C transactions.
2026-05-12 16:55:15 -03:00
David Montero Crespo 6d56fe9a90 fix(tests): restore Frontend Tests CI — patch stale RP2040 mocks + install-libraries
CI's Frontend Tests workflow had been failing on master for ~15 runs.
Two pre-existing issues, neither related to the SPI refactor in 8b1433d
or the ESP32-CAM work:

1. RP2040Simulator mock missing attachCyw43 method (23 test files)

   PR #126 (8e769f8 "feat(multi-board): add wire-aware cross-board
   interconnect router", merged 2026-04-25) added a Pico-W-specific
   `sim.attachCyw43(bridge)` call inside addBoard(). The 23 test files
   that mock RP2040Simulator with vi.fn weren't updated; whenever a
   test path created a Pico W board the mock threw "TypeError:
   sim.attachCyw43 is not a function" and aborted addBoard.

   Fix: add `this.attachCyw43 = vi.fn()` to every affected mock.
   Also pre-populate `this.spi = { onByte: null, completeTransfer: vi.fn() }`
   so any future SPI-part tests don't trip on the new generic .spi
   adapter from 8b1433d.

2. install-libraries.test.ts payload mismatch

   PR #135 (b1026ec7 "library-version-uninstall", merged 2026-04-29)
   extended `installLibrary(name)` to `installLibrary(name, version?)`
   and now sends `{name, version: version ?? null}` over the wire.
   The test still asserted `{name}` only and failed.

   Fix: assert `{name, version: null}` for the no-version call.

Verified locally: 1161 passed | 1 skipped (was 1117 passed | 44 failed).

Backend E2E "Run HC-SR04 e2e test" is a separate failure that needs
its own investigation — it downloads QEMU binaries from a release and
runs real firmware compilation, which I can't reproduce on Windows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 22:46:32 -03:00
David Montero Crespo 212ecd1bcb refactor: rename components and update prefixes to 'velxio-' for consistency
- Modified the index file to reflect the new naming convention for Velxio components.
- Changed JSX declarations to use 'velxio-' prefix for various components.
- Updated component overrides to replace 'wokwi-' with 'velxio-' for logic gates and other components.
- Adjusted SVG generation script to use 'velxio-' prefix for BMP280 and Raspberry Pi components.
- Marked submodules as dirty in QEMU and RP2040 libraries.
- Added .prettierignore and .prettierrc.json for consistent code formatting.
- Introduced InstrumentComponent with support for Voltmeter and Ammeter, including pin information handling.
2026-04-21 16:45:45 -03:00
David Montero Crespo 54f8f2782b feat: add ESP32 WiFi/BLE emulation with ESP-IDF compilation pipeline
Replace arduino-cli with ESP-IDF 4.4.7 for ESP32 compilation — Arduino-compiled
firmware crashes in QEMU (9-28 reboots) while ESP-IDF boots cleanly (0 reboots).
The new espidf_compiler translates Arduino WiFi/WebServer sketches to native
ESP-IDF C code, compiles with cmake+ninja, and merges into 4MB flash images.

Key changes:
- ESP-IDF compiler: translates WiFi.begin/WebServer to esp_wifi/esp_http_server
- ESP-IDF project template with QEMU-optimized sdkconfig (DIO, 40MHz, no WDT)
- WiFi status parser for ESP-IDF serial logs (wifi_status, ble_status events)
- IoT Gateway HTTP reverse proxy for ESP32 web servers
- WiFi/BLE auto-detection from sketch content + visual status icons
- Static IP 192.168.4.15 matching slirp DHCP first-client range
- Docker: new espidf-builder stage with ESP-IDF 4.4.7 toolchain
- 157 tests covering WiFi/BLE for both ESP32 (Xtensa) and ESP32-C3 (RISC-V)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 20:53:56 -03:00