Follows the same pattern as test_esp32_spice_analog.mjs and test_esp32_spice_ntc_bridge.mjs: compile an ESP32 sketch on-the-fly via /api/compile/, boot QEMU through the backend WebSocket, and sweep lux levels while verifying analogRead() returns what ngspice solved. The netlist uses the exact photodiode cards emitted by frontend/.../componentToSpice.ts (D_<id> + I_<id>_ph + DPHOTO model), so any drift in the frontend SPICE mapper surfaces here. Validated against the live Docker container — lux=0/1000/2500 produce raw=4095/2854/992, matching the expected 4095/2854/993 within ±1 LSB and monotonically decreasing with brightness as expected. The package-lock.json churn is a pre-existing drift: eecircuit-engine was in package.json but missing from the lock — npm install re-added it. Companion workflow change (registering the test in backend-e2e-tests.yml) lives in a separate commit that requires a PAT with workflow scope to push. |
||
|---|---|---|
| .. | ||
| backend | ||
| esp32 | ||
| esp32-emulator | ||
| multi_board | ||
| pi_arduino_serial | ||
| test_circuit | ||
| docker-errors-2026-04-19.md | ||