forked from Klipper3d/klipper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflash-sdcard.sh
executable file
·69 lines (61 loc) · 1.87 KB
/
flash-sdcard.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
# This script launches flash_sdcard.py, a utitlity that enables
# unattended firmware updates on boards with "SD Card" bootloaders
# Non-standard installations may need to change this location
KLIPPY_ENV="${HOME}/klippy-env/bin/python"
SRCDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/.. && pwd )"
KLIPPER_BIN="${SRCDIR}/out/klipper.bin"
SPI_FLASH="${SRCDIR}/scripts/spi_flash/spi_flash.py"
BAUD_ARG=""
# Force script to exit if an error occurs
set -e
print_help_message()
{
echo "SD Card upload utility for Klipper"
echo
echo "usage: flash_sdcard.sh [-h] [-l] [-b <baud>] [-f <firmware>]"
echo " <device> <board>"
echo
echo "positional arguments:"
echo " <device> device serial port"
echo " <board> board type"
echo
echo "optional arguments:"
echo " -h show this message"
echo " -l list available boards"
echo " -b <baud> serial baud rate (default is 250000)"
echo " -f <firmware> path to klipper.bin"
}
# Parse command line "optional args"
while getopts "hlb:f:" arg; do
case $arg in
h)
print_help_message
exit 0
;;
l)
${KLIPPY_ENV} ${SPI_FLASH} -l
exit 0
;;
b) BAUD_ARG="-b ${OPTARG}";;
f) KLIPPER_BIN=$OPTARG;;
esac
done
# Make sure that we have the correct number of positional args
if [ $(($# - $OPTIND + 1)) -ne 2 ]; then
echo "Invalid number of args: $(($# - $OPTIND + 1))"
exit -1
fi
DEVICE=${@:$OPTIND:1}
BOARD=${@:$OPTIND+1:1}
if [ ! -f $KLIPPER_BIN ]; then
echo "No file found at '${KLIPPER_BIN}'"
exit -1
fi
if [ ! -e $DEVICE ]; then
echo "No device found at '${DEVICE}'"
exit -1
fi
# Run Script
echo "Flashing ${KLIPPER_BIN} to ${DEVICE}"
${KLIPPY_ENV} ${SPI_FLASH} ${BAUD_ARG} ${DEVICE} ${BOARD} ${KLIPPER_BIN}