platformio.ini 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. ; PlatformIO Project Configuration File
  2. ;
  3. ; Build options: build flags, source filter
  4. ; Upload options: custom upload port, speed and extra flags
  5. ; Library options: dependencies, extra library storages
  6. ; Advanced options: extra scripting
  7. ;
  8. ; Please visit documentation for the other options and examples
  9. ; https://docs.platformio.org/page/projectconf.html
  10. [platformio]
  11. extra_configs =
  12. variants/*/platformio.ini
  13. platformio.local.ini
  14. [arduino_base]
  15. framework = arduino
  16. monitor_speed = 115200
  17. lib_deps =
  18. SPI
  19. Wire
  20. jgromes/RadioLib @ ^7.6.0
  21. rweather/Crypto @ ^0.4.0
  22. adafruit/RTClib @ ^2.1.3
  23. melopero/Melopero RV3028 @ ^1.1.0
  24. electroniccats/CayenneLPP @ 1.6.1
  25. build_flags = -w -DNDEBUG -DRADIOLIB_STATIC_ONLY=1 -DRADIOLIB_GODMODE=1
  26. -D RADIOLIB_STATIC_ARRAY_SIZE=260
  27. -D LORA_FREQ=869.618
  28. -D LORA_BW=62.5
  29. -D LORA_SF=8
  30. -D ENABLE_ADVERT_ON_BOOT=1
  31. -D ENABLE_PRIVATE_KEY_IMPORT=1 ; NOTE: comment these out for more secure firmware
  32. -D ENABLE_PRIVATE_KEY_EXPORT=1
  33. -D RADIOLIB_EXCLUDE_CC1101=1
  34. -D RADIOLIB_EXCLUDE_RF69=1
  35. -D RADIOLIB_EXCLUDE_SX1231=1
  36. -D RADIOLIB_EXCLUDE_SI443X=1
  37. -D RADIOLIB_EXCLUDE_RFM2X=1
  38. -D RADIOLIB_EXCLUDE_SX128X=1
  39. -D RADIOLIB_EXCLUDE_AFSK=1
  40. -D RADIOLIB_EXCLUDE_AX25=1
  41. -D RADIOLIB_EXCLUDE_HELLSCHREIBER=1
  42. -D RADIOLIB_EXCLUDE_MORSE=1
  43. -D RADIOLIB_EXCLUDE_APRS=1
  44. -D RADIOLIB_EXCLUDE_BELL=1
  45. -D RADIOLIB_EXCLUDE_RTTY=1
  46. -D RADIOLIB_EXCLUDE_SSTV=1
  47. build_src_filter =
  48. +<*.cpp>
  49. +<helpers/*.cpp>
  50. +<helpers/radiolib/*.cpp>
  51. +<helpers/bridges/BridgeBase.cpp>
  52. +<helpers/ui/MomentaryButton.cpp>
  53. ; ----------------- ESP32 ---------------------
  54. [esp32_base]
  55. extends = arduino_base
  56. platform = platformio/espressif32@6.11.0
  57. monitor_filters = esp32_exception_decoder
  58. extra_scripts =
  59. pre:arch/esp32/extra_scripts/generate_web_panel_cert.py
  60. merge-bin.py
  61. build_flags = ${arduino_base.build_flags}
  62. -D ESP32_PLATFORM
  63. ; -D ESP32_CPU_FREQ=80 ; change it to your need
  64. -Wl,--wrap=xTaskCreatePinnedToCore
  65. -Wl,--wrap=mbedtls_ssl_config_defaults
  66. build_src_filter = ${arduino_base.build_src_filter}
  67. +<../arch/esp32/task_pinning.c>
  68. +<../arch/esp32/tls_server_config.c>
  69. +<../arch/esp32/CPUUsageTracker.cpp>
  70. [esp32_ota]
  71. lib_deps =
  72. ESP32Async/ESPAsyncWebServer @ 3.10.3
  73. file://arch/esp32/AsyncElegantOTA
  74. ; esp32c6 uses arduino framework 3.x
  75. ; WARNING: experimental. May not work as stable as other platforms.
  76. [esp32c6_base]
  77. extends = esp32_base
  78. platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13-1/platform-espressif32.zip
  79. ; ----------------- NRF52 ---------------------
  80. [nrf52_base]
  81. extends = arduino_base
  82. platform = nordicnrf52
  83. platform_packages =
  84. ; use internal fork that includes patch to ble stack to prevent firmware lockup during rapid connect/disconnect
  85. ; https://github.com/meshcore-dev/MeshCore/pull/1177
  86. ; https://github.com/meshcore-dev/MeshCore/pull/1295
  87. framework-arduinoadafruitnrf52 @ https://github.com/meshcore-dev/Adafruit_nRF52_Arduino#d541301
  88. extra_scripts = create-uf2.py
  89. build_flags = ${arduino_base.build_flags}
  90. -D NRF52_PLATFORM
  91. -D LFS_NO_ASSERT=1
  92. -D EXTRAFS=1
  93. lib_deps =
  94. ${arduino_base.lib_deps}
  95. https://github.com/oltaco/CustomLFS#0.2.2
  96. ; ----------------- RP2040 ---------------------
  97. [rp2040_base]
  98. extends = arduino_base
  99. upload_protocol = picotool
  100. board_build.core = earlephilhower
  101. platform = https://github.com/maxgerhardt/platform-raspberrypi.git#4e22a0d ; framework-arduinopico @ 1.50600.0+sha.6a1d13e9
  102. build_flags = ${arduino_base.build_flags}
  103. -D RP2040_PLATFORM
  104. ; ----------------- STM32 ----------------------
  105. [stm32_base]
  106. extends = arduino_base
  107. platform = ststm32
  108. extra_scripts = post:arch/stm32/build_hex.py
  109. build_flags = ${arduino_base.build_flags}
  110. -D STM32_PLATFORM
  111. -I src/helpers/stm32
  112. -I $PROJECT_PACKAGES_DIR/framework-arduinoststm32/libraries/SubGhz/src
  113. build_src_filter = ${arduino_base.build_src_filter}
  114. +<helpers/stm32>
  115. lib_deps = ${arduino_base.lib_deps}
  116. file://arch/stm32/Adafruit_LittleFS_stm32
  117. SubGhz
  118. [sensor_base]
  119. build_flags =
  120. -D ENV_INCLUDE_GPS=1
  121. -D ENV_INCLUDE_AHTX0=1
  122. -D ENV_INCLUDE_BME280=1
  123. -D ENV_INCLUDE_BMP280=1
  124. -D ENV_INCLUDE_SHTC3=1
  125. -D ENV_INCLUDE_SHT4X=1
  126. -D ENV_INCLUDE_LPS22HB=1
  127. -D ENV_INCLUDE_INA3221=1
  128. -D ENV_INCLUDE_INA219=1
  129. -D ENV_INCLUDE_INA226=1
  130. -D ENV_INCLUDE_INA260=1
  131. -D ENV_INCLUDE_MLX90614=1
  132. -D ENV_INCLUDE_VL53L0X=1
  133. -D ENV_INCLUDE_BME680=1
  134. -D ENV_INCLUDE_BMP085=1
  135. lib_deps =
  136. adafruit/Adafruit INA3221 Library @ ^1.0.1
  137. adafruit/Adafruit INA219 @ ^1.2.3
  138. robtillaart/INA226 @ ^0.6.4
  139. adafruit/Adafruit INA260 Library @ ^1.5.3
  140. adafruit/Adafruit AHTX0 @ ^2.0.5
  141. adafruit/Adafruit BME280 Library @ ^2.3.0
  142. adafruit/Adafruit BMP280 Library @ ^2.6.8
  143. adafruit/Adafruit SHTC3 Library @ ^1.0.1
  144. sensirion/Sensirion I2C SHT4x @ ^1.1.2
  145. arduino-libraries/Arduino_LPS22HB @ ^1.0.2
  146. adafruit/Adafruit MLX90614 Library @ ^2.1.5
  147. adafruit/Adafruit_VL53L0X @ ^1.2.4
  148. stevemarple/MicroNMEA @ ^2.0.6
  149. adafruit/Adafruit BME680 Library @ ^2.0.4
  150. adafruit/Adafruit BMP085 Library @ ^1.2.4
  151. ; ----------------- TESTING ---------------------
  152. [env:native]
  153. platform = native
  154. build_flags = -std=c++17
  155. -I src
  156. -I test/mocks
  157. test_build_src = yes
  158. build_src_filter =
  159. -<*>
  160. +<../src/Utils.cpp>
  161. lib_deps =
  162. google/googletest @ 1.17.0