velxio/frontend/src
David Montero 835ca6d7a8 fix(esp32): stub network + ntptime modules for MicroPython in QEMU
Inject a compat shim into the raw-REPL prelude that replaces
sys.modules["network"] and sys.modules["ntptime"] with no-op stubs
BEFORE user main.py runs.

Why: the picsimlab QEMU fork's esp32_wifi NIC emulation handles
Arduino's lightweight WiFi.h but not MicroPython's full esp_wifi_init
path. Calling network.WLAN(STA_IF) (which is what every
network-using MP sketch does) drives the firmware to wait on
peripheral status bits QEMU never sets, eventually tripping the
FreeRTOS task watchdog (TG1WDT_SYS_RESET ~26s after boot, or
TG0WDT ~14s if the NIC is partially attached).

With the stub:
  network.WLAN(STA_IF).isconnected() -> False
  network.WLAN(STA_IF).connect(...)  -> no-op
  ntptime.settime()                   -> raises OSError

Sketches that already have try/except around sync_time (which is
most of the 100-days examples) now degrade gracefully: WELCOME +
EYES screens run, TIME and WEATHER screens show their fallback
behaviour, no panic, no reboot.

Doesn't affect Arduino C++ — sketches that #include <WiFi.h> use
real WiFi.begin() and the existing esp32_wifi NIC handles those fine.

A proper fix is to extend the picsimlab WiFi emulation to support
the full ESP-IDF API, but that's a multi-day project. This stub
unblocks the 31 MicroPython examples shipping with network imports.
2026-05-23 23:13:20 +02:00
..
__pro_stub__
…
__tests__ test(snapshots): refresh smart-ui-eyes netlist after circuit was wired 2026-05-23 08:28:08 +02:00
assets
…
components fix(editor): surface QEMU compile failure to the user instead of silent warning 2026-05-23 08:39:26 +02:00
data fix(examples): use hardware I2C (not SoftI2C) in smart-ui-eyes 2026-05-23 18:06:42 +02:00
desktop feat(desktop): skip welcome screen, robust openExternal, in-app nav 2026-05-23 17:57:49 -03:00
hooks refactor(oss-split): remove auth/admin/profile frontend from OSS 2026-05-14 15:31:12 -03:00
i18n feat(import): unify project import — accept .vlx and .zip in both entry points 2026-05-22 20:55:06 +02:00
lib feat(frontend): runtime API base + desktop overlay extension points 2026-05-21 04:50:19 +02:00
pages feat(landing): "Try Simulator Free Online" + download CTA slot below 2026-05-22 03:33:21 +02:00
services feat(boards): expose Raspberry Pi 4 and Pi 5 in the picker (UI + pin wiring) 2026-05-23 04:46:59 +02:00
simulation fix(avr/serial): queue RX bytes so Serial.readStringUntil sees the whole input 2026-05-23 17:50:19 +02:00
store fix(esp32): stub network + ntptime modules for MicroPython in QEMU 2026-05-23 23:13:20 +02:00
tokens feat(landing+theme): multiplier pricing copy + softer canvas 2026-05-13 21:02:48 +02:00
types fix(spice+pipeline): LED visualization, INPUT_PULLUP, ESP32-C3, PWM fade, examples 2026-05-18 21:52:07 -03:00
utils feat(boards): expose Raspberry Pi 4 and Pi 5 in the picker (UI + pin wiring) 2026-05-23 04:46:59 +02:00
velxio-elements
…
App.css
…
App.tsx feat(desktop): hide web nav + redirect / → /editor in Tauri builds 2026-05-22 18:08:33 -03:00
entry-server.tsx
…
index.css feat(auth): welcome email on register + password reset via Odoo mail relay 2026-05-12 17:34:30 -03:00
main.tsx feat(desktop): hide header strip, splash screen, native locale switcher 2026-05-22 19:39:22 -03:00
seoRoutes.ts
…
vite-env.d.ts
…