From eac2613743ca8e0116bbb39112169d0d1fe57d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 12 Sep 2022 14:02:21 +0200 Subject: [PATCH] make platformio.ini even more modular --- arch/esp32/esp32.ini | 52 +++++++++ arch/esp32/esp32s3.ini | 46 ++++++++ arch/nrf52/nrf52.ini | 20 ++++ arch/nrf52/nrf52840.ini | 14 +++ arch/portduino/portduino.ini | 19 ++++ arch/rp2040/rp2040.ini | 19 ++++ arch/stm32/stm32wl5e.ini | 19 ++++ platformio.ini | 178 +----------------------------- variants/portduino/platformio.ini | 20 ---- 9 files changed, 193 insertions(+), 194 deletions(-) create mode 100644 arch/esp32/esp32.ini create mode 100644 arch/esp32/esp32s3.ini create mode 100644 arch/nrf52/nrf52.ini create mode 100644 arch/nrf52/nrf52840.ini create mode 100644 arch/portduino/portduino.ini create mode 100644 arch/rp2040/rp2040.ini create mode 100644 arch/stm32/stm32wl5e.ini diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini new file mode 100644 index 00000000..2d4d96a1 --- /dev/null +++ b/arch/esp32/esp32.ini @@ -0,0 +1,52 @@ +; Common settings for ESP targes, mixin with extends = esp32_base +[esp32_base] +extends = arduino_base +platform = espressif32 +build_src_filter = + ${arduino_base.build_src_filter} - - - +upload_speed = 115200 +debug_init_break = tbreak setup + +# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging. +# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h +# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h +build_flags = + ${arduino_base.build_flags} + -Wall + -Wextra + -Isrc/platform/esp32 + -std=c++11 + -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG + -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG + -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL + -DAXP_DEBUG_PORT=Serial + -DCONFIG_BT_NIMBLE_ENABLED + -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2 + -DCONFIG_BT_NIMBLE_MAX_CCCDS=20 + +lib_deps = + ${arduino_base.lib_deps} + ${networking_base.lib_deps} + ${environmental_base.lib_deps} + https://github.com/caveman99/esp32_https_server.git + h2zero/NimBLE-Arduino@1.4.0 + arduino-libraries/NTPClient@^3.1.0 + https://github.com/lewisxhe/XPowersLib.git + +lib_ignore = + segger_rtt + ESP32 BLE Arduino +platform_packages = + framework-arduinoespressif32 + +; leave this commented out to avoid breaking Windows +;upload_port = /dev/ttyUSB0 +;monitor_port = /dev/ttyUSB0 + +; Please don't delete these lines. JM uses them. +;upload_port = /dev/cu.SLAB_USBtoUART +;monitor_port = /dev/cu.SLAB_USBtoUART + +; customize the partition table +; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables +board_build.partitions = partition-table.csv diff --git a/arch/esp32/esp32s3.ini b/arch/esp32/esp32s3.ini new file mode 100644 index 00000000..0497f1c9 --- /dev/null +++ b/arch/esp32/esp32s3.ini @@ -0,0 +1,46 @@ +[esp32s3_base] +extends = arduino_base +platform = espressif32 +build_src_filter = + ${arduino_base.build_src_filter} - - - +upload_speed = 961200 +monitor_speed = 115200 +debug_init_break = tbreak setup + +# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging. +# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h +# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h +build_flags = + ${arduino_base.build_flags} + -Wall + -Wextra + -Isrc/platform/esp32 + -std=c++11 + -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG + -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG + -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL + -DAXP_DEBUG_PORT=Serial + -DCONFIG_BT_NIMBLE_ENABLED + -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2 + -DCONFIG_BT_NIMBLE_MAX_CCCDS=20 + +lib_deps = + ${arduino_base.lib_deps} + ${networking_base.lib_deps} + ${environmental_base.lib_deps} + https://github.com/meshtastic/esp32_https_server.git + h2zero/NimBLE-Arduino@1.4.0 + arduino-libraries/NTPClient@^3.1.0 + https://github.com/lewisxhe/XPowersLib.git + + +lib_ignore = + segger_rtt + ESP32 BLE Arduino +platform_packages = + framework-arduinoespressif32@ 3.20004.220825 + +; customize the partition table +; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables +board_build.partitions = partition-table.csv + diff --git a/arch/nrf52/nrf52.ini b/arch/nrf52/nrf52.ini new file mode 100644 index 00000000..a79ebda4 --- /dev/null +++ b/arch/nrf52/nrf52.ini @@ -0,0 +1,20 @@ +[nrf52_base] +; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files +; platform = nordicnrf52 ;pending https://github.com/platformio/builder-framework-arduino-nrf5/pull/7 +platform = https://github.com/meshtastic/platform-nordicnrf52.git#merge + +extends = arduino_base +build_type = debug ; I'm debugging with ICE a lot now +; note: liboberon provides the AES256 implementation for NRF52 (though not using the hardware acceleration of the NRF52840 - FIXME) +build_flags = + ${arduino_base.build_flags} -Wno-unused-variable + -Isrc/platform/nrf52 +build_src_filter = + ${arduino_base.build_src_filter} - - - - - - - - +lib_ignore = + BluetoothOTA + +; Note: By default no lora device is created for this build - it uses a simulated interface +[env:feather_nrf52832] +extends = nrf52_base +board = adafruit_feather_nrf52832 diff --git a/arch/nrf52/nrf52840.ini b/arch/nrf52/nrf52840.ini new file mode 100644 index 00000000..61995378 --- /dev/null +++ b/arch/nrf52/nrf52840.ini @@ -0,0 +1,14 @@ +[nrf52840_base] +extends = nrf52_base +build_flags = ${nrf52_base.build_flags} +lib_deps = + ${arduino_base.lib_deps} + ${environmental_base.lib_deps} + https://github.com/Kongduino/Adafruit_nRFCrypto.git + +; Note: By default no lora device is created for this build - it uses a simulated interface +[env:nrf52840dk] +extends = nrf52840_base +board = nrf52840_dk + + diff --git a/arch/portduino/portduino.ini b/arch/portduino/portduino.ini new file mode 100644 index 00000000..b1f793fe --- /dev/null +++ b/arch/portduino/portduino.ini @@ -0,0 +1,19 @@ +; The Portduino based sim environment on top of any host OS, all hardware will be simulated +[portduino_base] +build_src_filter = + ${env.build_src_filter} + - + - + - + - + - + - + - + - + +<../variants/portduino> +lib_deps = + ${env.lib_deps} + ${networking_base.lib_deps} + rweather/Crypto + https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74 +build_flags = ${arduino_base.build_flags} -Isrc/platform/portduino diff --git a/arch/rp2040/rp2040.ini b/arch/rp2040/rp2040.ini new file mode 100644 index 00000000..742909e5 --- /dev/null +++ b/arch/rp2040/rp2040.ini @@ -0,0 +1,19 @@ +; Common settings for rp2040 Processor based targets +[rp2040_base] +platform = https://github.com/maxgerhardt/platform-raspberrypi.git +extends = arduino_base +board_build.core = earlephilhower +board_build.filesystem_size = 0.5m +build_flags = + ${arduino_base.build_flags} -Wno-unused-variable + -Isrc/platform/rp2040 + -D__PLAT_RP2040__ +# -D _POSIX_THREADS +build_src_filter = + ${arduino_base.build_src_filter} - - - - - - - - +lib_ignore = + BluetoothOTA +lib_deps = + ${arduino_base.lib_deps} + ${environmental_base.lib_deps} + https://github.com/kokke/tiny-AES-c.git diff --git a/arch/stm32/stm32wl5e.ini b/arch/stm32/stm32wl5e.ini new file mode 100644 index 00000000..862d1c9c --- /dev/null +++ b/arch/stm32/stm32wl5e.ini @@ -0,0 +1,19 @@ +[stm32wl5e_base] +platform = ststm32 +board = generic_wl5e +framework = arduino +build_type = debug +build_flags = + ${arduino_base.build_flags} + -Isrc/platform/stm32wl -g + -DHAL_SUBGHZ_MODULE_ENABLED +# Arduino/PlatformIO framework-arduinoststm32 package does not presently have SUBGHZSPI support +# -DPIN_SPI_MOSI=PINSUBGHZSPIMOSI -DPIN_SPI_MISO=PINSUBGHZSPIMISO -DPIN_SPI_SCK=PINSUBGHZSPISCK +build_src_filter = + ${arduino_base.build_src_filter} - - - - - - - - - - - - - +lib_deps = + ${env.lib_deps} + https://github.com/jgromes/RadioLib.git + https://github.com/kokke/tiny-AES-c.git +lib_ignore = + mathertel/OneButton@^2.0.3 diff --git a/platformio.ini b/platformio.ini index 5a7cb8d9..c00bec53 100644 --- a/platformio.ini +++ b/platformio.ini @@ -24,7 +24,9 @@ default_envs = tbeam ;default_envs = m5stack-coreink ;default_envs = rak4631 -extra_configs = variants/*/platformio.ini +extra_configs = + arch/*/*.ini + variants/*/platformio.ini [env] extra_scripts = bin/platformio-custom.py @@ -87,176 +89,4 @@ lib_deps = adafruit/Adafruit MCP9808 Library@^2.0.0 adafruit/Adafruit INA260 Library@^1.5.0 adafruit/Adafruit INA219@^1.2.0 -; Common settings for ESP targes, mixin with extends = esp32_base -[esp32_base] -extends = arduino_base -platform = espressif32 -build_src_filter = - ${arduino_base.build_src_filter} - - - -upload_speed = 115200 -debug_init_break = tbreak setup - -# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging. -# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h -# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h -build_flags = - ${arduino_base.build_flags} - -Wall - -Wextra - -Isrc/platform/esp32 - -std=c++11 - -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG - -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG - -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL - -DAXP_DEBUG_PORT=Serial - -DCONFIG_BT_NIMBLE_ENABLED - -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2 - -DCONFIG_BT_NIMBLE_MAX_CCCDS=20 - -lib_deps = - ${arduino_base.lib_deps} - ${networking_base.lib_deps} - ${environmental_base.lib_deps} - https://github.com/caveman99/esp32_https_server.git - h2zero/NimBLE-Arduino@1.4.0 - arduino-libraries/NTPClient@^3.1.0 - https://github.com/lewisxhe/XPowersLib.git - -lib_ignore = - segger_rtt - ESP32 BLE Arduino -platform_packages = - framework-arduinoespressif32 - -; leave this commented out to avoid breaking Windows -;upload_port = /dev/ttyUSB0 -;monitor_port = /dev/ttyUSB0 - -; Please don't delete these lines. JM uses them. -;upload_port = /dev/cu.SLAB_USBtoUART -;monitor_port = /dev/cu.SLAB_USBtoUART - -; customize the partition table -; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables -board_build.partitions = partition-table.csv - -[nrf52_base] -; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files -; platform = nordicnrf52 ;pending https://github.com/platformio/builder-framework-arduino-nrf5/pull/7 -platform = https://github.com/meshtastic/platform-nordicnrf52.git#merge - -extends = arduino_base -build_type = debug ; I'm debugging with ICE a lot now -; note: liboberon provides the AES256 implementation for NRF52 (though not using the hardware acceleration of the NRF52840 - FIXME) -build_flags = - ${arduino_base.build_flags} -Wno-unused-variable - -Isrc/platform/nrf52 -build_src_filter = - ${arduino_base.build_src_filter} - - - - - - - - -lib_ignore = - BluetoothOTA - -[nrf52840_base] -extends = nrf52_base -build_flags = ${nrf52_base.build_flags} -lib_deps = - ${arduino_base.lib_deps} - ${environmental_base.lib_deps} - https://github.com/Kongduino/Adafruit_nRFCrypto.git - -; Note: By default no lora device is created for this build - it uses a simulated interface -[env:nrf52840dk] -extends = nrf52840_base -board = nrf52840_dk - -; Note: By default no lora device is created for this build - it uses a simulated interface -[env:feather_nrf52832] -extends = nrf52_base -board = adafruit_feather_nrf52832 - -; Common settings for rp2040 Processor based targets -[rp2040_base] -platform = https://github.com/maxgerhardt/platform-raspberrypi.git -extends = arduino_base -board_build.core = earlephilhower -board_build.filesystem_size = 0.5m -build_flags = - ${arduino_base.build_flags} -Wno-unused-variable - -Isrc/platform/rp2040 - -D__PLAT_RP2040__ -# -D _POSIX_THREADS -build_src_filter = - ${arduino_base.build_src_filter} - - - - - - - - -lib_ignore = - BluetoothOTA -lib_deps = - ${arduino_base.lib_deps} - ${environmental_base.lib_deps} - https://github.com/kokke/tiny-AES-c.git - -[stm32wl5e_base] -platform = ststm32 -board = generic_wl5e -framework = arduino -build_type = debug -build_flags = - ${arduino_base.build_flags} - -Isrc/platform/stm32wl -g - -DHAL_SUBGHZ_MODULE_ENABLED -# Arduino/PlatformIO framework-arduinoststm32 package does not presently have SUBGHZSPI support -# -DPIN_SPI_MOSI=PINSUBGHZSPIMOSI -DPIN_SPI_MISO=PINSUBGHZSPIMISO -DPIN_SPI_SCK=PINSUBGHZSPISCK -build_src_filter = - ${arduino_base.build_src_filter} - - - - - - - - - - - - - -lib_deps = - ${env.lib_deps} - https://github.com/jgromes/RadioLib.git - https://github.com/kokke/tiny-AES-c.git -lib_ignore = - mathertel/OneButton@^2.0.3 - -[esp32s3_base] -extends = arduino_base -platform = espressif32 -build_src_filter = - ${arduino_base.build_src_filter} - - - -upload_speed = 961200 -monitor_speed = 115200 -debug_init_break = tbreak setup - -# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging. -# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h -# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h -build_flags = - ${arduino_base.build_flags} - -Wall - -Wextra - -Isrc/platform/esp32 - -std=c++11 - -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG - -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG - -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL - -DAXP_DEBUG_PORT=Serial - -DCONFIG_BT_NIMBLE_ENABLED - -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2 - -DCONFIG_BT_NIMBLE_MAX_CCCDS=20 - -lib_deps = - ${arduino_base.lib_deps} - ${networking_base.lib_deps} - ${environmental_base.lib_deps} - https://github.com/meshtastic/esp32_https_server.git - h2zero/NimBLE-Arduino@1.4.0 - arduino-libraries/NTPClient@^3.1.0 - https://github.com/lewisxhe/XPowersLib.git - - -lib_ignore = - segger_rtt - ESP32 BLE Arduino -platform_packages = - framework-arduinoespressif32@ 3.20004.220825 - -; customize the partition table -; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables -board_build.partitions = partition-table.csv - + \ No newline at end of file diff --git a/variants/portduino/platformio.ini b/variants/portduino/platformio.ini index 6d94cd81..c95ae37f 100644 --- a/variants/portduino/platformio.ini +++ b/variants/portduino/platformio.ini @@ -1,23 +1,3 @@ -; The Portduino based sim environment on top of any host OS, all hardware will be simulated -[portduino_base] -build_src_filter = - ${env.build_src_filter} - - - - - - - - - - - - - - - - - +<../variants/portduino> -lib_deps = - ${env.lib_deps} - ${networking_base.lib_deps} - rweather/Crypto - https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74 -build_flags = ${arduino_base.build_flags} -Isrc/platform/portduino - [env:native] platform = https://github.com/meshtastic/platform-native.git build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino