@@ -25,36 +25,21 @@ jobs:
2525 matrix :
2626 arduino-platform :
2727 [
28+ " feather_esp32s2" ,
29+ " feather_esp32s2_reverse_tft" ,
30+ " feather_esp32s2_tft" ,
2831 " funhouse_noota" ,
29- " esp32s3_devkitc_1_n8" ,
3032 " magtag" ,
3133 " metroesp32s2" ,
32- " feather_esp32s2" ,
33- " feather_esp32s2_tft" ,
34- " feather_esp32s2_reverse_tft" ,
3534 " qtpy_esp32s2" ,
36- " feather_esp32s3_reverse_tft" ,
37- " qtpy_esp32s3_n4r2" ,
35+ " esp32s3_devkitc_1_n8" ,
3836 " feather_esp32s3_4mbflash_2mbpsram" ,
37+ " feather_esp32s3_reverse_tft" ,
3938 " feather_esp32s3_tft" ,
39+ " qtpy_esp32s3_n4r2" ,
4040 " xiao_esp32s3" ,
4141 ]
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+
5843 steps :
5944 - name : " skip if unwanted"
6045 continue-on-error : true
@@ -83,12 +68,13 @@ jobs:
8368 with :
8469 repository : adafruit/Wippersnapper_Boards
8570 path : ws-boards
71+ ref : migrate-4mb-to-esptool
8672 - name : Install CI-Arduino
8773 run : bash ci/actions_install.sh
8874 - name : Install extra Arduino libraries
8975 run : |
9076 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
9278 git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
9379 git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
9480 git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -163,6 +149,58 @@ jobs:
163149 echo $content
164150 echo EOF
165151 } >> "$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
166204 - name : Check boot_app0 file existence (esp32sx built from core, not-source)
167205 id : check_files
168206 uses : andstor/file-existence-action@v3
@@ -178,23 +216,17 @@ jobs:
178216 ls /home/runner/Arduino/hardware/espressif/esp32/tools/partitions
179217 - name : boot_app0 file from arduino-cli core
180218 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
182220 - name : boot_app0 file from esp32 source bsp
183221 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
185225 - name : Create combined binary using Esptool merge-bin
186226 run : |
187227 echo ${{ steps.get_board_json.outputs.boardJson }}
188228 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
198230 - name : Zip build artifacts
199231 run : |
200232 zip -r wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.*
@@ -253,7 +285,7 @@ jobs:
253285 run : bash ci/actions_install.sh
254286 - name : Install extra Arduino libraries
255287 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
257289 git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
258290 git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
259291 git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -371,7 +403,7 @@ jobs:
371403 run : bash ci/actions_install.sh
372404 - name : Install extra Arduino libraries
373405 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
375407 git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
376408 - name : Download stable Nanopb
377409 id : download-nanopb
@@ -506,7 +538,7 @@ jobs:
506538 - name : Install extra Arduino libraries
507539 run : |
508540 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
510542 git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
511543 git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
512544 - name : Download stable Nanopb
@@ -665,7 +697,7 @@ jobs:
665697 run : bash ci/actions_install.sh
666698 - name : Install extra Arduino library
667699 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
669701 git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
670702 - name : Download stable Nanopb
671703 id : download-nanopb
@@ -762,7 +794,7 @@ jobs:
762794 run : bash ci/actions_install.sh
763795 - name : Install extra Arduino libraries
764796 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
766798 git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
767799 git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
768800 git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
@@ -871,7 +903,7 @@ jobs:
871903 run : bash ci/actions_install.sh
872904 - name : Install extra Arduino libraries
873905 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
875907 git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
876908 - name : Download stable Nanopb
877909 id : download-nanopb
0 commit comments