diff --git a/src/platform/nrf52/NRF52Bluetooth.cpp b/src/platform/nrf52/NRF52Bluetooth.cpp index dd02301000d..e1f6dc59aed 100644 --- a/src/platform/nrf52/NRF52Bluetooth.cpp +++ b/src/platform/nrf52/NRF52Bluetooth.cpp @@ -247,15 +247,6 @@ void NRF52Bluetooth::shutdown() disconnect(); Bluefruit.Advertising.stop(); } -void NRF52Bluetooth::startDisabled() -{ - // Setup Bluetooth - nrf52Bluetooth->setup(); - // Shutdown bluetooth for minimum power draw - Bluefruit.Advertising.stop(); - Bluefruit.setTxPower(-40); // Minimum power - LOG_INFO("Disable NRF52 Bluetooth. (Workaround: tx power min, advertise stopped)"); -} bool NRF52Bluetooth::isConnected() { return Bluefruit.connected(connectionHandle); diff --git a/src/platform/nrf52/NRF52Bluetooth.h b/src/platform/nrf52/NRF52Bluetooth.h index 630ab05bc80..dd21e082ca7 100644 --- a/src/platform/nrf52/NRF52Bluetooth.h +++ b/src/platform/nrf52/NRF52Bluetooth.h @@ -8,7 +8,6 @@ class NRF52Bluetooth : BluetoothApi public: void setup(); void shutdown(); - void startDisabled(); void resumeAdvertising(); void clearBonds(); bool isConnected(); diff --git a/src/platform/nrf52/main-nrf52.cpp b/src/platform/nrf52/main-nrf52.cpp index 5cf3a4465b0..4f9135b9bf1 100644 --- a/src/platform/nrf52/main-nrf52.cpp +++ b/src/platform/nrf52/main-nrf52.cpp @@ -61,9 +61,13 @@ void variant_nrf52LoopHook(void) {} static nrfx_wdt_t nrfx_wdt = NRFX_WDT_INSTANCE(0); static nrfx_wdt_channel_id nrfx_wdt_channel_id_nrf52_main; -// This is a public global so that the debugger can set it to false automatically from our gdbinit -// @phaseloop comment: most part of codebase, including filesystem flash driver depend on softdevice -// methods so disabling it may actually crash thing. Proceed with caution. +// This is a public global so that the debugger can set it to false automatically from our gdbinit. +// Also cleared at runtime when config.bluetooth.enabled is false: the SoftDevice is then never +// enabled at all, and the code paths that would otherwise issue sd_* SVCs (checkSDEvents, the +// GPREGRET writes) either key off this flag or carry direct-register fallbacks. The BSP flash +// driver checks sd_softdevice_is_enabled() per operation and takes its synchronous path while the +// SD is disabled - the same path every boot already uses before Bluefruit.begin() - so LittleFS +// is safe either way. bool useSoftDevice = true; // Set to false for easier debugging @@ -189,6 +193,21 @@ void getMacAddr(uint8_t *dmac) #if !MESHTASTIC_EXCLUDE_BLUETOOTH void setBluetoothEnable(bool enable) { + // User disabled bluetooth in config: leave the SoftDevice entirely off and reclaim its + // RAM (~3.5 KB Bluefruit heap + ~6 KB of BLE/SOC task stacks). The previous workaround + // (#4055 era) fully initialized SoftDevice + Bluefruit and then muted advertising; with + // the SD disabled the BSP flash driver stays on its synchronous path, so nothing below + // requires it. clearBonds() still lazily brings the stack up for explicit bond + // maintenance, and re-enabling bluetooth applies via reboot, so no re-init path is + // needed here. + if (!config.bluetooth.enabled) { + if (useSoftDevice) { + LOG_INFO("Bluetooth disabled by config: leaving SoftDevice off"); + useSoftDevice = false; // checkSDEvents() and the GPREGRET fallbacks key off this + } + return; + } + // For debugging use: don't use bluetooth if (!useSoftDevice) { if (enable) @@ -196,19 +215,6 @@ void setBluetoothEnable(bool enable) return; } - // If user disabled bluetooth: init then disable advertising & reduce power - // Workaround. Avoid issue where device hangs several days after boot.. - // Allegedly, no significant increase in power consumption - if (!config.bluetooth.enabled) { - static bool initialized = false; - if (!initialized) { - nrf52Bluetooth = new NRF52Bluetooth(); - nrf52Bluetooth->startDisabled(); - initialized = true; - } - return; - } - if (enable) { powerMon->setState(meshtastic_PowerMon_State_BT_On); @@ -473,12 +479,18 @@ void cpuDeepSleep(uint32_t msecToWake) // Resume on user button press // https://github.com/lyusupov/SoftRF/blob/81c519ca75693b696752235d559e881f2e0511ee/software/firmware/source/SoftRF/src/platform/nRF52.cpp#L1738 constexpr uint32_t DFU_MAGIC_SKIP = 0x6d; - sd_power_gpregret_clr(0, 0xFF); // Clear the register before setting a new values in it for stability reasons - sd_power_gpregret_set(0, DFU_MAGIC_SKIP); // Equivalent NRF_POWER->GPREGRET = DFU_MAGIC_SKIP - - // FIXME, use system off mode with ram retention for key state? - // FIXME, use non-init RAM per - // https://devzone.nordicsemi.com/f/nordic-q-a/48919/ram-retention-settings-with-softdevice-enabled + // Clear the register before setting a new value in it for stability reasons, then set + // DFU_MAGIC_SKIP. When the SoftDevice was never enabled (bluetooth disabled by config, or + // debugging) the sd_* calls return an error without touching the register, so mirror + // lfs_assert()'s fallback and write NRF_POWER->GPREGRET directly. + if (sd_power_gpregret_clr(0, 0xFF) != NRF_SUCCESS) + NRF_POWER->GPREGRET = 0; + if (sd_power_gpregret_set(0, DFU_MAGIC_SKIP) != NRF_SUCCESS) + NRF_POWER->GPREGRET = DFU_MAGIC_SKIP; + + // FIXME, use system off mode with ram retention for key state? + // FIXME, use non-init RAM per + // https://devzone.nordicsemi.com/f/nordic-q-a/48919/ram-retention-settings-with-softdevice-enabled #ifdef BATTERY_LPCOMP_INPUT // Wake up if power rises again diff --git a/variants/esp32s3/CDEBYTE_EoRa-Hub/platformio.ini b/variants/esp32s3/CDEBYTE_EoRa-Hub/platformio.ini index 42c311a69f5..dc206b0643c 100644 --- a/variants/esp32s3/CDEBYTE_EoRa-Hub/platformio.ini +++ b/variants/esp32s3/CDEBYTE_EoRa-Hub/platformio.ini @@ -1,5 +1,5 @@ [env:CDEBYTE_EoRa-Hub] -extends = esp32s3_base +extends = esp32s3_psram_base board = CDEBYTE_EoRa-Hub board_level = extra build_flags = diff --git a/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini b/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini index 092b36a2f0f..cbf43d7f805 100644 --- a/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini +++ b/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini @@ -8,7 +8,7 @@ custom_meshtastic_display_name = EBYTE EoRa-S3 custom_meshtastic_tags = EByte custom_meshtastic_requires_dfu = true -extends = esp32s3_base +extends = esp32s3_psram_base board = CDEBYTE_EoRa-S3 build_flags = ${esp32s3_base.build_flags} diff --git a/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini b/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini index 9c0a492ebf6..dab5143c8a5 100644 --- a/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini +++ b/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini @@ -1,5 +1,5 @@ [env:thinknode_g3] -extends = esp32s3_base +extends = esp32s3_psram_base board = ESP32-S3-WROOM-1-N4 board_build.psram_type = opi @@ -12,7 +12,7 @@ build_flags = -mfix-esp32-psram-cache-issue custom_sdkconfig = - ${esp32s3_base.custom_sdkconfig} + ${esp32s3_psram_base.custom_sdkconfig} CONFIG_ETH_ENABLED=y CONFIG_ARDUINO_SELECTIVE_Ethernet=y diff --git a/variants/esp32s3/ELECROW-ThinkNode-M7/platformio.ini b/variants/esp32s3/ELECROW-ThinkNode-M7/platformio.ini index 4ee4590bfe2..89e5fcdedc2 100644 --- a/variants/esp32s3/ELECROW-ThinkNode-M7/platformio.ini +++ b/variants/esp32s3/ELECROW-ThinkNode-M7/platformio.ini @@ -1,5 +1,5 @@ [env:thinknode_m7] -extends = esp32s3_base +extends = esp32s3_psram_base board = ThinkNode-M7 build_flags = @@ -11,7 +11,7 @@ build_flags = -mfix-esp32-psram-cache-issue custom_sdkconfig = - ${esp32s3_base.custom_sdkconfig} + ${esp32s3_psram_base.custom_sdkconfig} CONFIG_ETH_ENABLED=y CONFIG_ARDUINO_SELECTIVE_Ethernet=y diff --git a/variants/esp32s3/bpi_picow_esp32_s3/platformio.ini b/variants/esp32s3/bpi_picow_esp32_s3/platformio.ini index e8c50adcc82..a9b4e4d796d 100644 --- a/variants/esp32s3/bpi_picow_esp32_s3/platformio.ini +++ b/variants/esp32s3/bpi_picow_esp32_s3/platformio.ini @@ -1,5 +1,5 @@ [env:bpi_picow_esp32_s3] -extends = esp32s3_base +extends = esp32s3_psram_base board = bpi_picow_esp32_s3 board_level = extra ;OpenOCD flash method diff --git a/variants/esp32s3/crowpanel-esp32s3-5-epaper/platformio.ini b/variants/esp32s3/crowpanel-esp32s3-5-epaper/platformio.ini index 7e37a0eb45b..cbed02729db 100644 --- a/variants/esp32s3/crowpanel-esp32s3-5-epaper/platformio.ini +++ b/variants/esp32s3/crowpanel-esp32s3-5-epaper/platformio.ini @@ -1,5 +1,5 @@ [env:crowpanel-esp32s3-5-epaper] -extends = esp32s3_base +extends = esp32s3_psram_base board_build.arduino.memory_type = qio_opi board_build.flash_mode = qio board_build.psram_type = opi @@ -29,7 +29,7 @@ lib_deps = https://github.com/meshtastic/GxEPD2/archive/c7eb4c3c167cf396ef4f541cc5d4c6aa42f3c46b.zip [env:crowpanel-esp32s3-4-epaper] -extends = esp32s3_base +extends = esp32s3_psram_base board_build.arduino.memory_type = qio_opi board_build.flash_mode = qio board_build.psram_type = opi @@ -59,7 +59,7 @@ lib_deps = https://github.com/meshtastic/GxEPD2/archive/c7eb4c3c167cf396ef4f541cc5d4c6aa42f3c46b.zip [env:crowpanel-esp32s3-2-epaper] -extends = esp32s3_base +extends = esp32s3_psram_base board_build.arduino.memory_type = qio_opi board_build.flash_mode = qio board_build.psram_type = opi diff --git a/variants/esp32s3/elecrow_panel/platformio.ini b/variants/esp32s3/elecrow_panel/platformio.ini index c5c405c1fe9..95dbb1ad112 100644 --- a/variants/esp32s3/elecrow_panel/platformio.ini +++ b/variants/esp32s3/elecrow_panel/platformio.ini @@ -1,5 +1,5 @@ [crowpanel_base] -extends = esp32s3_base +extends = esp32s3_psram_base board = crowpanel board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/esp32-s3-pico/platformio.ini b/variants/esp32s3/esp32-s3-pico/platformio.ini index b5ff66b8595..f451016875c 100644 --- a/variants/esp32s3/esp32-s3-pico/platformio.ini +++ b/variants/esp32s3/esp32-s3-pico/platformio.ini @@ -1,7 +1,7 @@ [env:ESP32-S3-Pico] board_level = extra -extends = esp32s3_base +extends = esp32s3_psram_base upload_protocol = esptool board = esp32-s3-pico board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/esp32s3.ini b/variants/esp32s3/esp32s3.ini index 17b451d4246..8e98e74bf0b 100644 --- a/variants/esp32s3/esp32s3.ini +++ b/variants/esp32s3/esp32s3.ini @@ -18,3 +18,12 @@ lib_deps = ${esp32_common.lib_deps} # renovate: datasource=git-refs depName=meshtastic-ESP32_Codec2 packageName=https://github.com/meshtastic/ESP32_Codec2 gitBranch=master https://github.com/meshtastic/ESP32_Codec2/archive/633326c78ac251c059ab3a8c430fcdf25b41672f.zip + +; Base for S3 boards WITH PSRAM: NimBLE host pools (MSYS mbufs, GATT/CCCD tables, bond +; storage) move to PSRAM, freeing ~5-8 KB of internal DRAM for WiFi+BLE coexistence. +; Controller (CONFIG_BT_CTRL_*) memory stays internal - do not move it. +[esp32s3_psram_base] +extends = esp32s3_base +custom_sdkconfig = + ${esp32s3_base.custom_sdkconfig} + CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL=y diff --git a/variants/esp32s3/hackaday-communicator/platformio.ini b/variants/esp32s3/hackaday-communicator/platformio.ini index cee393e48af..9ef10eb45f4 100644 --- a/variants/esp32s3/hackaday-communicator/platformio.ini +++ b/variants/esp32s3/hackaday-communicator/platformio.ini @@ -1,6 +1,6 @@ ; Hackaday Communicator [env:hackaday-communicator] -extends = esp32s3_base +extends = esp32s3_psram_base board = hackaday-communicator board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/heltec_v4/platformio.ini b/variants/esp32s3/heltec_v4/platformio.ini index e21ff6a3059..2912de9c0f3 100644 --- a/variants/esp32s3/heltec_v4/platformio.ini +++ b/variants/esp32s3/heltec_v4/platformio.ini @@ -1,5 +1,5 @@ [heltec_v4_base] -extends = esp32s3_base +extends = esp32s3_psram_base board = heltec_v4 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/heltec_v4_r8/platformio.ini b/variants/esp32s3/heltec_v4_r8/platformio.ini index 4198df454d9..c953e06684e 100644 --- a/variants/esp32s3/heltec_v4_r8/platformio.ini +++ b/variants/esp32s3/heltec_v4_r8/platformio.ini @@ -1,5 +1,5 @@ [heltec_v4_r8_base] -extends = esp32s3_base +extends = esp32s3_psram_base board = heltec_v4_r8 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/heltec_vision_master_e213/platformio.ini b/variants/esp32s3/heltec_vision_master_e213/platformio.ini index fb97fd98319..bb43acc547f 100644 --- a/variants/esp32s3/heltec_vision_master_e213/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_e213/platformio.ini @@ -11,7 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_ink_hud = true -extends = esp32s3_base +extends = esp32s3_psram_base board = heltec_vision_master_e213 board_build.partitions = default_8MB.csv build_flags = @@ -35,7 +35,7 @@ lib_deps = upload_speed = 115200 [env:heltec-vision-master-e213-inkhud] -extends = esp32s3_base, inkhud +extends = esp32s3_psram_base, inkhud board = heltec_vision_master_e213 board_level = pr board_build.partitions = default_8MB.csv diff --git a/variants/esp32s3/heltec_vision_master_e290/platformio.ini b/variants/esp32s3/heltec_vision_master_e290/platformio.ini index 9fdb023de4c..c82e3b63825 100644 --- a/variants/esp32s3/heltec_vision_master_e290/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_e290/platformio.ini @@ -12,7 +12,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_ink_hud = true -extends = esp32s3_base +extends = esp32s3_psram_base board = heltec_vision_master_e290 board_build.partitions = default_8MB.csv build_flags = @@ -37,7 +37,7 @@ lib_deps = upload_speed = 115200 [env:heltec-vision-master-e290-inkhud] -extends = esp32s3_base, inkhud +extends = esp32s3_psram_base, inkhud board = heltec_vision_master_e290 board_build.partitions = default_8MB.csv build_src_filter = diff --git a/variants/esp32s3/heltec_vision_master_t190/platformio.ini b/variants/esp32s3/heltec_vision_master_t190/platformio.ini index af3fe25f81e..680e388cef2 100644 --- a/variants/esp32s3/heltec_vision_master_t190/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_t190/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = Heltec custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB -extends = esp32s3_base +extends = esp32s3_psram_base board = heltec_vision_master_t190 board_build.partitions = default_8MB.csv build_flags = diff --git a/variants/esp32s3/icarus/platformio.ini b/variants/esp32s3/icarus/platformio.ini index de29cc2cf4b..bbec3710ef1 100644 --- a/variants/esp32s3/icarus/platformio.ini +++ b/variants/esp32s3/icarus/platformio.ini @@ -1,5 +1,5 @@ [env:icarus] -extends = esp32s3_base +extends = esp32s3_psram_base board = icarus board_level = extra board_check = true diff --git a/variants/esp32s3/mesh-tab/platformio.ini b/variants/esp32s3/mesh-tab/platformio.ini index fe508656233..db46da37b6e 100644 --- a/variants/esp32s3/mesh-tab/platformio.ini +++ b/variants/esp32s3/mesh-tab/platformio.ini @@ -1,7 +1,7 @@ ; Base for Mesh-Tab device (esp32-s3 N16R2 + ra-sh01 lora) ; https://github.com/valzzu/Mesh-Tab [mesh_tab_base] -extends = esp32s3_base +extends = esp32s3_psram_base board = mesh-tab board_level = extra board_upload.flash_size = 16MB diff --git a/variants/esp32s3/mini-epaper-s3/platformio.ini b/variants/esp32s3/mini-epaper-s3/platformio.ini index 3e480231928..0a239ddd695 100644 --- a/variants/esp32s3/mini-epaper-s3/platformio.ini +++ b/variants/esp32s3/mini-epaper-s3/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = no custom_meshtastic_has_mui = false -extends = esp32s3_base +extends = esp32s3_psram_base board = mini-epaper-s3 board_check = true upload_protocol = esptool @@ -36,7 +36,7 @@ lib_deps = lewisxhe/SensorLib@0.3.4 [env:mini-epaper-s3-inkhud] -extends = esp32s3_base, inkhud +extends = esp32s3_psram_base, inkhud board = mini-epaper-s3 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/nibble_esp32/platformio.ini b/variants/esp32s3/nibble_esp32/platformio.ini index 8e8cead163c..a8d7323b9b1 100644 --- a/variants/esp32s3/nibble_esp32/platformio.ini +++ b/variants/esp32s3/nibble_esp32/platformio.ini @@ -1,5 +1,5 @@ [env:nibble-esp32] -extends = esp32s3_base +extends = esp32s3_psram_base board = esp32-s3-zero board_level = extra build_flags = diff --git a/variants/esp32s3/picomputer-s3/platformio.ini b/variants/esp32s3/picomputer-s3/platformio.ini index f47d7990d7f..d16ade6c5d3 100644 --- a/variants/esp32s3/picomputer-s3/platformio.ini +++ b/variants/esp32s3/picomputer-s3/platformio.ini @@ -8,7 +8,7 @@ custom_meshtastic_display_name = Pi Computer S3 custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_mui = true -extends = esp32s3_base +extends = esp32s3_psram_base board = bpi_picow_esp32_s3 board_check = true board_build.partitions = partition-table-8MB.csv diff --git a/variants/esp32s3/rak3312/platformio.ini b/variants/esp32s3/rak3312/platformio.ini index dcdb2974ca1..6bd7d58143b 100644 --- a/variants/esp32s3/rak3312/platformio.ini +++ b/variants/esp32s3/rak3312/platformio.ini @@ -11,7 +11,7 @@ custom_meshtastic_requires_dfu = false custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = false -extends = esp32s3_base +extends = esp32s3_psram_base board = wiscore_rak3312 board_level = pr board_check = true @@ -23,7 +23,7 @@ build_flags = -I variants/esp32s3/rak3312 [env:rak3112] -extends = esp32s3_base +extends = esp32s3_psram_base board = wiscore_rak3312 board_level = extra upload_protocol = esptool diff --git a/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini b/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini index 956c430155b..fec75bbbc16 100644 --- a/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini +++ b/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini @@ -22,7 +22,7 @@ custom_meshtastic_tags = RAK custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true -extends = esp32s3_base +extends = esp32s3_psram_base board = wiscore_rak3312 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/seeed-sensecap-indicator/platformio.ini b/variants/esp32s3/seeed-sensecap-indicator/platformio.ini index 9b01033df27..c7daa92bcc6 100644 --- a/variants/esp32s3/seeed-sensecap-indicator/platformio.ini +++ b/variants/esp32s3/seeed-sensecap-indicator/platformio.ini @@ -11,7 +11,7 @@ custom_meshtastic_tags = Seeed custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_mui = true -extends = esp32s3_base +extends = esp32s3_psram_base platform_packages = ; Version needs to match the pioarduino version used in esp32_common.ini platformio/framework-arduinoespressif32 @ https://github.com/mverch67/arduino-esp32#82aee17619ea2940de03b0db4d082d5def657771 @@ -42,7 +42,7 @@ lib_deps = ${esp32s3_base.lib_deps} earlephilhower/ESP8266SAM@1.1.0 custom_sdkconfig = - ${esp32s3_base.custom_sdkconfig} + ${esp32s3_psram_base.custom_sdkconfig} CONFIG_AUTOSTART_ARDUINO=y CONFIG_LOG_DEFAULT_LEVEL_INFO=y CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y diff --git a/variants/esp32s3/seeed_xiao_s3/platformio.ini b/variants/esp32s3/seeed_xiao_s3/platformio.ini index ee457eaf072..c22397ae875 100644 --- a/variants/esp32s3/seeed_xiao_s3/platformio.ini +++ b/variants/esp32s3/seeed_xiao_s3/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = Seeed custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB -extends = esp32s3_base +extends = esp32s3_psram_base board = seeed-xiao-s3 board_level = pr board_check = true diff --git a/variants/esp32s3/station-g2/platformio.ini b/variants/esp32s3/station-g2/platformio.ini index 9c6b71cecf7..71fe9c732fb 100755 --- a/variants/esp32s3/station-g2/platformio.ini +++ b/variants/esp32s3/station-g2/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = B&Q custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB -extends = esp32s3_base +extends = esp32s3_psram_base board = station-g2 board_level = pr board_check = true diff --git a/variants/esp32s3/station-g3/platformio.ini b/variants/esp32s3/station-g3/platformio.ini index f94809ddf0c..23aaf7462a6 100644 --- a/variants/esp32s3/station-g3/platformio.ini +++ b/variants/esp32s3/station-g3/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = B&Q custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB -extends = esp32s3_base +extends = esp32s3_psram_base board = station-g3 board_level = pr board_check = true diff --git a/variants/esp32s3/t-beam-1w/platformio.ini b/variants/esp32s3/t-beam-1w/platformio.ini index b14f2fe3ce3..ed5cae0c48c 100644 --- a/variants/esp32s3/t-beam-1w/platformio.ini +++ b/variants/esp32s3/t-beam-1w/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_images = tbeam-1w.svg custom_meshtastic_tags = LilyGo custom_meshtastic_has_mui = false -extends = esp32s3_base +extends = esp32s3_psram_base board = t-beam-1w board_build.partitions = default_8MB.csv board_check = true diff --git a/variants/esp32s3/t-deck-pro-v1_1/platformio.ini b/variants/esp32s3/t-deck-pro-v1_1/platformio.ini index 22432d769e2..55d2023f3d9 100644 --- a/variants/esp32s3/t-deck-pro-v1_1/platformio.ini +++ b/variants/esp32s3/t-deck-pro-v1_1/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB -extends = esp32s3_base +extends = esp32s3_psram_base board = t-deck-pro board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/t-deck-pro/platformio.ini b/variants/esp32s3/t-deck-pro/platformio.ini index d1a2398a4a2..e6f099ad160 100644 --- a/variants/esp32s3/t-deck-pro/platformio.ini +++ b/variants/esp32s3/t-deck-pro/platformio.ini @@ -11,7 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = false -extends = esp32s3_base +extends = esp32s3_psram_base board = t-deck-pro board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/t-deck/platformio.ini b/variants/esp32s3/t-deck/platformio.ini index aba1695cecd..5aea069e70c 100644 --- a/variants/esp32s3/t-deck/platformio.ini +++ b/variants/esp32s3/t-deck/platformio.ini @@ -12,7 +12,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true -extends = esp32s3_base +extends = esp32s3_psram_base board = t-deck board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t-watch-s3/platformio.ini b/variants/esp32s3/t-watch-s3/platformio.ini index ec70148a8d0..5e13e27a775 100644 --- a/variants/esp32s3/t-watch-s3/platformio.ini +++ b/variants/esp32s3/t-watch-s3/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_images = t-watch-s3.svg custom_meshtastic_tags = LilyGo custom_meshtastic_partition_scheme = 8MB -extends = esp32s3_base +extends = esp32s3_psram_base board = t-watch-s3 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t5s3_epaper/platformio.ini b/variants/esp32s3/t5s3_epaper/platformio.ini index 9dbb6d32dfb..dc33e2c33ae 100644 --- a/variants/esp32s3/t5s3_epaper/platformio.ini +++ b/variants/esp32s3/t5s3_epaper/platformio.ini @@ -1,5 +1,5 @@ [t5s3_epaper_base] -extends = esp32s3_base +extends = esp32s3_psram_base board = t5-epaper-s3 board_build.partition = default_16MB.csv board_check = true diff --git a/variants/esp32s3/tbeam-s3-core/platformio.ini b/variants/esp32s3/tbeam-s3-core/platformio.ini index 512cf3202e8..05390497f44 100644 --- a/variants/esp32s3/tbeam-s3-core/platformio.ini +++ b/variants/esp32s3/tbeam-s3-core/platformio.ini @@ -11,7 +11,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB -extends = esp32s3_base +extends = esp32s3_psram_base board = tbeam-s3-core board_build.partitions = default_8MB.csv board_check = true diff --git a/variants/esp32s3/tlora-pager/platformio.ini b/variants/esp32s3/tlora-pager/platformio.ini index 5f243342bb9..47027a73745 100644 --- a/variants/esp32s3/tlora-pager/platformio.ini +++ b/variants/esp32s3/tlora-pager/platformio.ini @@ -12,7 +12,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true -extends = esp32s3_base +extends = esp32s3_psram_base board = t-deck-pro ; same as T-Deck Pro board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/tlora_t3s3_epaper/platformio.ini b/variants/esp32s3/tlora_t3s3_epaper/platformio.ini index 8f764bbe6eb..a65ffa806ed 100644 --- a/variants/esp32s3/tlora_t3s3_epaper/platformio.ini +++ b/variants/esp32s3/tlora_t3s3_epaper/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true custom_meshtastic_has_ink_hud = true -extends = esp32s3_base +extends = esp32s3_psram_base board = tlora-t3s3-v1 board_check = true upload_protocol = esptool @@ -35,7 +35,7 @@ lib_deps = https://github.com/meshtastic/GxEPD2/archive/c7eb4c3c167cf396ef4f541cc5d4c6aa42f3c46b.zip [env:tlora-t3s3-epaper-inkhud] -extends = esp32s3_base, inkhud +extends = esp32s3_psram_base, inkhud board = tlora-t3s3-v1 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/tlora_t3s3_v1/platformio.ini b/variants/esp32s3/tlora_t3s3_v1/platformio.ini index 95686e417fa..934d772876e 100644 --- a/variants/esp32s3/tlora_t3s3_v1/platformio.ini +++ b/variants/esp32s3/tlora_t3s3_v1/platformio.ini @@ -9,7 +9,7 @@ custom_meshtastic_images = tlora-t3s3-v1.svg custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true -extends = esp32s3_base +extends = esp32s3_psram_base board = tlora-t3s3-v1 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/unphone/platformio.ini b/variants/esp32s3/unphone/platformio.ini index e5bc7ead81b..707f0641ff9 100644 --- a/variants/esp32s3/unphone/platformio.ini +++ b/variants/esp32s3/unphone/platformio.ini @@ -10,7 +10,7 @@ custom_meshtastic_display_name = unPhone custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB -extends = esp32s3_base +extends = esp32s3_psram_base board = unphone board_build.partitions = partition-table-8MB.csv upload_speed = 921600