mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-01 10:19:59 +00:00
1752caaf19
Some checks are pending
CI / setup (check) (push) Waiting to run
CI / setup (esp32) (push) Waiting to run
CI / setup (esp32c3) (push) Waiting to run
CI / setup (esp32c6) (push) Waiting to run
CI / setup (esp32s3) (push) Waiting to run
CI / setup (nrf52840) (push) Waiting to run
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Add --web * Update device-install.bat Forgot a "-" a few places. --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
99 lines
2.5 KiB
Bash
Executable File
99 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PYTHON=${PYTHON:-$(which python3 python | head -n 1)}
|
|
WEB_APP=false
|
|
|
|
# Determine the correct esptool command to use
|
|
if "$PYTHON" -m esptool version >/dev/null 2>&1; then
|
|
ESPTOOL_CMD="$PYTHON -m esptool"
|
|
elif command -v esptool >/dev/null 2>&1; then
|
|
ESPTOOL_CMD="esptool"
|
|
elif command -v esptool.py >/dev/null 2>&1; then
|
|
ESPTOOL_CMD="esptool.py"
|
|
else
|
|
echo "Error: esptool not found"
|
|
exit 1
|
|
fi
|
|
|
|
set -e
|
|
|
|
# Usage info
|
|
show_help() {
|
|
cat <<EOF
|
|
Usage: $(basename $0) [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME|FILENAME] [--web]
|
|
Flash image file to device, but first erasing and writing system information"
|
|
|
|
-h Display this help and exit
|
|
-p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerous).
|
|
-P PYTHON Specify alternate python interpreter to use to invoke esptool. (Default: "$PYTHON")
|
|
-f FILENAME The .bin file to flash. Custom to your device type and region.
|
|
--web Flash WEB APP.
|
|
|
|
EOF
|
|
}
|
|
# Preprocess long options like --web
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--web)
|
|
WEB_APP=true
|
|
shift # Remove this argument from the list
|
|
;;
|
|
esac
|
|
done
|
|
|
|
while getopts ":hp:P:f:" opt; do
|
|
case "${opt}" in
|
|
h)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
p)
|
|
export ESPTOOL_PORT=${OPTARG}
|
|
;;
|
|
P)
|
|
PYTHON=${OPTARG}
|
|
;;
|
|
f)
|
|
FILENAME=${OPTARG}
|
|
;;
|
|
*)
|
|
echo "Invalid flag."
|
|
show_help >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shift "$((OPTIND - 1))"
|
|
|
|
[ -z "$FILENAME" -a -n "$1" ] && {
|
|
FILENAME=$1
|
|
shift
|
|
}
|
|
|
|
if [ -f "${FILENAME}" ] && [ -n "${FILENAME##*"update"*}" ]; then
|
|
echo "Trying to flash ${FILENAME}, but first erasing and writing system information"
|
|
$ESPTOOL_CMD erase_flash
|
|
$ESPTOOL_CMD write_flash 0x00 ${FILENAME}
|
|
# Account for S3 board's different OTA partition
|
|
if [ -n "${FILENAME##*"s3"*}" ] && [ -n "${FILENAME##*"-v3"*}" ] && [ -n "${FILENAME##*"t-deck"*}" ] && [ -n "${FILENAME##*"wireless-paper"*}" ] && [ -n "${FILENAME##*"wireless-tracker"*}" ] && [ -n "${FILENAME##*"station-g2"*}" ] && [ -n "${FILENAME##*"unphone"*}" ]; then
|
|
if [ -n "${FILENAME##*"esp32c3"*}" ]; then
|
|
$ESPTOOL_CMD write_flash 0x260000 bleota.bin
|
|
else
|
|
$ESPTOOL_CMD write_flash 0x260000 bleota-c3.bin
|
|
fi
|
|
else
|
|
$ESPTOOL_CMD write_flash 0x260000 bleota-s3.bin
|
|
fi
|
|
if [ "$WEB_APP" = true ]; then
|
|
$ESPTOOL_CMD write_flash 0x300000 littlefsweb-*.bin
|
|
else
|
|
$ESPTOOL_CMD write_flash 0x300000 littlefs-*.bin
|
|
fi
|
|
|
|
else
|
|
show_help
|
|
echo "Invalid file: ${FILENAME}"
|
|
fi
|
|
|
|
exit 0
|