Files
MeshCore/variants/wio-e5-mini/platformio.ini
T
mikecarper 617aacba42 Fix packet, delivery, clock and radio stability regressions
Reject truncated anonymous reply paths and advert metadata before copying,
while preserving timestamp-only empty-password logins. Limit room posting to
read-write/admin ACL roles, retain inbox frames until the requesting transport
accepts them, and lock raw LittleFS traversal against concurrent writes.

Separate ISR event generations from main-loop radio state. Confirm RX/TX IRQs,
detach concrete wrapper callbacks safely, and discard inconsistent LR2021 FIFO
snapshots before rearming. Preserve bridge RX frames through packet-pool
exhaustion and bound ESP-NOW retries and missing-callback recovery. Screen RTC
register layouts without losing DS1307 startup, and ignore poisoned future
contact timestamps during clock bootstrap.

Keep the nRF52 loop stack at 8 KiB while reducing the OTA listing call chain
from 7,832 to 6,056 static bytes. Retain all target names through lossless Full
Companion compression and the canonical size optimizer. Preserve constrained
STM32 filesystems and bind corrected ESP32 UART/OLED budgets to source size
assertions. Document the separately measured preexisting W12 package limits.

Adapted for this branch from meshcore-dev/MeshCore PRs #3521, #3340, #3362,
#2062, #3503, #3038, #3534, #3544 and #3512.

Validation: 1,829 native tests; sanitized parser, inbox, LittleFS, ACL, clock,
RTC, IRQ/FIFO and bridge fault tests; 332 additional Companion cases; real
RAK4631 Full and both repeater profiles, G2 Full/standard, V3 Full and both
constrained STM32 release recipes. Radio-family compile coverage continues
separately; W12 full/portable package guards remain enforced.
2026-10-09 19:56:08 -07:00

115 lines
3.9 KiB
INI

[lora_e5_mini]
extends = stm32_base
board = lora_e5_mini
board_upload.maximum_size = 229376 ; 32kb for FS
build_flags = ${stm32_base.build_flags}
-D RADIO_CLASS=CustomSTM32WLx
-D WRAPPER_CLASS=CustomSTM32WLxWrapper
-D SPI_INTERFACES_COUNT=0
-D RX_BOOSTED_GAIN=true
-D LORA_TX_POWER=22
-D SX126X_CURRENT_LIMIT=140
-D P_LORA_TX_LED=LED_RED
-D PIN_USER_BTN=USER_BTN
-I variants/wio-e5-mini
build_src_filter = ${stm32_base.build_src_filter}
+<../variants/wio-e5-mini>
lib_deps = ${stm32_base.lib_deps}
finitespace/BME280 @ ^3.0.0
[env:wio-e5-mini_repeater]
extends = lora_e5_mini
board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS
; GCC 14.2 emits a materially smaller LTO image than the platform's GCC 12
; default, preserving the deployed filesystem boundary without cutting roles.
platform_packages =
platformio/toolchain-gccarmnoneeabi@^1.140201.0
build_unflags = -Os
build_flags = ${lora_e5_mini.build_flags}
-Oz ; GCC 12's strongest size profile preserves the deployed 16 KiB filesystem boundary
-flto
-fno-inline-small-functions ; reduce flash without moving the deployed filesystem boundary
-fipa-pta
-fmerge-all-constants
-fno-ipa-cp-clone
-fno-partial-inlining
-fno-semantic-interposition
-fno-unwind-tables
-fno-asynchronous-unwind-tables
-fno-schedule-insns2
-Wl,--sort-section=alignment
-D RADIO_LIVENESS_SOFT_ONLY=1 ; integrated STM32WL has no separate radio-reset pin
-D WIO_E5_MINI_NO_EXTERNAL_SENSORS=1 ; the dedicated sensor env retains BME280 support
-D LFS_FLASH_TOTAL_SIZE=16384
-D MESH_ENABLE_CLOCK_SYNC=0 ; preserve the 16 KiB filesystem on this 256 KiB part
-D MESH_ENABLE_FLOOD_GROUP_MODERATION=0 ; keep core routing and radio scheduling in flash
-D MESH_PACKET_LOGGING_COMPACT=1 ; retain complete RX/TX bytes without the duplicate parsed RX line
-D MESH_ENABLE_RECENT_REPEATERS=1
-D LORA_TX_POWER=22
-D ADVERT_NAME='"wio-e5-mini Repeater"'
-D ADMIN_PASSWORD='"password"'
-D MAX_NEIGHBOURS=50
build_src_filter = ${lora_e5_mini.build_src_filter}
+<../examples/simple_repeater/*.cpp>
lib_deps = ${stm32_base.lib_deps}
[env:wio-e5-mini_sensor]
extends = lora_e5_mini
build_unflags = -Os
build_flags = ${lora_e5_mini.build_flags}
-Oz
-flto
-fno-inline-small-functions
-fipa-pta
-fmerge-all-constants
-fno-ipa-cp-clone
-fno-partial-inlining
-fno-semantic-interposition
-fno-unwind-tables
-fno-asynchronous-unwind-tables
-D LORA_TX_POWER=22
-D ADVERT_NAME='"wio-e5-mini Sensor"'
-D ADMIN_PASSWORD='"password"'
build_src_filter = ${lora_e5_mini.build_src_filter}
+<../examples/simple_sensor>
[env:wio-e5-mini_companion_radio_usb]
extends = lora_e5_mini
platform_packages = platformio/toolchain-gccarmnoneeabi@^1.140201.0
build_unflags =
-Os
build_flags = ${lora_e5_mini.build_flags}
-D ED25519_COMPACT_SHA512=1 ; same hash rounds, compact loop preserves the filesystem boundary
-Oz
-flto
-fno-inline-small-functions
-fno-tree-dominator-opts ; save 160 release bytes while preserving the 32 KiB filesystem
-fno-caller-saves ; avoid spill-code growth and retain the 32 KiB filesystem
-fipa-pta
-fmerge-all-constants
-fno-ipa-cp-clone
-fno-partial-inlining
-fno-semantic-interposition
-fno-unwind-tables
-fno-asynchronous-unwind-tables
-fno-schedule-insns2
-Wl,--sort-section=alignment
-D LORA_TX_POWER=22
-D MAX_CONTACTS=100
-D MAX_GROUP_CHANNELS=8
; This board has no display. Retain its physical-button Companion controls
; without linking the full display-oriented UI task.
-D WIO_E5_MINI_HEADLESS_COMPANION_UI=1
; The optional I2C BME280 is not board-integrated; retain board voltage.
-D WIO_E5_MINI_NO_EXTERNAL_SENSORS=1
-D ENABLE_USB_INTERFACE
build_src_filter = ${lora_e5_mini.build_src_filter}
+<../examples/companion_radio/*.cpp>
lib_deps = ${stm32_base.lib_deps}
densaugeo/base64 @ ~1.4.0
[env:wio-e5-mini_kiss_modem]
extends = lora_e5_mini
build_src_filter = ${lora_e5_mini.build_src_filter}
+<../examples/kiss_modem/>