diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini
index 04f57c92..d2e2fd9c 100644
--- a/arch/esp32/esp32.ini
+++ b/arch/esp32/esp32.ini
@@ -1,7 +1,7 @@
; Common settings for ESP targes, mixin with extends = esp32_base
[esp32_base]
extends = arduino_base
-platform = espressif32@5.1.1
+platform = espressif32@^5.2.0
build_src_filter =
${arduino_base.build_src_filter} - - -
upload_speed = 921600
@@ -31,10 +31,10 @@ 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
+ https://github.com/meshtastic/esp32_https_server.git#657509856ce97e9dddeffb89a559f544faefd5cd
+ h2zero/NimBLE-Arduino@^1.4.0
arduino-libraries/NTPClient@^3.1.0
- https://github.com/lewisxhe/XPowersLib.git
+ https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
lib_ignore =
segger_rtt
diff --git a/arch/esp32/esp32s3.ini b/arch/esp32/esp32s3.ini
index dbf1a5df..e19b9aaf 100644
--- a/arch/esp32/esp32s3.ini
+++ b/arch/esp32/esp32s3.ini
@@ -1,6 +1,6 @@
[esp32s3_base]
extends = arduino_base
-platform = espressif32@5.1.1
+platform = espressif32@^5.2.0
build_src_filter =
${arduino_base.build_src_filter} - - -
upload_speed = 961200
@@ -31,10 +31,10 @@ 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
+ https://github.com/meshtastic/esp32_https_server.git#657509856ce97e9dddeffb89a559f544faefd5cd
+ h2zero/NimBLE-Arduino@^1.4.0
arduino-libraries/NTPClient@^3.1.0
- https://github.com/lewisxhe/XPowersLib.git
+ https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
lib_ignore =
segger_rtt
diff --git a/arch/nrf52/nrf52840.ini b/arch/nrf52/nrf52840.ini
index 61995378..29c32e79 100644
--- a/arch/nrf52/nrf52840.ini
+++ b/arch/nrf52/nrf52840.ini
@@ -4,7 +4,7 @@ build_flags = ${nrf52_base.build_flags}
lib_deps =
${arduino_base.lib_deps}
${environmental_base.lib_deps}
- https://github.com/Kongduino/Adafruit_nRFCrypto.git
+ https://github.com/Kongduino/Adafruit_nRFCrypto.git#20fc7fdaf086bd70e901c007dd23c6e8856aec25
; Note: By default no lora device is created for this build - it uses a simulated interface
[env:nrf52840dk]
diff --git a/arch/portduino/portduino.ini b/arch/portduino/portduino.ini
index b1f793fe..eb65322d 100644
--- a/arch/portduino/portduino.ini
+++ b/arch/portduino/portduino.ini
@@ -14,6 +14,6 @@ build_src_filter =
lib_deps =
${env.lib_deps}
${networking_base.lib_deps}
- rweather/Crypto
+ rweather/Crypto@^0.4.0
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
index 742909e5..6660cccd 100644
--- a/arch/rp2040/rp2040.ini
+++ b/arch/rp2040/rp2040.ini
@@ -16,4 +16,4 @@ lib_ignore =
lib_deps =
${arduino_base.lib_deps}
${environmental_base.lib_deps}
- https://github.com/kokke/tiny-AES-c.git
+ https://github.com/kokke/tiny-AES-c.git#f06ac37fc31dfdaca2e0d9bec83f90d5663c319b
diff --git a/arch/stm32/stm32wl5e.ini b/arch/stm32/stm32wl5e.ini
index 862d1c9c..50d48501 100644
--- a/arch/stm32/stm32wl5e.ini
+++ b/arch/stm32/stm32wl5e.ini
@@ -13,7 +13,7 @@ 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
+ jgromes/RadioLib@^5.4.0
+ https://github.com/kokke/tiny-AES-c.git#f06ac37fc31dfdaca2e0d9bec83f90d5663c319b
lib_ignore =
mathertel/OneButton@^2.0.3
diff --git a/bin/check-dependencies.sh b/bin/check-dependencies.sh
new file mode 100644
index 00000000..27372487
--- /dev/null
+++ b/bin/check-dependencies.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+# Note: This is a prototype for how we could add static code analysis to the CI.
+
+set -e
+
+if [[ $# -gt 0 ]]; then
+ # can override which environment by passing arg
+ BOARDS="$@"
+else
+ BOARDS="rak4631 rak4631_eink t-echo pca10059_diy_eink pico rak11200 tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v1 heltec-v2.0 heltec-v2.1 tbeam0.7 meshtastic-diy-v1 nano-g1 station-g1 m5stack-core m5stack-coreink tbeam-s3-core"
+fi
+
+echo "BOARDS:${BOARDS}"
+
+CHECK=""
+for BOARD in $BOARDS; do
+ CHECK="${CHECK} -e ${BOARD}"
+done
+
+echo $CHECK
+
+pio pkg outdated -e $CHECK
diff --git a/platformio.ini b/platformio.ini
index 2929ce09..6b233e59 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -47,11 +47,8 @@ monitor_speed = 115200
lib_deps =
https://github.com/meshtastic/esp8266-oled-ssd1306.git#53580644255b48ebb7a737343c6b4e71c7e11cf2 ; ESP8266_SSD1306
mathertel/OneButton@^2.0.3 ; OneButton library for non-blocking button debounce
- 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib
- https://github.com/meshtastic/arduino-fsm.git
- https://github.com/meshtastic/TinyGPSPlus.git
- Wire ; explicitly needed here because the AXP202 library forgets to add it
- SPI
+ https://github.com/meshtastic/arduino-fsm.git#7db3702bf0cfe97b783d6c72595e3f38e0b19159
+ https://github.com/meshtastic/TinyGPSPlus.git#2f0d0528d737000043e949f4c3bdfb623cf0b902
https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
nanopb/Nanopb@^0.4.6
@@ -65,7 +62,7 @@ framework = arduino
lib_deps =
${env.lib_deps}
; Portduino is using meshtastic fork for now
- https://github.com/jgromes/RadioLib.git@5.4.0
+ jgromes/RadioLib@^5.3.0
build_flags = ${env.build_flags} -Os
# -DRADIOLIB_GODMODE
@@ -74,7 +71,7 @@ build_src_filter = ${env.build_src_filter} -
; Common libs for communicating over TCP/IP networks such as MQTT
[networking_base]
lib_deps =
- PubSubClient
+ knolleary/PubSubClient@^2.8
meshtastic/json11@^1.0.2
; Common libs for environmental measurements in telemetry module
diff --git a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
index 10f31c5e..027ab41d 100644
--- a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
+++ b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
@@ -5,5 +5,5 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1>
lib_deps =
${nrf52840_base.lib_deps}
- https://github.com/ZinggJM/GxEPD2.git
+ zinggjm/GxEPD2@^1.4.9
debug_tool = jlink
diff --git a/variants/lora_relay_v1/platformio.ini b/variants/lora_relay_v1/platformio.ini
index 31210897..9a73fda7 100644
--- a/variants/lora_relay_v1/platformio.ini
+++ b/variants/lora_relay_v1/platformio.ini
@@ -17,5 +17,5 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v1
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v1>
lib_deps =
${nrf52840_base.lib_deps}
- SparkFun BQ27441 LiPo Fuel Gauge Arduino Library
- TFT_eSPI
\ No newline at end of file
+ sparkfun/SparkFun BQ27441 LiPo Fuel Gauge Arduino Library@^1.1.0
+ bodmer/TFT_eSPI@^2.4.76
\ No newline at end of file
diff --git a/variants/lora_relay_v2/platformio.ini b/variants/lora_relay_v2/platformio.ini
index f35b14c0..93756c6d 100644
--- a/variants/lora_relay_v2/platformio.ini
+++ b/variants/lora_relay_v2/platformio.ini
@@ -19,5 +19,5 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v2
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v2>
lib_deps =
${nrf52840_base.lib_deps}
- SparkFun BQ27441 LiPo Fuel Gauge Arduino Library
- TFT_eSPI
+ sparkfun/SparkFun BQ27441 LiPo Fuel Gauge Arduino Library@^1.1.0
+ bodmer/TFT_eSPI@^2.4.76
diff --git a/variants/m5stack_core/platformio.ini b/variants/m5stack_core/platformio.ini
index c9227fed..dd9bd0f7 100644
--- a/variants/m5stack_core/platformio.ini
+++ b/variants/m5stack_core/platformio.ini
@@ -27,4 +27,4 @@ lib_ignore =
m5stack-core
lib_deps =
${esp32_base.lib_deps}
- bodmer/TFT_eSPI@^2.4.61
\ No newline at end of file
+ bodmer/TFT_eSPI@^2.4.76
\ No newline at end of file
diff --git a/variants/m5stack_coreink/platformio.ini b/variants/m5stack_coreink/platformio.ini
index a6a35d80..9b41675e 100644
--- a/variants/m5stack_coreink/platformio.ini
+++ b/variants/m5stack_coreink/platformio.ini
@@ -11,7 +11,7 @@ build_flags =
-DM5STACK
lib_deps =
${esp32_base.lib_deps}
- zinggjm/GxEPD2@^1.4.5
+ zinggjm/GxEPD2@^1.4.9
lewisxhe/PCF8563_Library@^0.0.1
board_build.f_cpu = 240000000L
upload_protocol = esptool
diff --git a/variants/ppr/platformio.ini b/variants/ppr/platformio.ini
index d7c985db..cb7b21de 100644
--- a/variants/ppr/platformio.ini
+++ b/variants/ppr/platformio.ini
@@ -4,4 +4,4 @@ extends = nrf52_base
board = ppr
lib_deps =
${arduino_base.lib_deps}
- UC1701
\ No newline at end of file
+ industruino/UC1701@^1.1.0
\ No newline at end of file
diff --git a/variants/rak4631_epaper/platformio.ini b/variants/rak4631_epaper/platformio.ini
index 048860ce..fd266c07 100644
--- a/variants/rak4631_epaper/platformio.ini
+++ b/variants/rak4631_epaper/platformio.ini
@@ -6,7 +6,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper>
lib_deps =
${nrf52840_base.lib_deps}
- https://github.com/ZinggJM/GxEPD2.git
+ zinggjm/GxEPD2@^1.4.9
melopero/Melopero RV3028@^1.1.0
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
diff --git a/variants/t-echo/platformio.ini b/variants/t-echo/platformio.ini
index 73b2ae05..ef90db72 100644
--- a/variants/t-echo/platformio.ini
+++ b/variants/t-echo/platformio.ini
@@ -12,7 +12,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/t-echo>
lib_deps =
${nrf52840_base.lib_deps}
- https://github.com/meshtastic/GxEPD2
- adafruit/Adafruit BusIO
- lewisxhe/PCF8563_Library@^0.0.1
+ https://github.com/meshtastic/GxEPD2#afce87a97dda1ac31d8a28dc8fa7c6f55dc96a61
+ adafruit/Adafruit BusIO@^1.13.2
+ lewisxhe/PCF8563_Library@^1.0.0
;upload_protocol = fs