Files
L'électron rare 2a596b9fcb feat(idf): POST /game/scenario hot-load
game_endpoint gains a /game/scenario handler that accepts a Runtime 3
IR JSON (<=64 KiB), validates schema_version + non-empty steps array,
rotates the existing scenario to .bak, writes to LittleFS at
/littlefs/scenario.json on partition 'storage', and reboots after
the HTTP response flushes so the engine picks up the new IR.

ota_server bumps max_uri_handlers 8 -> 16 to fit the extra handlers
(/game/scenario plus headroom).

sdkconfig.qemu disables PSRAM + esp-sr so the firmware boots inside
qemu-system-xtensa without crashing on the unemulated octal PSRAM.
QEMU_HOWTO.md documents the workflow and the WiFi/Ethernet gap that
still blocks full HTTP smoke under emulation.
2026-05-24 10:46:29 +02:00

19 lines
769 B
Plaintext

# QEMU-specific overrides. Layered on top of sdkconfig.defaults via
# idf.py -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.qemu" build qemu
# Reasons:
# - QEMU's esp32s3 machine does not emulate Octal PSRAM → boot crashes on
# "PSRAM chip not found" without these overrides.
# - WiFi / BT radios are stubbed in QEMU, the Ethernet open_eth NIC stands in
# for IP connectivity (hostfwd=tcp::8580-:80).
# - esp-sr / wake-word buffers depend on PSRAM, so they must also be disabled.
CONFIG_SPIRAM=n
CONFIG_SPIRAM_MODE_OCT=n
CONFIG_SPIRAM_SPEED_80M=n
# esp-sr disabled because its buffers expect PSRAM. The HTTP scenario endpoint
# we're smoke-testing has no dependency on the voice pipeline.
CONFIG_USE_AFE=n
CONFIG_USE_WAKENET=n
CONFIG_USE_MULTINET=n