diff --git a/platformio.ini b/platformio.ini index f296f8382..3cd8e0508 100644 --- a/platformio.ini +++ b/platformio.ini @@ -19,8 +19,7 @@ monitor_speed = 115200 lib_deps = SPI Wire - ;jgromes/RadioLib @ ^7.7.1 - https://github.com/jgromes/RadioLib.git#6d8934836678d8894e3d556550475b37dce3e2b6 + jgromes/RadioLib @ ^7.8.1 rweather/Crypto @ ^0.4.0 adafruit/RTClib @ ^2.1.3 melopero/Melopero RV3028 @ ^1.1.0 @@ -29,6 +28,15 @@ build_flags = -w -DNDEBUG -DRADIOLIB_STATIC_ONLY=1 -DRADIOLIB_GODMODE=1 -D LORA_FREQ=869.618 -D LORA_BW=62.5 -D LORA_SF=8 + ; TCXO startup delay in microseconds, written by CustomSX1262/CustomLR1110 + ; after begin(). RadioLib defaults to 5000 and nothing used to override it, so + ; every board paid 5 ms on every duty-cycle wake. Lowest working value measured + ; on five modules: T096 400, Tracker V2 300, Waveshare 150, ThinkNode M3 200, + ; T1000-E 200 us - 1600 keeps 4x margin over the worst of them. It also feeds + ; the RXPS sleep floor and timer guard (transition = this + 1000), so lowering + ; it makes low-SF profiles armable that were not. A board needing its own value + ; puts -D MC_TCXO_DELAY_US=... in its own build_flags; the later -D wins. + -D MC_TCXO_DELAY_US=1600 -D ENABLE_ADVERT_ON_BOOT=1 -D ENABLE_PRIVATE_KEY_IMPORT=1 ; NOTE: comment these out for more secure firmware -D ENABLE_PRIVATE_KEY_EXPORT=1 @@ -58,6 +66,9 @@ build_src_filter = [esp32_base] extends = arduino_base platform = platformio/espressif32@6.11.0 +; PowerSaving Arduino Core 2.0.17 for low power ESP32 boards +; https://github.com/IoTThinks/powersaving-arduino-lib +platform_packages = framework-arduinoespressif32 @ https://github.com/IoTThinks/powersaving-arduino-lib/releases/download/2.0.17/esp32-2.0.17.zip monitor_filters = esp32_exception_decoder extra_scripts = merge-bin.py build_flags = ${arduino_base.build_flags} @@ -73,8 +84,14 @@ lib_deps = ; esp32c6 uses arduino framework 3.x ; WARNING: experimental. May not work as stable as other platforms. [esp32c6_base] -extends = esp32_base +extends = arduino_base platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13-1/platform-espressif32.zip +monitor_filters = esp32_exception_decoder +extra_scripts = merge-bin.py +build_flags = + ${arduino_base.build_flags} + -D ESP32_PLATFORM +build_src_filter = ${arduino_base.build_src_filter} ; ----------------- NRF52 --------------------- @@ -92,7 +109,10 @@ build_flags = ${arduino_base.build_flags} -D NRF52_PLATFORM -D LFS_NO_ASSERT=1 -D EXTRAFS=1 - -D USE_CC310_HW_CRYPTO=1 +; CC310 hardware crypto (upstream PR #2824) disabled until its benefit is proven: +; no measurable current difference on RAK4631 with PowerSaving, and per-call +; nRFCrypto begin()/end() was questioned in review. Re-enable by uncommenting. +; -D USE_CC310_HW_CRYPTO=1 lib_deps = ${arduino_base.lib_deps} https://github.com/oltaco/CustomLFS#0.2.3 @@ -118,6 +138,7 @@ build_flags = ${arduino_base.build_flags} -D STM32_PLATFORM -I src/helpers/stm32 -I $PROJECT_PACKAGES_DIR/framework-arduinoststm32/libraries/SubGhz/src + -fpermissive build_src_filter = ${arduino_base.build_src_filter} + lib_deps = ${arduino_base.lib_deps} @@ -174,6 +195,8 @@ build_src_filter = +<../src/Packet.cpp> +<../src/helpers/ConfigSerializer.cpp> +<../src/helpers/DynamicConfigSerializer.cpp> + +<../src/helpers/radiolib/RXPowerSaving.cpp> + +<../src/helpers/radiolib/RXPowerSavingCLI.cpp> lib_deps = google/googletest @ 1.17.0