diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml
index a6fb39b2..6194bfe6 100644
--- a/.github/workflows/main_matrix.yml
+++ b/.github/workflows/main_matrix.yml
@@ -23,9 +23,9 @@ jobs:
matrix:
include:
- board: rak11200
- - board: tlora-v2-1-1.6
+ - board: tlora-v2-1-1_6
- board: tbeam
- - board: heltec-v2.1
+ - board: heltec-v2_1
- board: meshtastic-diy-v1
- board: rak4631
- board: t-echo
@@ -57,13 +57,13 @@ jobs:
- board: tlora-v2
- board: tlora-v1
- board: tlora_v1_3
- - board: tlora-v2-1-1.6
- - board: tlora-v2-1-1.8
+ - board: tlora-v2-1-1_6
+ - board: tlora-v2-1-1_8
- board: tbeam
- board: heltec-v1
- - board: heltec-v2.0
- - board: heltec-v2.1
- - board: tbeam0.7
+ - board: heltec-v2_0
+ - board: heltec-v2_1
+ - board: tbeam0_7
- board: meshtastic-diy-v1
- board: meshtastic-dr-dev
- board: nano-g1
diff --git a/.trunk/.gitignore b/.trunk/.gitignore
index cf2f2547..8130ba6d 100644
--- a/.trunk/.gitignore
+++ b/.trunk/.gitignore
@@ -5,3 +5,4 @@
plugins
user_trunk.yaml
user.yaml
+shims
diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml
index 519a9181..cdf662e1 100644
--- a/.trunk/trunk.yaml
+++ b/.trunk/trunk.yaml
@@ -1,36 +1,37 @@
version: 0.1
cli:
- version: 1.7.0
+ version: 1.9.1
plugins:
sources:
- id: trunk
- ref: v0.0.14
+ ref: v0.0.17
uri: https://github.com/trunk-io/plugins
lint:
enabled:
- - ruff@0.0.260
- - yamllint@1.30.0
+ - taplo@0.7.0
+ - ruff@0.0.265
+ - yamllint@1.31.0
- isort@5.12.0
- - markdownlint@0.33.0
+ - markdownlint@0.34.0
- oxipng@8.0.0
- svgo@3.0.2
- - actionlint@1.6.23
+ - actionlint@1.6.24
- flake8@6.0.0
- hadolint@2.12.0
- shfmt@3.5.0
- shellcheck@0.9.0
- black@23.3.0
- git-diff-check
- - gitleaks@8.16.2
+ - gitleaks@8.16.3
- clang-format@14.0.0
- - prettier@2.8.7
+ - prettier@2.8.8
disabled:
- taplo@0.7.0
- shellcheck@0.9.0
- shfmt@3.5.0
- oxipng@8.0.0
- actionlint@1.6.22
- - markdownlint@0.33.0
+ - markdownlint@0.34.0
- hadolint@2.12.0
- svgo@3.0.2
runtimes:
diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini
index fb83ec2d..45409ad7 100644
--- a/arch/esp32/esp32.ini
+++ b/arch/esp32/esp32.ini
@@ -2,11 +2,14 @@
[esp32_base]
extends = arduino_base
platform = platformio/espressif32@^6.1.0
+
build_src_filter =
${arduino_base.build_src_filter} - - - -
+
upload_speed = 921600
debug_init_break = tbreak setup
monitor_filters = esp32_exception_decoder
+
board_build.filesystem = littlefs
# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging.
@@ -34,6 +37,7 @@ lib_deps =
${environmental_base.lib_deps}
https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
h2zero/NimBLE-Arduino@^1.4.0
+ jgromes/RadioLib@^6.0.0
https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
diff --git a/arch/esp32/esp32c3.ini b/arch/esp32/esp32c3.ini
index 5ebb789a..619fdb28 100644
--- a/arch/esp32/esp32c3.ini
+++ b/arch/esp32/esp32c3.ini
@@ -1,44 +1,5 @@
[esp32c3_base]
-extends = arduino_base
-platform = platformio/espressif32@^6.1.0
-build_src_filter =
- ${arduino_base.build_src_filter} - - - -
-upload_speed = 961200
+extends = esp32_base
+
monitor_speed = 115200
-debug_init_break = tbreak setup
monitor_filters = esp32_c3_exception_decoder
-board_build.filesystem = littlefs
-
-# 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
- -DCONFIG_BT_NIMBLE_ENABLED
- -DCONFIG_NIMBLE_CPP_LOG_LEVEL=2
- -DCONFIG_BT_NIMBLE_MAX_CCCDS=20
- -DESP_OPENSSL_SUPPRESS_LEGACY_WARNING
- ;-DDEBUG_HEAP
-
-lib_deps =
- ${arduino_base.lib_deps}
- ${networking_base.lib_deps}
- ${environmental_base.lib_deps}
- https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
- h2zero/NimBLE-Arduino@^1.4.0
- https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
- https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
-lib_ignore =
- segger_rtt
- ESP32 BLE Arduino
-
-; 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/arch/esp32/esp32s2.ini b/arch/esp32/esp32s2.ini
index 6e75c08c..3bde3465 100644
--- a/arch/esp32/esp32s2.ini
+++ b/arch/esp32/esp32s2.ini
@@ -1,47 +1,16 @@
[esp32s2_base]
-extends = arduino_base
-platform = platformio/espressif32@^6.1.0
+extends = esp32_base
+
build_src_filter =
- ${arduino_base.build_src_filter} - - - - -
-upload_speed = 961200
+ ${esp32_base.build_src_filter} -
+
monitor_speed = 115200
-debug_init_break = tbreak setup
-monitor_filters = esp32_exception_decoder
-board_build.filesystem = littlefs
-# 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
- -DESP_OPENSSL_SUPPRESS_LEGACY_WARNING
+ ${esp32_base.build_flags}
-DHAS_BLUETOOTH=0
- ;-DDEBUG_HEAP
-lib_deps =
- ${arduino_base.lib_deps}
- ${networking_base.lib_deps}
- ${environmental_base.lib_deps}
- https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
- https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
- https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
-
lib_ignore =
- segger_rtt
- ESP32 BLE Arduino
-
-; customize the partition table
-; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables
-board_build.partitions = partition-table.csv
+ ${esp32_base.lib_ignore}
+ NimBLE-Arduino
diff --git a/arch/esp32/esp32s3.ini b/arch/esp32/esp32s3.ini
index bb0214f4..6a1bdd3f 100644
--- a/arch/esp32/esp32s3.ini
+++ b/arch/esp32/esp32s3.ini
@@ -1,47 +1,5 @@
[esp32s3_base]
-extends = arduino_base
-platform = platformio/espressif32@^6.1.0
-build_src_filter =
- ${arduino_base.build_src_filter} - - - -
-upload_speed = 961200
+extends = esp32_base
+
monitor_speed = 115200
-debug_init_break = tbreak setup
-monitor_filters = esp32_exception_decoder
-board_build.filesystem = littlefs
-
-# 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
- -DESP_OPENSSL_SUPPRESS_LEGACY_WARNING
- ;-DDEBUG_HEAP
-
-lib_deps =
- ${arduino_base.lib_deps}
- ${networking_base.lib_deps}
- ${environmental_base.lib_deps}
- https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
- h2zero/NimBLE-Arduino@^1.4.0
- https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
- https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
-
-lib_ignore =
- segger_rtt
- ESP32 BLE Arduino
-
-; 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
index c2287d7e..3f1a77d0 100644
--- a/arch/nrf52/nrf52.ini
+++ b/arch/nrf52/nrf52.ini
@@ -1,18 +1,20 @@
[nrf52_base]
; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files
platform = platformio/nordicnrf52@^9.5.0
-
extends = arduino_base
+
build_type = debug ; I'm debugging with ICE a lot now
build_flags =
${arduino_base.build_flags} -Wno-unused-variable
-Isrc/platform/nrf52
+
build_src_filter =
${arduino_base.build_src_filter} - - - - - - - - -
+
+lib_deps=
+ ${arduino_base.lib_deps}
+ jgromes/RadioLib@^6.0.0
+
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/nrf52832.ini b/arch/nrf52/nrf52832.ini
new file mode 100644
index 00000000..ce94283b
--- /dev/null
+++ b/arch/nrf52/nrf52832.ini
@@ -0,0 +1,7 @@
+[nrf52832_base]
+extends = nrf52_base
+
+build_flags = ${nrf52_base.build_flags}
+
+lib_deps =
+ ${nrf52_base.lib_deps}
diff --git a/arch/nrf52/nrf52840.ini b/arch/nrf52/nrf52840.ini
index 14cc1d1e..cf08fd02 100644
--- a/arch/nrf52/nrf52840.ini
+++ b/arch/nrf52/nrf52840.ini
@@ -1,14 +1,9 @@
[nrf52840_base]
extends = nrf52_base
+
build_flags = ${nrf52_base.build_flags}
+
lib_deps =
- ${arduino_base.lib_deps}
+ ${nrf52_base.lib_deps}
${environmental_base.lib_deps}
https://github.com/Kongduino/Adafruit_nRFCrypto.git#e31a8825ea3300b163a0a3c1ddd5de34e10e1371
-
-; 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
index 100f3538..7e355747 100644
--- a/arch/portduino/portduino.ini
+++ b/arch/portduino/portduino.ini
@@ -2,6 +2,7 @@
[portduino_base]
platform = https://github.com/meshtastic/platform-native.git#096b3c3e9c5c8e19d4c3b6cd803fffef2a9be4c5
framework = arduino
+
build_src_filter =
${env.build_src_filter}
-
@@ -16,8 +17,14 @@ build_src_filter =
-
-
+<../variants/portduino>
+
lib_deps =
${env.lib_deps}
${networking_base.lib_deps}
rweather/Crypto@^0.4.0
-build_flags = ${arduino_base.build_flags} -fPIC -Isrc/platform/portduino
+ jgromes/RadioLib@^6.0.0
+
+build_flags =
+ ${arduino_base.build_flags}
+ -fPIC
+ -Isrc/platform/portduino
diff --git a/arch/rp2040/rp2040.ini b/arch/rp2040/rp2040.ini
index c41f9289..6f5449ae 100644
--- a/arch/rp2040/rp2040.ini
+++ b/arch/rp2040/rp2040.ini
@@ -2,6 +2,7 @@
[rp2040_base]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#9f8c10e50b5acd18e7bfd32638199c655be73a5b
extends = arduino_base
+
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m
build_flags =
@@ -11,9 +12,12 @@ build_flags =
# -D _POSIX_THREADS
build_src_filter =
${arduino_base.build_src_filter} - - - - - - - - -
+
lib_ignore =
BluetoothOTA
+
lib_deps =
${arduino_base.lib_deps}
${environmental_base.lib_deps}
+ jgromes/RadioLib@^6.0.0
https://github.com/kokke/tiny-AES-c.git#f06ac37fc31dfdaca2e0d9bec83f90d5663c319b
diff --git a/arch/stm32/stm32wl5e.ini b/arch/stm32/stm32wl5e.ini
index 24cc7903..0682dcc4 100644
--- a/arch/stm32/stm32wl5e.ini
+++ b/arch/stm32/stm32wl5e.ini
@@ -3,6 +3,7 @@ platform_packages = platformio/framework-arduinoststm32 @ https://github.com/stm
platform = ststm32
board = generic_wl5e
framework = arduino
+
build_type = debug
build_flags =
@@ -10,14 +11,19 @@ build_flags =
-Isrc/platform/stm32wl -g
-DconfigUSE_CMSIS_RTOS_V2=1
-DVECT_TAB_OFFSET=0x08000000
+
build_src_filter =
- ${arduino_base.build_src_filter} - - - - - - - - - - - - -
+ ${arduino_base.build_src_filter} - - - - - - - - - - - - - -
+
board_upload.offset_address = 0x08000000
upload_protocol = stlink
+
lib_deps =
${env.lib_deps}
+ jgromes/RadioLib@^6.0.0
https://github.com/kokke/tiny-AES-c.git#f06ac37fc31dfdaca2e0d9bec83f90d5663c319b
https://github.com/littlefs-project/littlefs.git#v2.5.1
https://github.com/stm32duino/STM32FreeRTOS.git#10.3.1
+
lib_ignore =
mathertel/OneButton@^2.0.3
diff --git a/platformio.ini b/platformio.ini
index db81f36b..fdc1a367 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -67,9 +67,6 @@ lib_deps =
https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
nanopb/Nanopb@^0.4.7
erriez/ErriezCRC32@^1.0.1
- ; temp: do this till > 5.7.0 release to keep (some) SX1262 and SX1280 working - resolves -705 error during init
- https://github.com/jgromes/RadioLib.git#cb385f59468cd8bafe4fb8df5651295d605d7e2a
- ;jgromes/RadioLib@^5.7.0
; Used for the code analysis in PIO Home / Inspect
check_tool = cppcheck
@@ -106,7 +103,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/main.cpp b/src/main.cpp
index 261f12ab..736b39b4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -164,6 +164,7 @@ static OSThread *buttonThread;
uint32_t ButtonThread::longPressTime = 0;
#endif
static OSThread *accelerometerThread;
+SPISettings spiSettings(4000000, MSBFIRST, SPI_MODE0);
RadioInterface *rIf = NULL;
@@ -511,6 +512,10 @@ void setup()
digitalWrite(SX126X_ANT_SW, 1);
#endif
+ // Init LockingHAL first, to use it for radio init
+
+ LockingArduinoHal *RadioLibHAL = new LockingArduinoHal(SPI, spiSettings);
+
// radio init MUST BE AFTER service.init, so we have our radio config settings (from nodedb init)
#if defined(USE_STM32WLx)
if (!rIf) {
@@ -540,7 +545,7 @@ void setup()
#if defined(RF95_IRQ)
if (!rIf) {
- rIf = new RF95Interface(RF95_NSS, RF95_IRQ, RF95_RESET, RF95_DIO1, SPI);
+ rIf = new RF95Interface(RadioLibHAL, RF95_NSS, RF95_IRQ, RF95_RESET, RF95_DIO1);
if (!rIf->init()) {
LOG_WARN("Failed to find RF95 radio\n");
delete rIf;
@@ -553,7 +558,7 @@ void setup()
#if defined(USE_SX1262)
if (!rIf) {
- rIf = new SX1262Interface(SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY, SPI);
+ rIf = new SX1262Interface(RadioLibHAL, SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY);
if (!rIf->init()) {
LOG_WARN("Failed to find SX1262 radio\n");
delete rIf;
@@ -566,7 +571,7 @@ void setup()
#if defined(USE_SX1268)
if (!rIf) {
- rIf = new SX1268Interface(SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY, SPI);
+ rIf = new SX1268Interface(RadioLibHAL, SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY);
if (!rIf->init()) {
LOG_WARN("Failed to find SX1268 radio\n");
delete rIf;
@@ -579,7 +584,7 @@ void setup()
#if defined(USE_LLCC68)
if (!rIf) {
- rIf = new LLCC68Interface(SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY, SPI);
+ rIf = new LLCC68Interface(RadioLibHAL, SX126X_CS, SX126X_DIO1, SX126X_RESET, SX126X_BUSY);
if (!rIf->init()) {
LOG_WARN("Failed to find LLCC68 radio\n");
delete rIf;
@@ -592,7 +597,7 @@ void setup()
#if defined(USE_SX1280)
if (!rIf) {
- rIf = new SX1280Interface(SX128X_CS, SX128X_DIO1, SX128X_RESET, SX128X_BUSY, SPI);
+ rIf = new SX1280Interface(RadioLibHAL, SX128X_CS, SX128X_DIO1, SX128X_RESET, SX128X_BUSY);
if (!rIf->init()) {
LOG_WARN("Failed to find SX1280 radio\n");
delete rIf;
diff --git a/src/main.h b/src/main.h
index 5707e3bc..0d23dd10 100644
--- a/src/main.h
+++ b/src/main.h
@@ -8,6 +8,7 @@
#include "memGet.h"
#include "mesh/generated/meshtastic/config.pb.h"
#include "mesh/generated/meshtastic/telemetry.pb.h"
+#include
#include