@@ -25,36 +25,21 @@ jobs:
25
25
matrix :
26
26
arduino-platform :
27
27
[
28
+ " feather_esp32s2" ,
29
+ " feather_esp32s2_reverse_tft" ,
30
+ " feather_esp32s2_tft" ,
28
31
" funhouse_noota" ,
29
- " esp32s3_devkitc_1_n8" ,
30
32
" magtag" ,
31
33
" metroesp32s2" ,
32
- " feather_esp32s2" ,
33
- " feather_esp32s2_tft" ,
34
- " feather_esp32s2_reverse_tft" ,
35
34
" qtpy_esp32s2" ,
36
- " feather_esp32s3_reverse_tft" ,
37
- " qtpy_esp32s3_n4r2" ,
35
+ " esp32s3_devkitc_1_n8" ,
38
36
" feather_esp32s3_4mbflash_2mbpsram" ,
37
+ " feather_esp32s3_reverse_tft" ,
39
38
" feather_esp32s3_tft" ,
39
+ " qtpy_esp32s3_n4r2" ,
40
40
" xiao_esp32s3" ,
41
41
]
42
- include :
43
- - offset : " 0x0"
44
- - offset : " 0x1000"
45
- arduino-platform : " funhouse_noota"
46
- - offset : " 0x1000"
47
- arduino-platform : " magtag"
48
- - offset : " 0x1000"
49
- arduino-platform : " metroesp32s2"
50
- - offset : " 0x1000"
51
- arduino-platform : " feather_esp32s2"
52
- - offset : " 0x1000"
53
- arduino-platform : " feather_esp32s2_tft"
54
- - offset : " 0x1000"
55
- arduino-platform : " feather_esp32s2_reverse_tft"
56
- - offset : " 0x1000"
57
- arduino-platform : " qtpy_esp32s2"
42
+
58
43
steps :
59
44
- name : " skip if unwanted"
60
45
continue-on-error : true
@@ -83,12 +68,13 @@ jobs:
83
68
with :
84
69
repository : adafruit/Wippersnapper_Boards
85
70
path : ws-boards
71
+ ref : migrate-4mb-to-esptool
86
72
- name : Install CI-Arduino
87
73
run : bash ci/actions_install.sh
88
74
- name : Install extra Arduino libraries
89
75
run : |
90
76
git clone --quiet --branch 2.2.54 https://github.com/adafruit/SdFat.git /home/runner/Arduino/libraries/SdFat
91
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
77
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
92
78
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
93
79
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
94
80
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -163,6 +149,58 @@ jobs:
163
149
echo $content
164
150
echo EOF
165
151
} >> "$GITHUB_OUTPUT"
152
+ - name : fetch tinyuf2 combined.bin
153
+ run : |
154
+ BOARD_NAME="${{fromJson(steps.get_board_json.outputs.boardJson).bootloaderBoardName}}"
155
+ set +e
156
+ for attempt in 1 2 3; do
157
+ echo "Attempt $attempt: Fetching tinyuf2 release info for board $BOARD_NAME"
158
+ API_RESPONSE=$(curl --silent --fail https://api.github.com/repos/adafruit/tinyuf2/releases/latest)
159
+ if [ $? -ne 0 ]; then
160
+ echo "Attempt $attempt: curl failed to fetch release info."
161
+ if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
162
+ fi
163
+ DOWNLOAD_URL=$(echo "$API_RESPONSE" | jq -r '.assets[] | select(.browser_download_url | contains("tinyuf2-'$BOARD_NAME'-") and endswith(".zip")) | .browser_download_url // empty'); JQ_EXIT=$?
164
+ if [ $JQ_EXIT -ne 0 ] || [ -z "$DOWNLOAD_URL" ]; then
165
+ echo "Attempt $attempt: jq failed or no matching zip found."
166
+ if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
167
+ fi
168
+ echo "Attempt $attempt: Downloading $DOWNLOAD_URL"
169
+ wget "$DOWNLOAD_URL" -O tinyuf2.zip
170
+ if [ $? -eq 0 ]; then
171
+ unzip -o tinyuf2.zip -d .
172
+ if [ $? -ne 0 ]; then
173
+ echo "Attempt $attempt: unzip failed"
174
+ if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
175
+ fi
176
+ break
177
+ else
178
+ echo "Attempt $attempt: wget failed to download $DOWNLOAD_URL"
179
+ if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); fi
180
+ fi
181
+ done
182
+ set -e
183
+ - name : move partition and bootloader files for tinyuf2 (to match flash_args)
184
+ run : |
185
+ # Copy files where they're expected to make flash_args happy
186
+ mkdir bootloader
187
+ cp bootloader.bin bootloader/bootloader.bin
188
+ mkdir partition_table
189
+ cp partition-table.bin partition_table/partition-table.bin
190
+
191
+ - name : Create new_flash_args file from flash_args with added app bin + output file
192
+ run : |
193
+ # Create new_flash_args with esptool parameters first and output file
194
+ echo "--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}}" > new_flash_args
195
+ echo "--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}}" >> new_flash_args
196
+ echo "--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}}" >> new_flash_args
197
+ echo "-o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin" >> new_flash_args
198
+
199
+ # Append flash_args content to new_flash_args, skipping the first line
200
+ tail -n +2 flash_args >> new_flash_args
201
+
202
+ # Append main app to flash_args file
203
+ echo "0x10000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin" >> new_flash_args
166
204
- name : Check boot_app0 file existence (esp32sx built from core, not-source)
167
205
id : check_files
168
206
uses : andstor/file-existence-action@v3
@@ -178,23 +216,17 @@ jobs:
178
216
ls /home/runner/Arduino/hardware/espressif/esp32/tools/partitions
179
217
- name : boot_app0 file from arduino-cli core
180
218
if : steps.check_files.outputs.files_exists == 'true'
181
- run : mv /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
219
+ run : cp /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
182
220
- name : boot_app0 file from esp32 source bsp
183
221
if : steps.check_files.outputs.files_exists == 'false'
184
- run : mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
222
+ run : cp /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
223
+ - name : Copy boot_app0 file to ota_data_initial.bin (overwrite tinyuf2 boot preference)
224
+ run : cp wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin ota_data_initial.bin
185
225
- name : Create combined binary using Esptool merge-bin
186
226
run : |
187
227
echo ${{ steps.get_board_json.outputs.boardJson }}
188
228
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
189
- python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
190
- --flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
191
- --flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
192
- --flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
193
- -o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin \
194
- ${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin \
195
- 0x8000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin \
196
- 0xe000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin \
197
- 0x10000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin
229
+ python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin @new_flash_args
198
230
- name : Zip build artifacts
199
231
run : |
200
232
zip -r wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.*
@@ -253,7 +285,7 @@ jobs:
253
285
run : bash ci/actions_install.sh
254
286
- name : Install extra Arduino libraries
255
287
run : |
256
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
288
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
257
289
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
258
290
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
259
291
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -371,7 +403,7 @@ jobs:
371
403
run : bash ci/actions_install.sh
372
404
- name : Install extra Arduino libraries
373
405
run : |
374
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
406
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
375
407
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
376
408
- name : Download stable Nanopb
377
409
id : download-nanopb
@@ -506,7 +538,7 @@ jobs:
506
538
- name : Install extra Arduino libraries
507
539
run : |
508
540
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
509
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
541
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
510
542
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
511
543
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
512
544
- name : Download stable Nanopb
@@ -665,7 +697,7 @@ jobs:
665
697
run : bash ci/actions_install.sh
666
698
- name : Install extra Arduino library
667
699
run : |
668
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
700
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
669
701
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
670
702
- name : Download stable Nanopb
671
703
id : download-nanopb
@@ -762,7 +794,7 @@ jobs:
762
794
run : bash ci/actions_install.sh
763
795
- name : Install extra Arduino libraries
764
796
run : |
765
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
797
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
766
798
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
767
799
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
768
800
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -871,7 +903,7 @@ jobs:
871
903
run : bash ci/actions_install.sh
872
904
- name : Install extra Arduino libraries
873
905
run : |
874
- git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
906
+ git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
875
907
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
876
908
- name : Download stable Nanopb
877
909
id : download-nanopb
0 commit comments