-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathsdkconfig.defaults.atoms3
More file actions
71 lines (66 loc) · 3.74 KB
/
Copy pathsdkconfig.defaults.atoms3
File metadata and controls
71 lines (66 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# M5Stack AtomS3 (no PSRAM) — slim profile.
# Selected by `make build BOARD=atoms3`.
#
# AtomS3 (product C014) is built on the ESP32-S3FN8 module: 8 MB external
# SPI flash, *no* PSRAM, 512 KiB internal SRAM. Drops every PSRAM-only
# feature (realtime AI conversation, BLE audio streaming, RTP receiver,
# camera + QR) and keeps the avatar / jtts / nekomimi LED / BLE+HTTP
# settings UI running from internal RAM.
#
# Pair with the Atomic ECHO BASE for jtts speech output and the nekomimi
# LED chain on GPIO38 (same as AtomNyan).
# --- PSRAM ---------------------------------------------------------------
# The N8 die has none — turn the SPIRAM driver off entirely so heap_caps
# allocators don't try to fall through to a non-existent pool and so the
# bootloader's PSRAM init step is skipped (saves boot time + a few KB).
CONFIG_SPIRAM=n
# --- Flash ---------------------------------------------------------------
# Same 8 MB layout as AtomS3R; partitions.csv uses 0x710000 (bootloader +
# nvs + 2× 3 MB OTA + 1 MB storage).
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
# --- Feature gates -------------------------------------------------------
# Compile-time skip of everything that needs PSRAM. See main/Kconfig.projbuild
# for the flag definitions and main/app_main.cpp / main/CMakeLists.txt for
# where they take effect.
CONFIG_STACKCHAN_CONVERSATION_ENABLED=n
CONFIG_STACKCHAN_AUDIO_STREAM_ENABLED=n
CONFIG_STACKCHAN_WIFI_AUDIO_ENABLED=n
# Camera is already off by default in the common knob, but make it explicit
# here so a future flip in the base file doesn't accidentally enable it on
# the no-PSRAM target (esp32-camera mandates DMA + PSRAM frame buffers).
CONFIG_STACKCHAN_CAMERA_ENABLED=n
# --- Wi-Fi memory diet ---------------------------------------------------
# Without PSRAM the TX/RX rings + LWIP buffers compete with the avatar
# framebuffer (~128 × 128 × 2 B = 32 KiB) and jtts working memory in
# internal SRAM. Knocking the dynamic TX buffers down (from default 32) and
# disabling AMSDU + AMPDU TX trims the runtime footprint considerably. CLI
# verified: ~20 KiB heap saved against the cores3 baseline.
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=16
CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=4
CONFIG_ESP_WIFI_AMSDU_TX_ENABLED=n
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n
# LWIP TCP windows: keep small enough to leave room for our own buffers
# but large enough that the settings/MCP HTTP endpoints aren't dog-slow.
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760
CONFIG_LWIP_TCP_WND_DEFAULT=5760
# --- TLS / mbedTLS -------------------------------------------------------
# With conversation disabled we never open a TLS uplink, but the settings
# page's OTA paths still need mbedtls — and device-side release-fetch OTA
# (release_ota.cpp) downloads the .bin from www.fugafuga.org (GitHub Pages
# custom domain → Fastly CDN). Fastly emits full 16 KiB TLS records for bulk
# bodies; a 4 KiB inbound buffer makes the first esp_http_client_read fail
# with -0x7100 (MBEDTLS_ERR_SSL_BAD_INPUT_DATA — "requesting more data than
# fits" in mbedtls_ssl_fetch_input; the TLS record length is NOT clamped to
# IN_CONTENT_LEN in ssl_parse_record_header). 16384 (the TLS spec max) is the
# only value that guarantees a conformant record fits.
#
# Internal-RAM cost: AtomS3 has no PSRAM (SPIRAM=n above), so unlike the
# PSRAM boards these TLS record buffers live in internal SRAM. With
# MBEDTLS_DYNAMIC_BUFFER=y (inherited from sdkconfig.defaults) the 16 KiB RX
# buffer is only held while an OTA HTTPS connection is live and freed on
# close, and this profile opens at most one TLS conn at a time (no
# conversation / audio uplink). So the +12 KiB (16384 vs 4096) is a
# transient OTA-only peak, not a steady-state cost.
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096