2a596b9fcb
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.
19 lines
769 B
Plaintext
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
|