Skip to content

Commit 45ecd13

Browse files
authored
Merge branch 'master' into indicator-comms
2 parents 79db7a5 + 7089789 commit 45ecd13

86 files changed

Lines changed: 3423 additions & 537 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,7 @@ release/
3737
.vscode/extensions.json
3838
/compile_commands.json
3939
src/mesh/raspihttp/certificate.pem
40-
src/mesh/raspihttp/private_key.pem
40+
src/mesh/raspihttp/private_key.pem
41+
42+
# Ignore logo (set at build time with platformio-custom.py)
43+
data/boot/logo.*

arch/esp32/esp32.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ lib_deps =
4949
${environmental_extra.lib_deps}
5050
${radiolib_base.lib_deps}
5151
# renovate: datasource=git-refs depName=meshtastic-esp32_https_server packageName=https://github.com/meshtastic/esp32_https_server gitBranch=master
52-
https://github.com/meshtastic/esp32_https_server/archive/896f1771ceb5979987a0b41028bf1b4e7aad419b.zip
52+
https://github.com/meshtastic/esp32_https_server/archive/3223704846752e6d545139204837bdb2a55459ca.zip
5353
# renovate: datasource=custom.pio depName=NimBLE-Arduino packageName=h2zero/library/NimBLE-Arduino
5454
h2zero/NimBLE-Arduino@^1.4.3
5555
# renovate: datasource=git-refs depName=libpax packageName=https://github.com/dbinfrago/libpax gitBranch=master
5656
https://github.com/dbinfrago/libpax/archive/3cdc0371c375676a97967547f4065607d4c53fd1.zip
5757
# renovate: datasource=custom.pio depName=XPowersLib packageName=lewisxhe/library/XPowersLib
58-
lewisxhe/XPowersLib@^0.2.7
58+
lewisxhe/XPowersLib@0.3.0
5959
# renovate: datasource=git-refs depName=meshtastic-ESP32_Codec2 packageName=https://github.com/meshtastic/ESP32_Codec2 gitBranch=master
6060
https://github.com/meshtastic/ESP32_Codec2/archive/633326c78ac251c059ab3a8c430fcdf25b41672f.zip
6161
# renovate: datasource=custom.pio depName=rweather/Crypto packageName=rweather/library/Crypto

arch/esp32/esp32c6.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ lib_deps =
2828
${environmental_extra.lib_deps}
2929
${radiolib_base.lib_deps}
3030
# renovate: datasource=custom.pio depName=XPowersLib packageName=lewisxhe/library/XPowersLib
31-
lewisxhe/XPowersLib@^0.2.7
31+
lewisxhe/XPowersLib@0.3.0
3232
# renovate: datasource=git-refs depName=meshtastic-ESP32_Codec2 packageName=https://github.com/meshtastic/ESP32_Codec2 gitBranch=master
3333
https://github.com/meshtastic/ESP32_Codec2/archive/633326c78ac251c059ab3a8c430fcdf25b41672f.zip
3434
# renovate: datasource=custom.pio depName=rweather/Crypto packageName=rweather/library/Crypto

bin/config.d/display-waveshare-1-44.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ Input:
2222
TrackballLeft: 5
2323
TrackballRight: 26
2424
TrackballPress: 13
25-
25+
TrackballDirection: FALLING
2626
# User: 21

bin/device-update.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ Flash image file to device, leave existing system intact."
3030
EOF
3131
}
3232

33+
# Check for --change-mode and remove it from arguments
34+
NEW_ARGS=""
35+
for arg in "$@"; do
36+
if [ "$arg" = "--change-mode" ]; then
37+
CHANGE_MODE=true
38+
else
39+
NEW_ARGS="$NEW_ARGS \"\$arg\""
40+
fi
41+
done
42+
43+
# Reset positional parameters to filtered list
44+
eval set -- $NEW_ARGS
3345

3446
while getopts ":hp:P:f:" opt; do
3547
case "${opt}" in
@@ -43,9 +55,6 @@ while getopts ":hp:P:f:" opt; do
4355
;;
4456
f) FILENAME=${OPTARG}
4557
;;
46-
--change-mode)
47-
CHANGE_MODE=true
48-
;;
4958
*)
5059
echo "Invalid flag."
5160
show_help >&2
@@ -55,7 +64,7 @@ while getopts ":hp:P:f:" opt; do
5564
done
5665
shift "$((OPTIND-1))"
5766

58-
if [[ $CHANGE_MODE == true ]]; then
67+
if [ "$CHANGE_MODE" = true ]; then
5968
$ESPTOOL_CMD --baud 1200 --after no_reset read_flash_status
6069
exit 0
6170
fi

bin/org.meshtastic.meshtasticd.metainfo.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@
8787
</screenshots>
8888

8989
<releases>
90+
<release version="2.7.2" date="2025-07-04">
91+
<url type="details">https://github.com/meshtastic/firmware/releases?q=tag%3Av2.7.2</url>
92+
</release>
9093
<release version="2.7.1" date="2025-06-27">
9194
<url type="details">https://github.com/meshtastic/firmware/releases?q=tag%3Av2.7.1</url>
9295
</release>

bin/platformio-custom.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,33 @@ def esp32_create_combined_bin(source, target, env):
131131
if lb.name == "meshtastic-device-ui":
132132
lb.env.Append(CPPDEFINES=[("APP_VERSION", verObj["long"])])
133133
break
134+
135+
# Get the display resolution from macros
136+
def get_display_resolution(build_flags):
137+
# Check "DISPLAY_SIZE" to determine the screen resolution
138+
for flag in build_flags:
139+
if isinstance(flag, tuple) and flag[0] == "DISPLAY_SIZE":
140+
screen_width, screen_height = map(int, flag[1].split("x"))
141+
return screen_width, screen_height
142+
print("No screen resolution defined in build_flags. Please define DISPLAY_SIZE.")
143+
exit(1)
144+
145+
def load_boot_logo(source, target, env):
146+
build_flags = env.get("CPPDEFINES", [])
147+
logo_w, logo_h = get_display_resolution(build_flags)
148+
print(f"TFT build with {logo_w}x{logo_h} resolution detected")
149+
150+
# Load the boot logo from `branding/logo_<width>x<height>.png` if it exists
151+
source_path = join(env["PROJECT_DIR"], "branding", f"logo_{logo_w}x{logo_h}.png")
152+
dest_dir = join(env["PROJECT_DIR"], "data", "boot")
153+
dest_path = join(dest_dir, "logo.png")
154+
if env.File(source_path).exists():
155+
print(f"Loading boot logo from {source_path}")
156+
# Prepare the destination
157+
env.Execute(f"mkdir -p {dest_dir} && rm -f {dest_path}")
158+
# Copy the logo to the `data/boot` directory
159+
env.Execute(f"cp {source_path} {dest_path}")
160+
161+
# Load the boot logo on TFT builds
162+
if ("HAS_TFT", 1) in env.get("CPPDEFINES", []):
163+
env.AddPreAction('$BUILD_DIR/littlefs.bin', load_boot_logo)

boards/seeed_wio_tracker_L1.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
"cpu": "cortex-m4",
88
"extra_flags": "-DARDUINO_MDBT50Q_RX -DNRF52840_XXAA",
99
"f_cpu": "64000000L",
10-
"hwids": [["0x2886", "0x1668"]],
10+
"hwids": [
11+
["0x2886", "0x1668"],
12+
["0x2886", "0x1667"]
13+
],
1114
"usb_product": "TRACKER L1",
1215
"mcu": "nrf52840",
1316
"variant": "seeed_wio_tracker_L1",

boards/tracker-t1000-e.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
["0x239A", "0x8029"],
1212
["0x239A", "0x0029"],
1313
["0x239A", "0x002A"],
14-
["0x239A", "0x802A"]
14+
["0x239A", "0x802A"],
15+
["0x2886", "0x0057"]
1516
],
1617
"usb_product": "T1000-E-BOOT",
1718
"mcu": "nrf52840",

branding/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Meshtastic Branding / Whitelabeling
2+
3+
This directory is consumed during the creation of **event** firmware.
4+
5+
`bin/platformio-custom.py` determines the display resolution, and locates the corresponding `logo_<width>x<height>.png`.
6+
7+
Ex:
8+
9+
- `logo_800x480.png`
10+
- `logo_480x480.png`
11+
- `logo_480x320.png`
12+
- `logo_320x480.png`
13+
- `logo_320x240.png`
14+
15+
This file is copied to `data/boot/logo.png` before filesytem image compilation.
16+
17+
For additional examples see the [`event/defcon33` branch](https://github.com/meshtastic/firmware/tree/event/defcon33).

0 commit comments

Comments
 (0)