mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-04 03:18:10 +10:00
ad1dd14b6cd977dfcc1ab11cb112d7ce9cfedf52
* fix(bin): correct filename check and esptool v5 subcommands in .bat installers device-install.bat rejected every valid firmware-*.factory.bin name. The substring-strip comparison was negated, so it errored when the suffix was present instead of when it was absent. Both scripts hardcoded esptool subcommand spellings. device-install.bat used the v4 underscore forms only. device-update.bat used the v5 write-flash with the v4 read_flash_status, so it worked fully on neither version. Probe the help output once and select the spelling, mirroring bin/device-install.sh. The probe uses %ESPTOOL_CMD% rather than !ESPTOOL_CMD! because cmd does not split a delayed-expanded command token carrying a path into program and arguments. Fixes #8156 * fix(bin): make the -P interpreter option work in the .bat installers Both scripts invoked ESPTOOL_CMD through delayed expansion. cmd does not split a delayed-expanded command token that carries a path into program and arguments, so "-P C:\path\python.exe" exited 9009 and the scripts reported "esptool not found". Use %ESPTOOL_CMD% at the two command positions per file. device-update.bat additionally wrapped the interpreter in doubled quotes, which made python treat python.exe as a source file. Quote the path once, as device-install.bat does, so interpreter paths containing spaces also work. * fix(bin): anchor the .factory.bin suffix check and harden esptool detection The filename check matched .factory.bin anywhere in the name, so firmware-x.factory.bin.bak passed and the script then derived firmware-x.bak.mt.json for metadata. Compare the last 12 characters instead, matching the anchored glob in bin/device-install.sh. A quoted interpreter path that does not exist returns 3 rather than 9009, so the missing-esptool check skipped it and the script died at the probe with no message. Treat 3 as missing as well. device-update.bat read %ERRORLEVEL% after a CALL that overwrote it, so the missing-esptool check never fired. Capture the exit code before logging it.
Overview
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.
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 - Learn how to compile the firmware from source.
- ⚡ Flashing Instructions - Install or update the firmware on your device.
Join our community and help improve Meshtastic! 🚀
Stats
Languages
C++
72.7%
C
23.5%
Python
2%
Shell
1.2%
Batchfile
0.2%
Other
0.2%
