@@ -32,47 +32,47 @@ BIGDB_16MB=(
32
32
" ESP32-S3-Pico"
33
33
" m5stack-cores3"
34
34
" station-g2"
35
- " t-eth-elite"
36
- " t-watch-s3"
35
+ " t-eth-elite"
36
+ " t-watch-s3"
37
37
)
38
38
S3_VARIANTS=(
39
- " s3"
40
- " -v3"
41
- " t-deck"
42
- " wireless-paper"
43
- " wireless-tracker"
44
- " station-g2"
45
- " unphone"
46
- " t-eth-elite"
47
- " mesh-tab"
48
- " dreamcatcher"
49
- " ESP32-S3-Pico"
50
- " seeed-sensecap-indicator"
51
- " heltec_capsule_sensor_v3"
52
- " vision-master"
53
- " icarus"
54
- " tracksenger"
55
- " elecrow-adv"
39
+ " s3"
40
+ " -v3"
41
+ " t-deck"
42
+ " wireless-paper"
43
+ " wireless-tracker"
44
+ " station-g2"
45
+ " unphone"
46
+ " t-eth-elite"
47
+ " mesh-tab"
48
+ " dreamcatcher"
49
+ " ESP32-S3-Pico"
50
+ " seeed-sensecap-indicator"
51
+ " heltec_capsule_sensor_v3"
52
+ " vision-master"
53
+ " icarus"
54
+ " tracksenger"
55
+ " elecrow-adv"
56
56
)
57
57
58
58
# Determine the correct esptool command to use
59
59
if " $PYTHON " -m esptool version > /dev/null 2>&1 ; then
60
- ESPTOOL_CMD=" $PYTHON -m esptool"
60
+ ESPTOOL_CMD=" $PYTHON -m esptool"
61
61
elif command -v esptool > /dev/null 2>&1 ; then
62
- ESPTOOL_CMD=" esptool"
62
+ ESPTOOL_CMD=" esptool"
63
63
elif command -v esptool.py > /dev/null 2>&1 ; then
64
- ESPTOOL_CMD=" esptool.py"
64
+ ESPTOOL_CMD=" esptool.py"
65
65
else
66
- echo " Error: esptool not found"
67
- exit 1
66
+ echo " Error: esptool not found"
67
+ exit 1
68
68
fi
69
69
70
70
set -e
71
71
72
72
# Usage info
73
73
show_help () {
74
- cat << EOF
75
- Usage: $( basename $0 ) [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME] [--web]
74
+ cat << EOF
75
+ Usage: $( basename " $0 " ) [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME] [--web]
76
76
Flash image file to device, but first erasing and writing system information.
77
77
78
78
-h Display this help and exit.
@@ -85,132 +85,132 @@ EOF
85
85
}
86
86
# Parse arguments using a single while loop
87
87
while [ $# -gt 0 ]; do
88
- case " $1 " in
89
- -h | --help)
90
- show_help
91
- exit 0
92
- ;;
93
- -p)
94
- ESPTOOL_CMD=" $ESPTOOL_CMD --port $2 "
95
- shift
96
- ;;
97
- -P)
98
- PYTHON=" $2 "
99
- shift
100
- ;;
101
- -f)
102
- FILENAME=" $2 "
103
- shift
104
- ;;
105
- --web)
106
- WEB_APP=true
107
- ;;
108
- --) # Stop parsing options
109
- shift
110
- break
111
- ;;
112
- * )
113
- echo " Unknown argument: $1 " >&2
114
- exit 1
115
- ;;
116
- esac
117
- shift # Move to the next argument
88
+ case " $1 " in
89
+ -h | --help)
90
+ show_help
91
+ exit 0
92
+ ;;
93
+ -p)
94
+ ESPTOOL_CMD=" $ESPTOOL_CMD --port $2 "
95
+ shift
96
+ ;;
97
+ -P)
98
+ PYTHON=" $2 "
99
+ shift
100
+ ;;
101
+ -f)
102
+ FILENAME=" $2 "
103
+ shift
104
+ ;;
105
+ --web)
106
+ WEB_APP=true
107
+ ;;
108
+ --) # Stop parsing options
109
+ shift
110
+ break
111
+ ;;
112
+ * )
113
+ echo " Unknown argument: $1 " >&2
114
+ exit 1
115
+ ;;
116
+ esac
117
+ shift # Move to the next argument
118
118
done
119
119
120
- [ -z " $FILENAME " -a -n " $1 " ] && {
121
- FILENAME=$1
122
- shift
120
+ [ -z " $FILENAME " ] && [ -n " $1 " ] && {
121
+ FILENAME=" $1 "
122
+ shift
123
123
}
124
124
125
- if [[ $FILENAME != firmware-* ]]; then
125
+ if [[ " $FILENAME " != firmware-* ]]; then
126
126
echo " Filename must be a firmware-* file."
127
127
exit 1
128
128
fi
129
129
130
130
# Check if FILENAME contains "-tft-" and prevent web/mui comingling.
131
- if [[ ${FILENAME// -tft-/ } != " $FILENAME " ]]; then
132
- TFT_BUILD=true
133
- if [[ $WEB_APP == true ]] && [[ $TFT_BUILD == true ]]; then
134
- echo " Cannot enable WebUI (--web) and MUI."
135
- exit 1
136
- fi
131
+ if [[ " ${FILENAME// -tft-/ } " != " $FILENAME " ]]; then
132
+ TFT_BUILD=true
133
+ if [[ $WEB_APP == true ]] && [[ $TFT_BUILD == true ]]; then
134
+ echo " Cannot enable WebUI (--web) and MUI."
135
+ exit 1
136
+ fi
137
137
fi
138
138
139
139
# Extract BASENAME from %FILENAME% for later use.
140
140
BASENAME=" ${FILENAME/ firmware-/ } "
141
141
142
142
if [ -f " ${FILENAME} " ] && [ -n " ${FILENAME##* " update" * } " ]; then
143
- # Default littlefs* offset (--web).
144
- OFFSET=0x300000
145
-
146
- # Default OTA Offset
147
- OTA_OFFSET=0x260000
148
-
149
- # littlefs* offset for BigDB 8mb and OTA OFFSET.
150
- for variant in " ${BIGDB_8MB[@]} " ; do
151
- if [ -z " ${FILENAME##* " $variant " * } " ]; then
152
- OFFSET=0x670000
153
- OTA_OFFSET=0x340000
154
- fi
155
- done
156
-
157
- # littlefs* offset for BigDB 16mb and OTA OFFSET.
158
- for variant in " ${BIGDB_16MB[@]} " ; do
159
- if [ -z " ${FILENAME##* " $variant " * } " ]; then
160
- OFFSET=0xc90000
161
- OTA_OFFSET=0x650000
162
- fi
163
- done
164
-
165
- # Account for S3 board's different OTA partition
166
- # FIXME: Use PlatformIO info to determine MCU type, this is unmaintainable
167
- for variant in " ${S3_VARIANTS[@]} " ; do
168
- if [ -z " ${FILENAME##* " $variant " * } " ]; then
169
- MCU=" esp32s3"
170
- fi
171
- done
172
-
173
- if [ " $MCU " != " esp32s3" ]; then
174
- if [ -n " ${FILENAME##* " esp32c3" * } " ]; then
175
- OTAFILE=bleota.bin
176
- else
177
- OTAFILE=bleota-c3.bin
178
- fi
179
- else
180
- OTAFILE=bleota-s3.bin
181
- fi
182
-
183
- # Check if WEB_APP (--web) is enabled and add "littlefswebui-" to BASENAME else "littlefs-".
184
- if [ " $WEB_APP " = true ]; then
185
- SPIFFSFILE=littlefswebui-${BASENAME}
186
- else
187
- SPIFFSFILE=littlefs-${BASENAME}
188
- fi
189
-
190
- if [[ ! -f $FILENAME ]]; then
191
- echo " Error: file ${FILENAME} wasn't found. Terminating."
192
- exit 1
193
- fi
194
- if [[ ! -f $OTAFILE ]]; then
195
- echo " Error: file ${OTAFILE} wasn't found. Terminating."
196
- exit 1
197
- fi
198
- if [[ ! -f $SPIFFSFILE ]]; then
199
- echo " Error: file ${SPIFFSFILE} wasn't found. Terminating."
200
- exit 1
201
- fi
202
-
203
- echo " Trying to flash ${FILENAME} , but first erasing and writing system information"
204
- $ESPTOOL_CMD erase_flash
205
- $ESPTOOL_CMD write_flash 0x00 " ${FILENAME} "
206
- echo " Trying to flash ${OTAFILE} at offset ${OTA_OFFSET} "
207
- $ESPTOOL_CMD write_flash $OTA_OFFSET " ${OTAFILE} "
208
- echo " Trying to flash ${SPIFFSFILE} , at offset ${OFFSET} "
209
- $ESPTOOL_CMD write_flash $OFFSET " ${SPIFFSFILE} "
143
+ # Default littlefs* offset (--web).
144
+ OFFSET=0x300000
145
+
146
+ # Default OTA Offset
147
+ OTA_OFFSET=0x260000
148
+
149
+ # littlefs* offset for BigDB 8mb and OTA OFFSET.
150
+ for variant in " ${BIGDB_8MB[@]} " ; do
151
+ if [ -z " ${FILENAME##* " $variant " * } " ]; then
152
+ OFFSET=0x670000
153
+ OTA_OFFSET=0x340000
154
+ fi
155
+ done
156
+
157
+ # littlefs* offset for BigDB 16mb and OTA OFFSET.
158
+ for variant in " ${BIGDB_16MB[@]} " ; do
159
+ if [ -z " ${FILENAME##* " $variant " * } " ]; then
160
+ OFFSET=0xc90000
161
+ OTA_OFFSET=0x650000
162
+ fi
163
+ done
164
+
165
+ # Account for S3 board's different OTA partition
166
+ # FIXME: Use PlatformIO info to determine MCU type, this is unmaintainable
167
+ for variant in " ${S3_VARIANTS[@]} " ; do
168
+ if [ -z " ${FILENAME##* " $variant " * } " ]; then
169
+ MCU=" esp32s3"
170
+ fi
171
+ done
172
+
173
+ if [ " $MCU " != " esp32s3" ]; then
174
+ if [ -n " ${FILENAME##* " esp32c3" * } " ]; then
175
+ OTAFILE=bleota.bin
176
+ else
177
+ OTAFILE=bleota-c3.bin
178
+ fi
179
+ else
180
+ OTAFILE=bleota-s3.bin
181
+ fi
182
+
183
+ # Check if WEB_APP (--web) is enabled and add "littlefswebui-" to BASENAME else "littlefs-".
184
+ if [ " $WEB_APP " = true ]; then
185
+ SPIFFSFILE=littlefswebui-${BASENAME}
186
+ else
187
+ SPIFFSFILE=littlefs-${BASENAME}
188
+ fi
189
+
190
+ if [[ ! -f " $FILENAME " ]]; then
191
+ echo " Error: file ${FILENAME} wasn't found. Terminating."
192
+ exit 1
193
+ fi
194
+ if [[ ! -f " $OTAFILE " ]]; then
195
+ echo " Error: file ${OTAFILE} wasn't found. Terminating."
196
+ exit 1
197
+ fi
198
+ if [[ ! -f " $SPIFFSFILE " ]]; then
199
+ echo " Error: file ${SPIFFSFILE} wasn't found. Terminating."
200
+ exit 1
201
+ fi
202
+
203
+ echo " Trying to flash ${FILENAME} , but first erasing and writing system information"
204
+ $ESPTOOL_CMD erase_flash
205
+ $ESPTOOL_CMD write_flash 0x00 " ${FILENAME} "
206
+ echo " Trying to flash ${OTAFILE} at offset ${OTA_OFFSET} "
207
+ $ESPTOOL_CMD write_flash $OTA_OFFSET " ${OTAFILE} "
208
+ echo " Trying to flash ${SPIFFSFILE} , at offset ${OFFSET} "
209
+ $ESPTOOL_CMD write_flash $OFFSET " ${SPIFFSFILE} "
210
210
211
211
else
212
- show_help
213
- echo " Invalid file: ${FILENAME} "
212
+ show_help
213
+ echo " Invalid file: ${FILENAME} "
214
214
fi
215
215
216
216
exit 0
0 commit comments