diff --git a/.github/meshtastic_logo.png b/.github/meshtastic_logo.png
new file mode 100644
index 000000000..11c5db18c
Binary files /dev/null and b/.github/meshtastic_logo.png differ
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index e249823a7..28ba12fcc 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -4,9 +4,11 @@ on:
- cron: 0 8 * * 1-5
workflow_dispatch: {}
+permissions: read-all
+
jobs:
trunk_check:
- name: Trunk Check Upload
+ name: Trunk Check and Upload
runs-on: ubuntu-latest
steps:
@@ -14,6 +16,22 @@ jobs:
uses: actions/checkout@v4
- name: Trunk Check
- uses: trunk-io/trunk-action@782e83f803ca6e369f035d64c6ba2768174ba61b
+ uses: trunk-io/trunk-action@v1
with:
trunk-token: ${{ secrets.TRUNK_TOKEN }}
+
+ trunk_upgrade:
+ # See: https://github.com/trunk-io/trunk-action/blob/v1/readme.md#automatic-upgrades
+ name: Trunk Upgrade (PR)
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write # For trunk to create PRs
+ pull-requests: write # For trunk to create PRs
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Trunk Upgrade
+ uses: trunk-io/trunk-action/upgrade@v1
+ with:
+ base: master
diff --git a/.github/workflows/trunk_annotate_pr.yml b/.github/workflows/trunk_annotate_pr.yml
new file mode 100644
index 000000000..ac5cdc0d5
--- /dev/null
+++ b/.github/workflows/trunk_annotate_pr.yml
@@ -0,0 +1,26 @@
+name: Annotate PR with trunk issues
+# See: https://github.com/trunk-io/trunk-action/blob/v1/readme.md#getting-inline-annotations-for-fork-prs
+
+on:
+ workflow_run:
+ workflows: [Pull Request] # Name from `trunk_check.yml`
+ types: [completed]
+
+permissions: read-all
+
+jobs:
+ trunk_check:
+ name: Trunk Code Quality Annotate
+ runs-on: ubuntu-latest
+ permissions:
+ checks: write # For trunk to post annotations
+ contents: read # For repo checkout
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Trunk Check
+ uses: trunk-io/trunk-action@v1
+ with:
+ post-annotations: true
diff --git a/.github/workflows/trunk-check.yml b/.github/workflows/trunk_check.yml
similarity index 90%
rename from .github/workflows/trunk-check.yml
rename to .github/workflows/trunk_check.yml
index 6ed905bc8..2e74ab25f 100644
--- a/.github/workflows/trunk-check.yml
+++ b/.github/workflows/trunk_check.yml
@@ -20,3 +20,5 @@ jobs:
- name: Trunk Check
uses: trunk-io/trunk-action@v1
+ with:
+ save-annotations: true
diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml
index f2393592c..12b8608f2 100644
--- a/.trunk/trunk.yaml
+++ b/.trunk/trunk.yaml
@@ -1,37 +1,35 @@
version: 0.1
cli:
- version: 1.22.8
+ version: 1.22.10
plugins:
sources:
- id: trunk
- ref: v1.6.6
+ ref: v1.6.7
uri: https://github.com/trunk-io/plugins
lint:
enabled:
- - prettier@3.4.2
- - trufflehog@3.86.1
+ - prettier@3.5.1
+ - trufflehog@3.88.10
- yamllint@1.35.1
- - bandit@1.8.0
- - checkov@3.2.334
+ - bandit@1.8.3
+ - checkov@3.2.372
- terrascan@1.19.9
- - trivy@0.58.0
- #- trufflehog@3.63.2-rc0
+ - trivy@0.59.1
- taplo@0.9.3
- - ruff@0.8.3
- - isort@5.13.2
- - markdownlint@0.43.0
- - oxipng@9.1.3
+ - ruff@0.9.6
+ - isort@6.0.0
+ - markdownlint@0.44.0
+ - oxipng@9.1.4
- svgo@3.3.2
- - actionlint@1.7.4
- - flake8@7.1.1
+ - actionlint@1.7.7
+ - flake8@7.1.2
- hadolint@2.12.1-beta
- shfmt@3.6.0
- shellcheck@0.10.0
- - black@24.10.0
+ - black@25.1.0
- git-diff-check
- - gitleaks@8.21.2
+ - gitleaks@8.23.3
- clang-format@16.0.3
- #- prettier@3.3.3
ignore:
- linters: [ALL]
paths:
diff --git a/README.md b/README.md
index ca8a924fd..f34bf1839 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
-# Meshtastic Firmware
+
+
+

+
Meshtastic Firmware

[](https://github.com/meshtastic/firmware/actions/workflows/ci.yml)
@@ -6,13 +9,31 @@
[](https://opencollective.com/meshtastic/)
[](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)
+

+
+
+
+
+
+
+
## Overview
-This repository contains the device firmware for the Meshtastic project.
+This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.
-- **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)**
-- **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)**
+Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.
+
+### Get Started
+
+- 🔧 **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)** – Learn how to compile the firmware from source.
+- ⚡ **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)** – Install or update the firmware on your device.
+
+Join our community and help improve Meshtastic! 🚀
## Stats
-
+
diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini
index e7285cef1..256781ba1 100644
--- a/arch/esp32/esp32.ini
+++ b/arch/esp32/esp32.ini
@@ -2,7 +2,7 @@
[esp32_base]
extends = arduino_base
custom_esp32_kind = esp32
-platform = platformio/espressif32@6.9.0
+platform = platformio/espressif32@6.10.0
build_src_filter =
${arduino_base.build_src_filter} - - - - -
@@ -46,9 +46,9 @@ lib_deps =
${environmental_base.lib_deps}
${radiolib_base.lib_deps}
https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
- h2zero/NimBLE-Arduino@^1.4.2
+ h2zero/NimBLE-Arduino@^1.4.3
https://github.com/dbinfrago/libpax.git#3cdc0371c375676a97967547f4065607d4c53fd1
- lewisxhe/XPowersLib@^0.2.6
+ lewisxhe/XPowersLib@^0.2.7
https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
rweather/Crypto@^0.4.0
@@ -66,4 +66,4 @@ lib_ignore =
; 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
+board_build.partitions = partition-table.csv
diff --git a/arch/esp32/esp32c6.ini b/arch/esp32/esp32c6.ini
index 3f8b1bdbe..d0425812f 100644
--- a/arch/esp32/esp32c6.ini
+++ b/arch/esp32/esp32c6.ini
@@ -24,7 +24,7 @@ lib_deps =
${networking_base.lib_deps}
${environmental_base.lib_deps}
${radiolib_base.lib_deps}
- lewisxhe/XPowersLib@^0.2.6
+ lewisxhe/XPowersLib@^0.2.7
https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
rweather/Crypto@^0.4.0
@@ -38,4 +38,4 @@ lib_ignore =
NonBlockingRTTTL
NimBLE-Arduino
libpax
-
\ No newline at end of file
+
diff --git a/arch/nrf52/nrf52.ini b/arch/nrf52/nrf52.ini
index b68977c78..606cabac6 100644
--- a/arch/nrf52/nrf52.ini
+++ b/arch/nrf52/nrf52.ini
@@ -4,8 +4,8 @@ platform = platformio/nordicnrf52@^10.7.0
extends = arduino_base
platform_packages =
; our custom Git version until they merge our PR
- framework-arduinoadafruitnrf52 @ https://github.com/meshtastic/Adafruit_nRF52_Arduino.git#e13f5820002a4fb2a5e6754b42ace185277e5adf
- toolchain-gccarmnoneeabi@~1.90301.0
+ platformio/framework-arduinoadafruitnrf52 @ https://github.com/meshtastic/Adafruit_nRF52_Arduino.git#e13f5820002a4fb2a5e6754b42ace185277e5adf
+ platformio/toolchain-gccarmnoneeabi@~1.90301.0
build_type = debug
build_flags =
diff --git a/arch/stm32/stm32.ini b/arch/stm32/stm32.ini
index 46f41db3a..efa1ab0e4 100644
--- a/arch/stm32/stm32.ini
+++ b/arch/stm32/stm32.ini
@@ -1,7 +1,7 @@
[stm32_base]
extends = arduino_base
-platform = ststm32
-platform_packages = platformio/framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32.git#ea74156acd823b6d14739f389e6cdc648f8ee36e
+platform = platformio/ststm32
+platform_packages = platformio/framework-arduinoststm32@^4.20900.0
build_type = release
diff --git a/platformio.ini b/platformio.ini
index 1c51e53b4..98b93c34d 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -59,7 +59,7 @@ lib_deps =
https://github.com/meshtastic/arduino-fsm.git#7db3702bf0cfe97b783d6c72595e3f38e0b19159
https://github.com/meshtastic/TinyGPSPlus.git#71a82db35f3b973440044c476d4bcdc673b104f4
https://github.com/meshtastic/ArduinoThread.git#1ae8778c85d0a2a729f989e0b1e7d7c4dc84eef0
- nanopb/Nanopb@0.4.9
+ nanopb/Nanopb@0.4.91
erriez/ErriezCRC32@1.0.1
; Used for the code analysis in PIO Home / Inspect
diff --git a/src/mesh/compression/unishox2.h b/src/mesh/compression/unishox2.h
index 5e2cc8b4c..823128f02 100644
--- a/src/mesh/compression/unishox2.h
+++ b/src/mesh/compression/unishox2.h
@@ -291,8 +291,8 @@ extern int unishox2_decompress_simple(const char *in, int len, char *out);
* @param[in] olen length of 'out' buffer in bytes. Can be omitted if sufficient buffer is provided
* @param[in] usx_hcodes Horizontal codes (array of bytes). See macro section for samples.
* @param[in] usx_hcode_lens Length of each element in usx_hcodes array
- * @param[in] usx_freq_seq Frequently occuring sequences. See USX_FREQ_SEQ_* macros for samples
- * @param[in] usx_templates Templates of frequently occuring patterns. See USX_TEMPLATES macro.
+ * @param[in] usx_freq_seq Frequently occurring sequences. See USX_FREQ_SEQ_* macros for samples
+ * @param[in] usx_templates Templates of frequently occurring patterns. See USX_TEMPLATES macro.
*/
extern int unishox2_compress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(char *out, int olen),
const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[], const char *usx_freq_seq[],
@@ -310,8 +310,8 @@ extern int unishox2_compress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(ch
* @param[in] olen length of 'out' buffer in bytes. Can be omitted if sufficient buffer is provided
* @param[in] usx_hcodes Horizontal codes (array of bytes). See macro section for samples.
* @param[in] usx_hcode_lens Length of each element in usx_hcodes array
- * @param[in] usx_freq_seq Frequently occuring sequences. See USX_FREQ_SEQ_* macros for samples
- * @param[in] usx_templates Templates of frequently occuring patterns. See USX_TEMPLATES macro.
+ * @param[in] usx_freq_seq Frequently occurring sequences. See USX_FREQ_SEQ_* macros for samples
+ * @param[in] usx_templates Templates of frequently occurring patterns. See USX_TEMPLATES macro.
*/
extern int unishox2_decompress(const char *in, int len, UNISHOX_API_OUT_AND_LEN(char *out, int olen),
const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[], const char *usx_freq_seq[],
@@ -344,4 +344,4 @@ extern int unishox2_decompress_lines(const char *in, int len, UNISHOX_API_OUT_AN
const unsigned char usx_hcodes[], const unsigned char usx_hcode_lens[],
const char *usx_freq_seq[], const char *usx_templates[], struct us_lnk_lst *prev_lines);
-#endif
\ No newline at end of file
+#endif
diff --git a/src/serialization/MeshPacketSerializer.cpp b/src/serialization/MeshPacketSerializer.cpp
index 2f0d881f2..2c1dc0ca7 100644
--- a/src/serialization/MeshPacketSerializer.cpp
+++ b/src/serialization/MeshPacketSerializer.cpp
@@ -220,7 +220,11 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp,
if (pb_decode_from_bytes(mp->decoded.payload.bytes, mp->decoded.payload.size, &meshtastic_RouteDiscovery_msg,
&scratch)) {
decoded = &scratch;
- JSONArray route; // Route this message took
+ JSONArray route; // Route this message took
+ JSONArray routeBack; // Route this message took back
+ JSONArray snrTowards; // Snr for forward route
+ JSONArray snrBack; // Snr for reverse route
+
// Lambda function for adding a long name to the route
auto addToRoute = [](JSONArray *route, NodeNum num) {
char long_name[40] = "Unknown";
@@ -236,7 +240,24 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp,
}
addToRoute(&route, mp->from); // Ended at the original destination (source of response)
+ addToRoute(&routeBack, mp->from); // Started at the original destination (source of response)
+ for (uint8_t i = 0; i < decoded->route_back_count; i++) {
+ addToRoute(&routeBack, decoded->route_back[i]);
+ }
+ addToRoute(&routeBack, mp->to); // Ended at the original transmitter (destination of response)
+
+ for (uint8_t i = 0; i < decoded->snr_back_count; i++) {
+ snrBack.push_back(new JSONValue((float)decoded->snr_back[i] / 4));
+ }
+
+ for (uint8_t i = 0; i < decoded->snr_towards_count; i++) {
+ snrTowards.push_back(new JSONValue((float)decoded->snr_towards[i] / 4));
+ }
+
msgPayload["route"] = new JSONValue(route);
+ msgPayload["route_back"] = new JSONValue(routeBack);
+ msgPayload["snr_back"] = new JSONValue(snrBack);
+ msgPayload["snr_towards"] = new JSONValue(snrTowards);
jsonObj["payload"] = new JSONValue(msgPayload);
} else if (shouldLog) {
LOG_ERROR(errStr, msgType.c_str());
diff --git a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
index a98656e86..9e87fd237 100644
--- a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
+++ b/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
@@ -10,5 +10,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}
- zinggjm/GxEPD2@^1.4.9
-debug_tool = jlink
\ No newline at end of file
+ zinggjm/GxEPD2@^1.6.2
+debug_tool = jlink
diff --git a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini b/variants/ME25LS01-4Y10TD_e-ink/platformio.ini
index f2e3a49e3..62314040a 100644
--- a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini
+++ b/variants/ME25LS01-4Y10TD_e-ink/platformio.ini
@@ -13,7 +13,7 @@ board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/ME25LS01-4Y10TD_e-ink>
lib_deps =
${nrf52840_base.lib_deps}
- zinggjm/GxEPD2@^1.5.8
+ zinggjm/GxEPD2@^1.6.2
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
upload_protocol = nrfutil
-upload_port = /dev/ttyACM1
\ No newline at end of file
+upload_port = /dev/ttyACM1
diff --git a/variants/MakePython_nRF52840_eink/platformio.ini b/variants/MakePython_nRF52840_eink/platformio.ini
index b11b54c7d..b7ce97dcb 100644
--- a/variants/MakePython_nRF52840_eink/platformio.ini
+++ b/variants/MakePython_nRF52840_eink/platformio.ini
@@ -5,13 +5,13 @@ board = nordic_pca10059
build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW
-L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard"
-D PIN_EINK_EN
+ -DEINK_DISPLAY_MODEL=GxEPD2_290_T5D
+ -DEINK_WIDTH=296
+ -DEINK_HEIGHT=128
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
- zinggjm/GxEPD2@^1.4.9
- -DEINK_DISPLAY_MODEL=GxEPD2_290_T5D
- -DEINK_WIDTH=296
- -DEINK_HEIGHT=128
+ zinggjm/GxEPD2@^1.6.2
debug_tool = jlink
-;upload_port = /dev/ttyACM4
+;upload_port = /dev/ttyACM4
\ No newline at end of file
diff --git a/variants/TWC_mesh_v4/platformio.ini b/variants/TWC_mesh_v4/platformio.ini
index 4fb382334..2eb58bf9f 100644
--- a/variants/TWC_mesh_v4/platformio.ini
+++ b/variants/TWC_mesh_v4/platformio.ini
@@ -6,5 +6,5 @@ build_flags = ${nrf52840_base.build_flags} -I variants/TWC_mesh_v4 -D TWC_mesh_v
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/TWC_mesh_v4>
lib_deps =
${nrf52840_base.lib_deps}
- zinggjm/GxEPD2@^1.4.9
-debug_tool = jlink
\ No newline at end of file
+ zinggjm/GxEPD2@^1.6.2
+debug_tool = jlink
diff --git a/variants/esp32-s3-pico/platformio.ini b/variants/esp32-s3-pico/platformio.ini
index 916f623bd..20a41ba56 100644
--- a/variants/esp32-s3-pico/platformio.ini
+++ b/variants/esp32-s3-pico/platformio.ini
@@ -21,5 +21,5 @@ build_flags = ${esp32s3_base.build_flags}
-DEINK_HEIGHT=128
lib_deps = ${esp32s3_base.lib_deps}
- zinggjm/GxEPD2@^1.5.3
+ zinggjm/GxEPD2@^1.6.2
adafruit/Adafruit NeoPixel @ ^1.12.0
diff --git a/variants/icarus/platformio.ini b/variants/icarus/platformio.ini
index 11f09cab4..b1dc01fc1 100644
--- a/variants/icarus/platformio.ini
+++ b/variants/icarus/platformio.ini
@@ -6,7 +6,7 @@ board_check = true
board_build.mcu = esp32s3
upload_protocol = esptool
upload_speed = 921600
-platform_packages = framework-arduinoespressif32@https://github.com/PowerFeather/powerfeather-meshtastic-arduino-lib/releases/download/2.0.16a/esp32-2.0.16.zip
+platform_packages = platformio/framework-arduinoespressif32@https://github.com/PowerFeather/powerfeather-meshtastic-arduino-lib/releases/download/2.0.16a/esp32-2.0.16.zip
lib_deps =
${esp32s3_base.lib_deps}
build_unflags =
@@ -16,4 +16,4 @@ build_flags =
${esp32s3_base.build_flags} -D PRIVATE_HW -I variants/icarus
-DBOARD_HAS_PSRAM
- -DARDUINO_USB_MODE=0
+ -DARDUINO_USB_MODE=0
\ No newline at end of file
diff --git a/variants/m5stack_coreink/platformio.ini b/variants/m5stack_coreink/platformio.ini
index c0c8bd30e..70da53379 100644
--- a/variants/m5stack_coreink/platformio.ini
+++ b/variants/m5stack_coreink/platformio.ini
@@ -17,11 +17,11 @@ build_flags =
-DM5STACK
lib_deps =
${esp32_base.lib_deps}
- zinggjm/GxEPD2@^1.5.3
+ zinggjm/GxEPD2@^1.6.2
lewisxhe/PCF8563_Library@^1.0.1
lib_ignore =
m5stack-coreink
monitor_filters = esp32_exception_decoder
board_build.f_cpu = 240000000L
upload_protocol = esptool
-upload_port = /dev/ttyACM0
\ No newline at end of file
+upload_port = /dev/ttyACM0
diff --git a/variants/my_esp32s3_diy_eink/platformio.ini b/variants/my_esp32s3_diy_eink/platformio.ini
index b2404566f..98613e4fb 100644
--- a/variants/my_esp32s3_diy_eink/platformio.ini
+++ b/variants/my_esp32s3_diy_eink/platformio.ini
@@ -9,10 +9,10 @@ upload_protocol = esptool
;upload_port = /dev/ttyACM1
upload_speed = 921600
platform_packages =
- tool-esptoolpy@^1.40500.0
+ platformio/tool-esptoolpy@^1.40801.0
lib_deps =
${esp32_base.lib_deps}
- zinggjm/GxEPD2@^1.5.1
+ zinggjm/GxEPD2@^1.6.2
adafruit/Adafruit NeoPixel @ ^1.12.0
build_unflags =
${esp32s3_base.build_unflags}
diff --git a/variants/my_esp32s3_diy_oled/platformio.ini b/variants/my_esp32s3_diy_oled/platformio.ini
index 0fbbaa899..346cc9cac 100644
--- a/variants/my_esp32s3_diy_oled/platformio.ini
+++ b/variants/my_esp32s3_diy_oled/platformio.ini
@@ -9,7 +9,7 @@ upload_protocol = esptool
;upload_port = /dev/ttyACM0
upload_speed = 921600
platform_packages =
- tool-esptoolpy@^1.40500.0
+ platformio/tool-esptoolpy@^1.40801.0
lib_deps =
${esp32_base.lib_deps}
adafruit/Adafruit NeoPixel @ ^1.12.0
diff --git a/variants/rak11310/platformio.ini b/variants/rak11310/platformio.ini
index 0cc60bc7c..d1da962ca 100644
--- a/variants/rak11310/platformio.ini
+++ b/variants/rak11310/platformio.ini
@@ -18,4 +18,4 @@ lib_deps =
${networking_base.lib_deps}
https://github.com/RAKWireless/RAK13800-W5100S.git#1.0.2
debug_build_flags = ${rp2040_base.build_flags}, -g
-debug_tool = cmsis-dap ; for e.g. Picotool
+debug_tool = cmsis-dap ; for e.g. Picotool
\ No newline at end of file
diff --git a/variants/rak4631_epaper/platformio.ini b/variants/rak4631_epaper/platformio.ini
index 2479f09c8..b851691ed 100644
--- a/variants/rak4631_epaper/platformio.ini
+++ b/variants/rak4631_epaper/platformio.ini
@@ -13,10 +13,10 @@ 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}
- zinggjm/GxEPD2@^1.4.9
+ zinggjm/GxEPD2@^1.6.2
melopero/Melopero RV3028@^1.1.0
rakwireless/RAKwireless NCP5623 RGB LED library@^1.0.2
beegee-tokyo/RAKwireless RAK12034@^1.0.0
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
-;upload_protocol = jlink
\ No newline at end of file
+;upload_protocol = jlink
diff --git a/variants/rak4631_epaper_onrxtx/platformio.ini b/variants/rak4631_epaper_onrxtx/platformio.ini
index 8c1b8eee8..8612a3f3d 100644
--- a/variants/rak4631_epaper_onrxtx/platformio.ini
+++ b/variants/rak4631_epaper_onrxtx/platformio.ini
@@ -15,11 +15,11 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx>
lib_deps =
${nrf52840_base.lib_deps}
- zinggjm/GxEPD2@^1.5.1
+ zinggjm/GxEPD2@^1.6.2
melopero/Melopero RV3028@^1.1.0
rakwireless/RAKwireless NCP5623 RGB LED library@^1.0.2
beegee-tokyo/RAKwireless RAK12034@^1.0.0
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
;upload_protocol = jlink
-;upload_port = /dev/ttyACM3
\ No newline at end of file
+;upload_port = /dev/ttyACM3
diff --git a/variants/seeed_xiao_s3/variant.h b/variants/seeed_xiao_s3/variant.h
index 8f9282a7a..d8dcbc8d4 100644
--- a/variants/seeed_xiao_s3/variant.h
+++ b/variants/seeed_xiao_s3/variant.h
@@ -36,6 +36,10 @@ L76K GPS Module Information : https://www.seeedstudio.com/L76K-GNSS-Module-for-S
#define BUTTON_PIN 21 // This is the Program Button
#define BUTTON_NEED_PULLUP
+#define BATTERY_PIN -1
+#define ADC_CHANNEL ADC1_GPIO1_CHANNEL
+#define BATTERY_SENSE_RESOLUTION_BITS 12
+
/*Warning:
https://www.seeedstudio.com/L76K-GNSS-Module-for-Seeed-Studio-XIAO-p-5864.html
L76K Expansion Board can not directly used, L76K Reset Pin needs to override or physically remove it,
diff --git a/variants/trackerd/platformio.ini b/variants/trackerd/platformio.ini
index 6fba190f3..654534a15 100644
--- a/variants/trackerd/platformio.ini
+++ b/variants/trackerd/platformio.ini
@@ -1,13 +1,8 @@
[env:trackerd]
extends = esp32_base
-;platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
-platform = espressif32
board = pico32
board_build.f_flash = 80000000L
build_flags =
${esp32_base.build_flags} -D PRIVATE_HW -I variants/trackerd -D BSFILE=\"boards/dragino_lbt2.h\"
-;board_build.partitions = no_ota.csv
-;platform_packages =
-; platformio/framework-arduinoespressif32@3
-;platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.1-RC1
+;board_build.partitions = no_ota.csv
\ No newline at end of file