From 10f41e376c938c1a5ef1d1fd657e6225d56a1f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Fri, 5 May 2023 18:09:06 +0200 Subject: [PATCH 1/3] use BSEC2 for ESP32-C3 --- arch/esp32/esp32c3.ini | 7 +++++- src/modules/Telemetry/Sensor/BME680Sensor.cpp | 25 ++++++++++++++++--- src/modules/Telemetry/Sensor/BME680Sensor.h | 15 ++++++++++- variants/ai-c3/platformio.ini | 8 +----- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/arch/esp32/esp32c3.ini b/arch/esp32/esp32c3.ini index 5ebb789ad..363b1cb01 100644 --- a/arch/esp32/esp32c3.ini +++ b/arch/esp32/esp32c3.ini @@ -25,6 +25,7 @@ build_flags = -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2 -DCONFIG_BT_NIMBLE_MAX_CCCDS=20 -DESP_OPENSSL_SUPPRESS_LEGACY_WARNING + -DUSE_BSEC2 ;-DDEBUG_HEAP lib_deps = @@ -35,9 +36,13 @@ lib_deps = h2zero/NimBLE-Arduino@^1.4.0 https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6 https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f -lib_ignore = + boschsensortec/BSEC2 Software Library@^1.3.2200 + boschsensortec/BME68x Sensor Library@^1.1.40407 + +lib_ignore = segger_rtt ESP32 BLE Arduino + BSEC Software Library ; customize the partition table ; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.cpp b/src/modules/Telemetry/Sensor/BME680Sensor.cpp index df86da1bd..f2f88fcd1 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.cpp +++ b/src/modules/Telemetry/Sensor/BME680Sensor.cpp @@ -13,8 +13,12 @@ int32_t BME680Sensor::runOnce() return DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS; } bme680.begin(nodeTelemetrySensorsMap[sensorType], Wire); +#ifdef USE_BSEC2 + if (bme680.status == BSEC_OK) { +#else if (bme680.bsecStatus == BSEC_OK) { - bme680.setConfig(bsec_config_iaq); +#endif + bme680.setConfig(Default_H2S_NonH2S_config); loadState(); bme680.updateSubscription(sensorList, 13, BSEC_SAMPLE_RATE_LP); status = 1; @@ -22,6 +26,7 @@ int32_t BME680Sensor::runOnce() status = 0; } + return initI2CSensor(); } @@ -30,10 +35,17 @@ void BME680Sensor::setup() {} bool BME680Sensor::getMetrics(meshtastic_Telemetry *measurement) { bme680.run(); +#ifdef USE_BSEC2 + measurement->variant.environment_metrics.temperature = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE).signal; + measurement->variant.environment_metrics.relative_humidity = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal; + measurement->variant.environment_metrics.barometric_pressure = bme680.getData(BSEC_OUTPUT_RAW_PRESSURE).signal / 100.0F; + measurement->variant.environment_metrics.gas_resistance = bme680.getData(BSEC_OUTPUT_RAW_GAS).signal / 1000.0; +#else measurement->variant.environment_metrics.temperature = bme680.temperature; measurement->variant.environment_metrics.relative_humidity = bme680.humidity; measurement->variant.environment_metrics.barometric_pressure = bme680.pressure / 100.0F; measurement->variant.environment_metrics.gas_resistance = bme680.gasResistance / 1000.0; +#endif // Check if we need to save state to filesystem (every STATE_SAVE_PERIOD ms) updateState(); return true; @@ -62,12 +74,17 @@ void BME680Sensor::updateState() bool update = false; if (stateUpdateCounter == 0) { /* First state update when IAQ accuracy is >= 3 */ - if (bme680.iaqAccuracy >= 3) { - LOG_DEBUG("%s state update IAQ accuracy %u >= 3\n", sensorName, bme680.iaqAccuracy); +#ifdef USE_BSEC2 + accuracy = bme680.getData(BSEC_OUTPUT_IAQ).accuracy; +#else + accuracy = bme680.iaqAccuracy; +#endif + if (accuracy >= 3) { + LOG_DEBUG("%s state update IAQ accuracy %u >= 3\n", sensorName, accuracy); update = true; stateUpdateCounter++; } else { - LOG_DEBUG("%s not updated, IAQ accuracy is %u >= 3\n", sensorName, bme680.iaqAccuracy); + LOG_DEBUG("%s not updated, IAQ accuracy is %u >= 3\n", sensorName, accuracy); } } else { /* Update every STATE_SAVE_PERIOD minutes */ diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.h b/src/modules/Telemetry/Sensor/BME680Sensor.h index 74aff835a..fef4189d0 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.h +++ b/src/modules/Telemetry/Sensor/BME680Sensor.h @@ -1,22 +1,35 @@ #include "../mesh/generated/meshtastic/telemetry.pb.h" #include "TelemetrySensor.h" +#ifdef USE_BSEC2 +#include +#else #include +#endif // USE_BSEC2 #define STATE_SAVE_PERIOD UINT32_C(360 * 60 * 1000) // That's 6 hours worth of millis() -const uint8_t bsec_config_iaq[] = { +#ifdef USE_BSEC2 +#include "config/Default_H2S_NonH2S/Default_H2S_NonH2S.h" +#else +const uint8_t Default_H2S_NonH2S_config[] = { #include }; +#endif // USE_BSEC2 class BME680Sensor : virtual public TelemetrySensor { private: + #ifdef USE_BSEC2 + Bsec2 bme680; + #else Bsec bme680; + #endif // USE_BSEC2 protected: virtual void setup() override; const char *bsecConfigFileName = "/prefs/bsec.dat"; uint8_t bsecState[BSEC_MAX_STATE_BLOB_SIZE] = {0}; + uint8_t accuracy = 0; uint16_t stateUpdateCounter = 0; bsec_virtual_sensor_t sensorList[13] = {BSEC_OUTPUT_IAQ, BSEC_OUTPUT_STATIC_IAQ, diff --git a/variants/ai-c3/platformio.ini b/variants/ai-c3/platformio.ini index fbc6b51fa..2869ca580 100644 --- a/variants/ai-c3/platformio.ini +++ b/variants/ai-c3/platformio.ini @@ -5,10 +5,4 @@ board_level = extra build_flags = ${esp32c3_base.build_flags} -D PRIVATE_HW -I variants/ai-c3 -; as long as BSEC2 Software Library is not supported remove Sensors from build -build_src_filter = ${esp32c3_base.build_src_filter} - - - - - - -lib_ignore = ${esp32c3_base.lib_ignore} - BSEC Software Library + From 46e29402a6234ea582d640fd29a92cf09c3a5af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Fri, 5 May 2023 18:11:44 +0200 Subject: [PATCH 2/3] fmt --- src/modules/Telemetry/Sensor/BME680Sensor.cpp | 4 ++-- src/modules/Telemetry/Sensor/BME680Sensor.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.cpp b/src/modules/Telemetry/Sensor/BME680Sensor.cpp index f2f88fcd1..5754f9a54 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.cpp +++ b/src/modules/Telemetry/Sensor/BME680Sensor.cpp @@ -26,7 +26,6 @@ int32_t BME680Sensor::runOnce() status = 0; } - return initI2CSensor(); } @@ -37,7 +36,8 @@ bool BME680Sensor::getMetrics(meshtastic_Telemetry *measurement) bme680.run(); #ifdef USE_BSEC2 measurement->variant.environment_metrics.temperature = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE).signal; - measurement->variant.environment_metrics.relative_humidity = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal; + measurement->variant.environment_metrics.relative_humidity = + bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal; measurement->variant.environment_metrics.barometric_pressure = bme680.getData(BSEC_OUTPUT_RAW_PRESSURE).signal / 100.0F; measurement->variant.environment_metrics.gas_resistance = bme680.getData(BSEC_OUTPUT_RAW_GAS).signal / 1000.0; #else diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.h b/src/modules/Telemetry/Sensor/BME680Sensor.h index fef4189d0..5624470ba 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.h +++ b/src/modules/Telemetry/Sensor/BME680Sensor.h @@ -19,11 +19,11 @@ const uint8_t Default_H2S_NonH2S_config[] = { class BME680Sensor : virtual public TelemetrySensor { private: - #ifdef USE_BSEC2 +#ifdef USE_BSEC2 Bsec2 bme680; - #else +#else Bsec bme680; - #endif // USE_BSEC2 +#endif // USE_BSEC2 protected: virtual void setup() override; From 70dc13a998df48fc3d82eaced7dd0df0beeaa409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Wed, 10 May 2023 14:14:48 +0200 Subject: [PATCH 3/3] use BSEC2 only --- platformio.ini | 3 ++- src/modules/Telemetry/Sensor/BME680Sensor.cpp | 16 +--------------- src/modules/Telemetry/Sensor/BME680Sensor.h | 14 -------------- .../Dongle_nRF52840-pca10059-v1/platformio.ini | 1 + variants/MakePython_nRF52840_eink/platformio.ini | 1 + variants/MakePython_nRF52840_oled/platformio.ini | 1 + variants/ai-c3/variant.h | 3 --- variants/feather_diy/platformio.ini | 1 + variants/lora_relay_v1/platformio.ini | 1 + variants/lora_relay_v2/platformio.ini | 1 + variants/pca10056-rc-clock/platformio.ini | 1 + variants/rak4631/platformio.ini | 1 + variants/rak4631_epaper/platformio.ini | 1 + variants/rak4631_epaper_onrxtx/platformio.ini | 1 + variants/t-echo/platformio.ini | 3 ++- 15 files changed, 15 insertions(+), 34 deletions(-) diff --git a/platformio.ini b/platformio.ini index b471ccec5..2040b75ce 100644 --- a/platformio.ini +++ b/platformio.ini @@ -102,7 +102,8 @@ lib_deps = adafruit/Adafruit Unified Sensor@^1.1.9 adafruit/Adafruit BMP280 Library@^2.6.6 adafruit/Adafruit BME280 Library@^2.2.2 - https://github.com/meshtastic/BSEC-Arduino-library.git#452f9a7ffa8b53e1debe2c454fe375dfad98b507 + boschsensortec/BSEC2 Software Library@^1.3.2200 + boschsensortec/BME68x Sensor Library@^1.1.40407 adafruit/Adafruit MCP9808 Library@^2.0.0 adafruit/Adafruit INA260 Library@^1.5.0 adafruit/Adafruit INA219@^1.2.0 diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.cpp b/src/modules/Telemetry/Sensor/BME680Sensor.cpp index 5754f9a54..43e4c0386 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.cpp +++ b/src/modules/Telemetry/Sensor/BME680Sensor.cpp @@ -13,11 +13,7 @@ int32_t BME680Sensor::runOnce() return DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS; } bme680.begin(nodeTelemetrySensorsMap[sensorType], Wire); -#ifdef USE_BSEC2 if (bme680.status == BSEC_OK) { -#else - if (bme680.bsecStatus == BSEC_OK) { -#endif bme680.setConfig(Default_H2S_NonH2S_config); loadState(); bme680.updateSubscription(sensorList, 13, BSEC_SAMPLE_RATE_LP); @@ -34,18 +30,12 @@ void BME680Sensor::setup() {} bool BME680Sensor::getMetrics(meshtastic_Telemetry *measurement) { bme680.run(); -#ifdef USE_BSEC2 + measurement->variant.environment_metrics.temperature = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE).signal; measurement->variant.environment_metrics.relative_humidity = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal; measurement->variant.environment_metrics.barometric_pressure = bme680.getData(BSEC_OUTPUT_RAW_PRESSURE).signal / 100.0F; measurement->variant.environment_metrics.gas_resistance = bme680.getData(BSEC_OUTPUT_RAW_GAS).signal / 1000.0; -#else - measurement->variant.environment_metrics.temperature = bme680.temperature; - measurement->variant.environment_metrics.relative_humidity = bme680.humidity; - measurement->variant.environment_metrics.barometric_pressure = bme680.pressure / 100.0F; - measurement->variant.environment_metrics.gas_resistance = bme680.gasResistance / 1000.0; -#endif // Check if we need to save state to filesystem (every STATE_SAVE_PERIOD ms) updateState(); return true; @@ -74,11 +64,7 @@ void BME680Sensor::updateState() bool update = false; if (stateUpdateCounter == 0) { /* First state update when IAQ accuracy is >= 3 */ -#ifdef USE_BSEC2 accuracy = bme680.getData(BSEC_OUTPUT_IAQ).accuracy; -#else - accuracy = bme680.iaqAccuracy; -#endif if (accuracy >= 3) { LOG_DEBUG("%s state update IAQ accuracy %u >= 3\n", sensorName, accuracy); update = true; diff --git a/src/modules/Telemetry/Sensor/BME680Sensor.h b/src/modules/Telemetry/Sensor/BME680Sensor.h index 5624470ba..6b45a76f4 100644 --- a/src/modules/Telemetry/Sensor/BME680Sensor.h +++ b/src/modules/Telemetry/Sensor/BME680Sensor.h @@ -1,29 +1,15 @@ #include "../mesh/generated/meshtastic/telemetry.pb.h" #include "TelemetrySensor.h" -#ifdef USE_BSEC2 #include -#else -#include -#endif // USE_BSEC2 #define STATE_SAVE_PERIOD UINT32_C(360 * 60 * 1000) // That's 6 hours worth of millis() -#ifdef USE_BSEC2 #include "config/Default_H2S_NonH2S/Default_H2S_NonH2S.h" -#else -const uint8_t Default_H2S_NonH2S_config[] = { -#include -}; -#endif // USE_BSEC2 class BME680Sensor : virtual public TelemetrySensor { private: -#ifdef USE_BSEC2 Bsec2 bme680; -#else - Bsec bme680; -#endif // USE_BSEC2 protected: virtual void setup() override; diff --git a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini index ea14d1a21..a937bfa98 100644 --- a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini +++ b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini @@ -3,6 +3,7 @@ extends = nrf52840_base board = nordic_pca10059 board_level = extra build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v1 -D NORDIC_PCA10059 + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/MakePython_nRF52840_eink/platformio.ini b/variants/MakePython_nRF52840_eink/platformio.ini index 9ed5a8594..2b08ec9a1 100644 --- a/variants/MakePython_nRF52840_eink/platformio.ini +++ b/variants/MakePython_nRF52840_eink/platformio.ini @@ -3,6 +3,7 @@ board_level = extra extends = nrf52840_base board = nordic_pca10059 build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" -D PIN_EINK_EN build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink> lib_deps = diff --git a/variants/MakePython_nRF52840_oled/platformio.ini b/variants/MakePython_nRF52840_oled/platformio.ini index 9332bd786..e0ddb1377 100644 --- a/variants/MakePython_nRF52840_oled/platformio.ini +++ b/variants/MakePython_nRF52840_oled/platformio.ini @@ -3,6 +3,7 @@ board_level = extra extends = nrf52840_base board = nordic_pca10059 build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_oled -D PRIVATE_HW + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_oled> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/ai-c3/variant.h b/variants/ai-c3/variant.h index 2db91ccab..352d189f1 100644 --- a/variants/ai-c3/variant.h +++ b/variants/ai-c3/variant.h @@ -1,6 +1,3 @@ -#define HAS_TELEMETRY 0 // as long as BSEC2 is not supported -#define HAS_SENSOR 0 // as long as BSEC2 is not supported - #define SDA 0 #define SCL 1 #define I2C_SDA SDA diff --git a/variants/feather_diy/platformio.ini b/variants/feather_diy/platformio.ini index 9b4806343..924f9098d 100644 --- a/variants/feather_diy/platformio.ini +++ b/variants/feather_diy/platformio.ini @@ -4,6 +4,7 @@ extends = nrf52840_base board = adafruit_feather_nrf52840 board_level = extra build_flags = ${nrf52840_base.build_flags} -Ivariants/feather_diy -Dfeather_diy + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/feather_diy> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/lora_relay_v1/platformio.ini b/variants/lora_relay_v1/platformio.ini index 8df7bd1d6..77402aadc 100644 --- a/variants/lora_relay_v1/platformio.ini +++ b/variants/lora_relay_v1/platformio.ini @@ -15,6 +15,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v1 -DTFT_DC=ST7735_RS -DTFT_RST=ST7735_RESET -DSPI_FREQUENCY=27000000 + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v1> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/lora_relay_v2/platformio.ini b/variants/lora_relay_v2/platformio.ini index 1be8ced1f..4439d8a46 100644 --- a/variants/lora_relay_v2/platformio.ini +++ b/variants/lora_relay_v2/platformio.ini @@ -17,6 +17,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v2 -DSPI_FREQUENCY=27000000 -DTFT_WR=ST7735_SDA -DTFT_SCLK=ST7735_SCK + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v2> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/pca10056-rc-clock/platformio.ini b/variants/pca10056-rc-clock/platformio.ini index d965753d3..0467b1417 100644 --- a/variants/pca10056-rc-clock/platformio.ini +++ b/variants/pca10056-rc-clock/platformio.ini @@ -5,4 +5,5 @@ extends = nrf52840_base board = nrf52840_dk_modified # add our variants files to the include and src paths build_flags = ${nrf52_base.build_flags} -Ivariants/pca10056-rc-clock + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/pca10056-rc-clock> \ No newline at end of file diff --git a/variants/rak4631/platformio.ini b/variants/rak4631/platformio.ini index 0d1f17d91..34eed88dd 100644 --- a/variants/rak4631/platformio.ini +++ b/variants/rak4631/platformio.ini @@ -3,6 +3,7 @@ extends = nrf52840_base board = wiscore_rak4631 build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631 -D RAK_4631 + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631> + + + lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/rak4631_epaper/platformio.ini b/variants/rak4631_epaper/platformio.ini index e9c3e8723..0871eee45 100644 --- a/variants/rak4631_epaper/platformio.ini +++ b/variants/rak4631_epaper/platformio.ini @@ -3,6 +3,7 @@ extends = nrf52840_base board = wiscore_rak4631 build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631 + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper> lib_deps = ${nrf52840_base.lib_deps} diff --git a/variants/rak4631_epaper_onrxtx/platformio.ini b/variants/rak4631_epaper_onrxtx/platformio.ini index 6e922b841..08c55d129 100644 --- a/variants/rak4631_epaper_onrxtx/platformio.ini +++ b/variants/rak4631_epaper_onrxtx/platformio.ini @@ -4,6 +4,7 @@ board_level = extra extends = nrf52840_base board = wiscore_rak4631 build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631 + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" -D PIN_EINK_EN=34 build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx> lib_deps = diff --git a/variants/t-echo/platformio.ini b/variants/t-echo/platformio.ini index 201c14657..2f043108c 100644 --- a/variants/t-echo/platformio.ini +++ b/variants/t-echo/platformio.ini @@ -8,7 +8,8 @@ debug_tool = jlink # define build flags for the TFT_eSPI library - NOTE: WE NOT LONGER USE TFT_eSPI, it was for an earlier version of the TTGO eink screens # -DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30 # add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling. -build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo +build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo + -L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard" build_src_filter = ${nrf52_base.build_src_filter} +<../variants/t-echo> lib_deps = ${nrf52840_base.lib_deps}