mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-10-28 12:22:23 +00:00
Support radio2, temporary profiles and one schedule slot per command family. Preserve reply affinity, shared airtime and session expiry with guarded warm switching on SX1262 and LR1110. Validate native routing, scheduling, persistence and driver failure paths; build Companion, repeater, room and sensor roles on ESP32, nRF52 and STM32.
195 lines
5.7 KiB
INI
195 lines
5.7 KiB
INI
; PlatformIO Project Configuration File
|
|
;
|
|
; Build options: build flags, source filter
|
|
; Upload options: custom upload port, speed and extra flags
|
|
; Library options: dependencies, extra library storages
|
|
; Advanced options: extra scripting
|
|
;
|
|
; Please visit documentation for the other options and examples
|
|
; https://docs.platformio.org/page/projectconf.html
|
|
|
|
[platformio]
|
|
extra_configs =
|
|
variants/*/platformio.ini
|
|
platformio.local.ini
|
|
|
|
[arduino_base]
|
|
framework = arduino
|
|
monitor_speed = 115200
|
|
lib_deps =
|
|
SPI
|
|
Wire
|
|
;jgromes/RadioLib @ ^7.7.1
|
|
https://github.com/jgromes/RadioLib.git#6d8934836678d8894e3d556550475b37dce3e2b6
|
|
rweather/Crypto @ ^0.4.0
|
|
adafruit/RTClib @ ^2.1.3
|
|
melopero/Melopero RV3028 @ ^1.1.0
|
|
electroniccats/CayenneLPP @ 1.6.1
|
|
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
|
|
-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
|
|
-D RADIOLIB_EXCLUDE_CC1101=1
|
|
-D RADIOLIB_EXCLUDE_RF69=1
|
|
-D RADIOLIB_EXCLUDE_SX1231=1
|
|
-D RADIOLIB_EXCLUDE_SI443X=1
|
|
-D RADIOLIB_EXCLUDE_RFM2X=1
|
|
-D RADIOLIB_EXCLUDE_SX128X=1
|
|
-D RADIOLIB_EXCLUDE_AFSK=1
|
|
-D RADIOLIB_EXCLUDE_AX25=1
|
|
-D RADIOLIB_EXCLUDE_HELLSCHREIBER=1
|
|
-D RADIOLIB_EXCLUDE_MORSE=1
|
|
-D RADIOLIB_EXCLUDE_APRS=1
|
|
-D RADIOLIB_EXCLUDE_BELL=1
|
|
-D RADIOLIB_EXCLUDE_RTTY=1
|
|
-D RADIOLIB_EXCLUDE_SSTV=1
|
|
build_src_filter =
|
|
+<*.cpp>
|
|
+<helpers/*.cpp>
|
|
+<helpers/radiolib/*.cpp>
|
|
+<helpers/bridges/BridgeBase.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
|
|
; ----------------- ESP32 ---------------------
|
|
|
|
[esp32_base]
|
|
extends = arduino_base
|
|
platform = platformio/espressif32@6.11.0
|
|
monitor_filters = esp32_exception_decoder
|
|
extra_scripts = merge-bin.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D ESP32_PLATFORM
|
|
; -D ESP32_CPU_FREQ=80 ; change it to your need
|
|
build_src_filter = ${arduino_base.build_src_filter}
|
|
|
|
[esp32_ota]
|
|
lib_deps =
|
|
ESP32Async/ESPAsyncWebServer @ 3.10.3
|
|
file://arch/esp32/AsyncElegantOTA
|
|
|
|
; esp32c6 uses arduino framework 3.x
|
|
; WARNING: experimental. May not work as stable as other platforms.
|
|
[esp32c6_base]
|
|
extends = esp32_base
|
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13-1/platform-espressif32.zip
|
|
|
|
; ----------------- NRF52 ---------------------
|
|
|
|
[nrf52_base]
|
|
extends = arduino_base
|
|
platform = nordicnrf52
|
|
platform_packages =
|
|
; use internal fork that includes patch to ble stack to prevent firmware lockup during rapid connect/disconnect
|
|
; https://github.com/meshcore-dev/MeshCore/pull/1177
|
|
; https://github.com/meshcore-dev/MeshCore/pull/1295
|
|
framework-arduinoadafruitnrf52 @ https://github.com/meshcore-dev/Adafruit_nRF52_Arduino#d541301665b40959682252911e57b11df3ee651a
|
|
platformio/toolchain-gccarmnoneeabi@^1.140201.0
|
|
extra_scripts = create-uf2.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D NRF52_PLATFORM
|
|
-D LFS_NO_ASSERT=1
|
|
-D EXTRAFS=1
|
|
-D USE_CC310_HW_CRYPTO=1
|
|
lib_deps =
|
|
${arduino_base.lib_deps}
|
|
https://github.com/oltaco/CustomLFS#0.2.3
|
|
; ----------------- RP2040 ---------------------
|
|
|
|
[rp2040_base]
|
|
extends = arduino_base
|
|
upload_protocol = picotool
|
|
board_build.core = earlephilhower
|
|
platform = https://github.com/maxgerhardt/platform-raspberrypi.git ; framework-arduinopico @ 1.50600.0+sha.6a1d13e9
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D RP2040_PLATFORM
|
|
|
|
; ----------------- STM32 ----------------------
|
|
|
|
[stm32_base]
|
|
extends = arduino_base
|
|
; Pinned pending upstream fix for upstream conversions.
|
|
; https://github.com/jgromes/RadioLib/issues/1873
|
|
platform = ststm32@19.7.1
|
|
extra_scripts = post:arch/stm32/build_hex.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D STM32_PLATFORM
|
|
-I src/helpers/stm32
|
|
-I $PROJECT_PACKAGES_DIR/framework-arduinoststm32/libraries/SubGhz/src
|
|
build_src_filter = ${arduino_base.build_src_filter}
|
|
+<helpers/stm32>
|
|
lib_deps = ${arduino_base.lib_deps}
|
|
file://arch/stm32/Adafruit_LittleFS_stm32
|
|
SubGhz
|
|
|
|
[sensor_base]
|
|
build_flags =
|
|
-D ENV_INCLUDE_GPS=1
|
|
-D ENV_INCLUDE_AHTX0=1
|
|
-D ENV_INCLUDE_BME280=1
|
|
-D ENV_INCLUDE_BMP280=1
|
|
-D ENV_INCLUDE_SHTC3=1
|
|
-D ENV_INCLUDE_SHT4X=1
|
|
-D ENV_INCLUDE_LPS22HB=1
|
|
-D ENV_INCLUDE_INA3221=1
|
|
-D ENV_INCLUDE_INA219=1
|
|
-D ENV_INCLUDE_INA226=1
|
|
-D ENV_INCLUDE_INA260=1
|
|
-D ENV_INCLUDE_MLX90614=1
|
|
-D ENV_INCLUDE_VL53L0X=1
|
|
-D ENV_INCLUDE_BME680=1
|
|
-D ENV_INCLUDE_BMP085=1
|
|
lib_deps =
|
|
adafruit/Adafruit INA3221 Library @ ^1.0.1
|
|
adafruit/Adafruit INA219 @ ^1.2.3
|
|
robtillaart/INA226 @ ^0.6.4
|
|
adafruit/Adafruit INA260 Library @ ^1.5.3
|
|
adafruit/Adafruit AHTX0 @ ^2.0.5
|
|
adafruit/Adafruit BME280 Library @ ^2.3.0
|
|
adafruit/Adafruit BMP280 Library @ ^2.6.8
|
|
adafruit/Adafruit SHTC3 Library @ ^1.0.1
|
|
sensirion/Sensirion I2C SHT4x @ ^1.1.2
|
|
arduino-libraries/Arduino_LPS22HB @ ^1.0.2
|
|
adafruit/Adafruit MLX90614 Library @ ^2.1.5
|
|
adafruit/Adafruit_VL53L0X @ ^1.2.4
|
|
stevemarple/MicroNMEA @ ^2.0.6
|
|
adafruit/Adafruit BME680 Library @ ^2.0.4
|
|
adafruit/Adafruit BMP085 Library @ ^1.2.4
|
|
|
|
; ----------------- TESTING ---------------------
|
|
|
|
[env:native]
|
|
platform = native
|
|
test_framework = googletest
|
|
build_flags = -std=c++17
|
|
-I src
|
|
-I test/mocks
|
|
test_build_src = yes
|
|
test_ignore = test_kiss_modem
|
|
build_src_filter =
|
|
-<*>
|
|
+<../src/Utils.cpp>
|
|
+<../src/Packet.cpp>
|
|
+<../src/helpers/ConfigSerializer.cpp>
|
|
+<../src/helpers/DynamicConfigSerializer.cpp>
|
|
+<../src/helpers/RadioProfileCLI.cpp>
|
|
lib_deps =
|
|
google/googletest @ 1.17.0
|
|
|
|
[env:native_kiss_modem]
|
|
platform = native
|
|
test_framework = googletest
|
|
build_flags = -std=c++17
|
|
-I test/mocks
|
|
-I src
|
|
-I examples/kiss_modem
|
|
test_build_src = yes
|
|
test_filter = test_kiss_modem
|
|
build_src_filter =
|
|
-<*>
|
|
+<../examples/kiss_modem/KissModem.cpp>
|
|
lib_deps =
|
|
google/googletest @ 1.17.0
|