[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 -D ED25519_COMPACT_SCALAR=1 ; same ref10 arithmetic with fixed loops instead of unrolled code -Oz -flto -fno-reorder-blocks -fno-reorder-functions -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/>