no OTA on t-beam repeaters

This commit is contained in:
liquidraver
2026-06-15 11:59:49 +02:00
parent 68147dba86
commit f2d2876637
3 changed files with 15 additions and 12 deletions
+6 -5
View File
@@ -135,11 +135,12 @@ if [[ $1 == "esp32" ]]; then
exit 1;
fi
# Classic ESP32 (e.g. T-Beam, PICO-D4) cannot fit the mesh stack
# alongside MCUboot in DRAM, so it uses Zephyr's simple-boot path: a
# self-contained zephyr.bin flashed at the 0x1000 ROM bootloader offset.
# The S3/C-series have the DRAM headroom and use sysbuild + MCUboot
# (handled in the blocks below).
# Classic ESP32 (e.g. T-Beam, PICO-D4) uses Zephyr's simple-boot path for
# both roles: a self-contained zephyr.bin flashed at the 0x1000 ROM
# bootloader offset. The companion keeps BLE (whose controller reserves
# ~50KB DRAM, leaving no room for MCUboot) and the repeater is CLI-only
# (WiFi OTA's functional driver + 64KB heap overflow DRAM by ~10KB). The
# S3/C-series have the DRAM headroom and use sysbuild + MCUboot below.
if [[ $chip == "esp32" ]]; then
if [[ $2 == "companions" ]]; then
role="companion"
+6 -4
View File
@@ -324,10 +324,12 @@ endif()
# Requires --sysbuild to build MCUboot alongside the app.
# Non-ESP32 builds and companion builds are unaffected.
#
# Excluded on the classic ESP32 (e.g. T-Beam, board qualifier ".../esp32/..."):
# its DRAM cannot fit the mesh stack alongside WiFi + MCUboot, so it uses the
# simple-boot path and a CLI-only repeater (no WiFi OTA). The ESP32-S3/C-series
# (esp32s3/esp32c*) keep WiFi OTA.
# Excluded on the classic ESP32 (e.g. T-Beam, board qualifier ".../esp32/...").
# It builds, but only because the WiFi DT node would be left disabled; with WiFi
# actually functional, the driver buffers + 64KB OTA heap overflow the classic
# ESP32's DRAM by ~10KB. Rather than trim WiFi/heap to an unverifiable margin,
# the classic ESP32 repeater stays CLI-only on simple boot (handled in build.sh).
# The ESP32-S3/C-series have the DRAM headroom and keep WiFi OTA.
if(ZEPHCORE_PLATFORM_CONF MATCHES "esp32_common" AND EXTRA_CONF_FILE MATCHES "repeater"
AND NOT BOARD MATCHES "/esp32/")
set(ZEPHCORE_WIFI_OTA_CONF "${CMAKE_CURRENT_SOURCE_DIR}/boards/common/wifi_ota.conf")
@@ -31,9 +31,9 @@
* controller/PHY Kconfig half-configured (BT_ESP32 stays off). Enabling the HCI
* node selects BT_ESP32, which in turn pulls in the shared PHY.
*
* WiFi is intentionally left disabled: the classic ESP32 cannot fit the mesh
* stack alongside both the WiFi and BLE controllers in DRAM, and the companion
* transport is BLE. (A WiFi-observer build would need its own RAM-trimmed conf.)
* WiFi is intentionally left disabled. The companion transport is BLE, and the
* classic ESP32 repeater is CLI-only (WiFi OTA's functional driver + 64KB heap
* overflow this board's DRAM, so it's excluded in CMakeLists.txt — see there).
*/
/ {
chosen {