Compare commits
533 commits
main
...
migrate-ap
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dff9e98672 | ||
|
|
6797eafe48 | ||
|
|
96c55128d1 | ||
|
|
3d0bb4d613 | ||
|
|
f1a718fae9 | ||
|
|
0376181349 | ||
|
|
5ccb7c7571 | ||
|
|
9a9c57bd9a | ||
|
|
d3afe8ab29 | ||
|
|
bd4ec634e8 | ||
|
|
783ec2dae9 | ||
|
|
2330368b06 | ||
|
|
232dc1af16 | ||
|
|
e115785f04 | ||
|
|
8ab6ecbde2 | ||
|
|
43abe81498 | ||
|
|
6589b401a3 | ||
|
|
c9d9595732 | ||
|
|
07f936c47d | ||
|
|
5a5a6e7c82 | ||
|
|
d6dbda4f79 | ||
|
|
c499080749 | ||
|
|
320fa1e995 | ||
|
|
642733ee35 | ||
|
|
9233d2ea61 | ||
|
|
c6924afa90 | ||
|
|
528ff03928 | ||
|
|
bc7d5ce39d | ||
|
|
402e75da26 | ||
|
|
71f707c121 | ||
|
|
4722ee982a | ||
|
|
97d20ea4f1 | ||
|
|
c4aca503c0 | ||
|
|
a2ab695f42 | ||
|
|
89f2ddc8fe | ||
|
|
30d301db3b | ||
|
|
7d2245301c | ||
|
|
881e47ac53 | ||
|
|
58623ba518 | ||
|
|
8b20e2759f | ||
|
|
522a62f4c0 | ||
|
|
77c553abf0 | ||
|
|
650916747c | ||
|
|
bede6ab7eb | ||
|
|
551df54a53 | ||
|
|
c07f8ded77 | ||
|
|
8b33ba7a86 | ||
|
|
f05f163271 | ||
|
|
de6a1dd524 | ||
|
|
61e45a76cf | ||
|
|
4b6666abef | ||
|
|
f3286ef9ed | ||
|
|
09bfdcf4d6 | ||
|
|
57a4396bf7 | ||
|
|
b699c0677e | ||
|
|
51dea24be9 | ||
|
|
b43a8ba946 | ||
|
|
f0aefd9045 | ||
|
|
5c30483776 | ||
|
|
786c041a36 | ||
|
|
baef12d03c | ||
|
|
c0aa18daed | ||
|
|
b60c23334a | ||
|
|
d17f2b8478 | ||
|
|
a3bf856f3c | ||
|
|
81b3061c03 | ||
|
|
e229bd3799 | ||
|
|
3d453380cf | ||
|
|
7216ffea9c | ||
|
|
53a26c6ff0 | ||
|
|
0a16097f0d | ||
|
|
1b372c40f5 | ||
|
|
761a2b8e57 | ||
|
|
bbb14abe73 | ||
|
|
e2d8233a04 | ||
|
|
8725ba45f6 | ||
|
|
e60e887ade | ||
|
|
dcb623b2fc | ||
|
|
c5dbb862b3 | ||
|
|
1b9e973c16 | ||
|
|
4a4d562335 | ||
|
|
bdad070348 | ||
|
|
b99e70c368 | ||
|
|
6ee80cb235 | ||
|
|
2e7c37302d | ||
|
|
1ffc861a43 | ||
|
|
b9eae36a1b | ||
|
|
07cbf001ce | ||
|
|
00593433fc | ||
|
|
84a40177b6 | ||
|
|
c1ace0bcd8 | ||
|
|
4598bbe502 | ||
|
|
59c8a7332c | ||
|
|
dd6599a238 | ||
|
|
4df009ef85 | ||
|
|
f8aa81936c | ||
|
|
1a121454fa | ||
|
|
538ce3b7df | ||
|
|
93dd43d6a2 | ||
|
|
2cc9f32537 | ||
|
|
e5192612e2 | ||
|
|
a388b6d822 | ||
|
|
a9b1e06656 | ||
|
|
f06ac06b30 | ||
|
|
878d186c8e | ||
|
|
eb2cfa1fbd | ||
|
|
c9a20b3f50 | ||
|
|
263fbfae2a | ||
|
|
888a3c0158 | ||
|
|
9340fff768 | ||
|
|
d54d4ad8b7 | ||
|
|
8f19c0830d | ||
|
|
54cc000e40 | ||
|
|
b8ad718d08 | ||
|
|
66fc39df2b | ||
|
|
5f4a8e43cd | ||
|
|
c1a3c4ee05 | ||
|
|
8c3dbdd14c | ||
|
|
7589b78a94 | ||
|
|
dac4af584f | ||
|
|
25ad69a315 | ||
|
|
7458980688 | ||
|
|
361f97d21e | ||
|
|
b32ecdff35 | ||
|
|
59aba4e6d4 | ||
|
|
48e30f0b36 | ||
|
|
e4ae80aa0d | ||
|
|
4cc35beb3e | ||
|
|
8fc941edf8 | ||
|
|
de500896ee | ||
|
|
a6d8755b79 | ||
|
|
3562104604 | ||
|
|
3304fb4aaf | ||
|
|
31e5758d97 | ||
|
|
edadb31d13 | ||
|
|
aadac2b582 | ||
|
|
ffd7a71dcd | ||
|
|
141753b357 | ||
|
|
184c5dfe0a | ||
|
|
97be20a6ab | ||
|
|
8c68d45697 | ||
|
|
13af849151 | ||
|
|
b5f703d229 | ||
|
|
0f959d57b3 | ||
|
|
536fb5408d | ||
|
|
e69f538eeb | ||
|
|
0e5f1dbe98 | ||
|
|
8f385d137e | ||
|
|
6fe7d069c1 | ||
|
|
be02bd6bbf | ||
|
|
58e273f1a2 | ||
|
|
c9a8070359 | ||
|
|
fc755f94cc | ||
|
|
dc6e5acda6 | ||
|
|
50eb84eb1b | ||
|
|
4bc8a48712 | ||
|
|
f70f9ae888 | ||
|
|
79f6042161 | ||
|
|
264281fc99 | ||
|
|
3a3cc8143a | ||
|
|
9d9126373b | ||
|
|
b90aaee7f3 | ||
|
|
a0d1866a80 | ||
|
|
fe99de3295 | ||
|
|
7f34ca38a2 | ||
|
|
bc5a005ca4 | ||
|
|
92b257a52e | ||
|
|
51972f97a7 | ||
|
|
81ba6c3fe9 | ||
|
|
6e7732cf1e | ||
|
|
ec2291fbae | ||
|
|
700f38744b | ||
|
|
67e17567e4 | ||
|
|
166b2b1689 | ||
|
|
e3d55263d5 | ||
|
|
f8e7894968 | ||
|
|
5576abcdb6 | ||
|
|
c164dc3737 | ||
|
|
0de3e5c73a | ||
|
|
7b48d81094 | ||
|
|
433865d3c7 | ||
|
|
1603b9ff08 | ||
|
|
ceaf6fd91f | ||
|
|
a821a31d5b | ||
|
|
903db886ac | ||
|
|
cb757b4293 | ||
|
|
c17c5a328e | ||
|
|
f43e194f23 | ||
|
|
473b7bb5f5 | ||
|
|
2466a8568a | ||
|
|
c5c2091ff7 | ||
|
|
a780749e24 | ||
|
|
6d322929ad | ||
|
|
4b5e23a7c0 | ||
|
|
d9d0e41376 | ||
|
|
6f4741fa13 | ||
|
|
c1d850d565 | ||
|
|
2493a68630 | ||
|
|
03d97963bf | ||
|
|
fb98943612 | ||
|
|
ea6a305eb8 | ||
|
|
09095e56f3 | ||
|
|
ca568b36e2 | ||
|
|
128f34b3a0 | ||
|
|
e6d87aa2af | ||
|
|
787cb00ca8 | ||
|
|
734b879f18 | ||
|
|
ad0e794a7b | ||
|
|
02c09e6439 | ||
|
|
9f6a0885ff | ||
|
|
d3cdc61e71 | ||
|
|
99d8cf5394 | ||
|
|
4093c96d20 | ||
|
|
15184612fb | ||
|
|
d88b17ff10 | ||
|
|
8d261ec7bc | ||
|
|
835b601d21 | ||
|
|
f0abfa566c | ||
|
|
13b149625e | ||
|
|
affdf956ef | ||
|
|
5ac35f3b03 | ||
|
|
a2e722cab1 | ||
|
|
8aa233a47a | ||
|
|
afffa814e9 | ||
|
|
0d96f93a4e | ||
|
|
9c3d525215 | ||
|
|
6485e4dfe1 | ||
|
|
d0b42ad9ea | ||
|
|
357a73c1a0 | ||
|
|
cec28b1ad8 | ||
|
|
8e7385ccf8 | ||
|
|
33f5955ab3 | ||
|
|
61de28781a | ||
|
|
f206963507 | ||
|
|
2770d8a6a0 | ||
|
|
af886dba37 | ||
|
|
77bbf1a77a | ||
|
|
670a6dc4c6 | ||
|
|
1d2d97ca7f | ||
|
|
1d12fa7cc6 | ||
|
|
5f78c969fe | ||
|
|
0344da5c02 | ||
|
|
fc10a78c29 | ||
|
|
435bac2890 | ||
|
|
9dcd5f0edc | ||
|
|
6c84b7a0fd | ||
|
|
5150c9ba1a | ||
|
|
bc1902ee47 | ||
|
|
9b43229810 | ||
|
|
c937e93c26 | ||
|
|
c35cc76f90 | ||
|
|
15ad1f4980 | ||
|
|
b6928ba2d9 | ||
|
|
b8c98f2a32 | ||
|
|
7558d32ff5 | ||
|
|
009581645f | ||
|
|
33f35336ff | ||
|
|
ae086bdf92 | ||
|
|
36f1b047bf | ||
|
|
7bf0896857 | ||
|
|
0542219b00 | ||
|
|
e566898710 | ||
|
|
a27bd94ce0 | ||
|
|
a756f0f6d2 | ||
|
|
71aa594eaf | ||
|
|
340e3f880b | ||
|
|
31533af591 | ||
|
|
55c6b53b74 | ||
|
|
c362d0b27e | ||
|
|
560d707992 | ||
|
|
c95047dc4c | ||
|
|
8506c17f60 | ||
|
|
8cd12dfdd2 | ||
|
|
b86d9c213b | ||
|
|
080d1dabe5 | ||
|
|
67ecbe6ac6 | ||
|
|
b78c3595cf | ||
|
|
bb31f5eb21 | ||
|
|
aa8ef676b0 | ||
|
|
692f56fe91 | ||
|
|
d4eb3a984c | ||
|
|
92a1af67da | ||
|
|
ec5bcb16be | ||
|
|
bdfb73fe96 | ||
|
|
e659e118ae | ||
|
|
00006b4bf2 | ||
|
|
c85104516a | ||
|
|
170cc42980 | ||
|
|
c0786ffc89 | ||
|
|
e13ea8f0ca | ||
|
|
180d48e322 | ||
|
|
7b0facaf4d | ||
|
|
b31185581f | ||
|
|
dde9120a53 | ||
|
|
ee7a0f4467 | ||
|
|
dc5783001b | ||
|
|
9099c0258b | ||
|
|
7f8477e30f | ||
|
|
1eee91163e | ||
|
|
e384ad652b | ||
|
|
79f4f38f70 | ||
|
|
7fe8d61b75 | ||
|
|
f0f0855485 | ||
|
|
2220b7faa4 | ||
|
|
5c990e4945 | ||
|
|
3a82a14944 | ||
|
|
af1ac3ba4e | ||
|
|
05ce076b40 | ||
|
|
179cc525cf | ||
|
|
cc2d25e545 | ||
|
|
1e3f6af9df | ||
|
|
e20d50feb0 | ||
|
|
a0b2729dd5 | ||
|
|
5d8e9926a5 | ||
|
|
383a69e5d9 | ||
|
|
0d6fb0d31e | ||
|
|
970bf4c705 | ||
|
|
6c96a6006c | ||
|
|
75a58a64e0 | ||
|
|
37eec43f43 | ||
|
|
100f343d31 | ||
|
|
88c7df249b | ||
|
|
321c011acd | ||
|
|
4d2f4464c5 | ||
|
|
bdcf514d3e | ||
|
|
b2770ee2d3 | ||
|
|
a507f77772 | ||
|
|
fafd25f058 | ||
|
|
17e5c4e26b | ||
|
|
71b06ec36d | ||
|
|
450a369a39 | ||
|
|
5b67a61f69 | ||
|
|
6ecacfd5cd | ||
|
|
a2bcc7dd2a | ||
|
|
75b117b2a5 | ||
|
|
f10f7551a7 | ||
|
|
1fd43286b1 | ||
|
|
253a2c0290 | ||
|
|
126f430967 | ||
|
|
e3e6ff3f47 | ||
|
|
c67318012f | ||
|
|
a7c20d1edc | ||
|
|
0d9633036b | ||
|
|
d29e3e4bf7 | ||
|
|
e076710386 | ||
|
|
b7415d0500 | ||
|
|
d1ac920df9 | ||
|
|
33d5089c28 | ||
|
|
0a29dc79bc | ||
|
|
2d7139c593 | ||
|
|
4a6364e1a4 | ||
|
|
c2a2e428bd | ||
|
|
45d23653ee | ||
|
|
8bac2d7aba | ||
|
|
cd720e5b17 | ||
|
|
7207778166 | ||
|
|
c2ea367d92 | ||
|
|
e79530110f | ||
|
|
4d9bed832b | ||
|
|
52a8bd7757 | ||
|
|
0e0cda4b0f | ||
|
|
c9c904c095 | ||
|
|
4794bcd7ba | ||
|
|
a81fa033ab | ||
|
|
ebb269c30f | ||
|
|
348334541a | ||
|
|
26c62ab431 | ||
|
|
8eea7ec70b | ||
|
|
192ff1ae13 | ||
|
|
01d4b72529 | ||
|
|
c6776a2daf | ||
|
|
6e6ad431ba | ||
|
|
ccb13b128d | ||
|
|
4826b58526 | ||
|
|
1d43de2b6a | ||
|
|
b2c79f391f | ||
|
|
7eab68270f | ||
|
|
3eac2215c2 | ||
|
|
d97e430db3 | ||
|
|
5b5463cd33 | ||
|
|
27aa7d4424 | ||
|
|
f0f574a0ac | ||
|
|
bf7b7de3fc | ||
|
|
4d7d1db1d9 | ||
|
|
7020f4e275 | ||
|
|
d4c8dad505 | ||
|
|
b71e2e6ff1 | ||
|
|
861ab98343 | ||
|
|
9f6c810792 | ||
|
|
019c7a91b1 | ||
|
|
1b5ee96ffe | ||
|
|
0f226a60de | ||
|
|
cdcbb6535a | ||
|
|
aa99b19da4 | ||
|
|
ad574e23c6 | ||
|
|
1aeee684df | ||
|
|
fbd4c5bad6 | ||
|
|
6bb1ab2815 | ||
|
|
30bab50b8e | ||
|
|
3b3a10c172 | ||
|
|
eaa1ee8343 | ||
|
|
00530c1a7f | ||
|
|
fbf9886d5a | ||
|
|
f22b43136c | ||
|
|
baca82d03a | ||
|
|
46d85c0f80 | ||
|
|
26ff4ffe69 | ||
|
|
24561bc51a | ||
|
|
65b66fe597 | ||
|
|
54edb4cb2d | ||
|
|
c1efd3e746 | ||
|
|
407b1e48c5 | ||
|
|
6d4e85d716 | ||
|
|
546820793a | ||
|
|
8e5a4de4e1 | ||
|
|
a5e43c102c | ||
|
|
16412d44d5 | ||
|
|
458e7a696f | ||
|
|
697b6e9f71 | ||
|
|
72f5a3f473 | ||
|
|
540b116988 | ||
|
|
b424c7947b | ||
|
|
f4184e5962 | ||
|
|
312c8f6977 | ||
|
|
d207447f06 | ||
|
|
b8377e5de0 | ||
|
|
307fd4336f | ||
|
|
e342564dca | ||
|
|
a9288ccc38 | ||
|
|
706652fd0a | ||
|
|
7f2d550344 | ||
|
|
e30d4e4126 | ||
|
|
549874a2f0 | ||
|
|
067c220e87 | ||
|
|
6a82e772e9 | ||
|
|
e5d3199e45 | ||
|
|
fac050e853 | ||
|
|
e5e2724aac | ||
|
|
eb6bf12e26 | ||
|
|
fcd87d19ce | ||
|
|
4ca038c94d | ||
|
|
b9f7c126f5 | ||
|
|
6b93efcd64 | ||
|
|
49e110db97 | ||
|
|
c20e45b2af | ||
|
|
3cc50de409 | ||
|
|
e42e963fbd | ||
|
|
4a2ccac2e6 | ||
|
|
fbaadb97f6 | ||
|
|
47dcb933d4 | ||
|
|
ce7d5ed0d1 | ||
|
|
e513533d8b | ||
|
|
624ba3d6b7 | ||
|
|
70406f39ca | ||
|
|
0675abc890 | ||
|
|
fcc6914f9f | ||
|
|
50609f776b | ||
|
|
d8728147c7 | ||
|
|
1b2c10b56d | ||
|
|
3093b5085a | ||
|
|
a3386d3224 | ||
|
|
5288af0be0 | ||
|
|
434107c2a7 | ||
|
|
10a19bf94d | ||
|
|
3ac84724b5 | ||
|
|
60fb5f66a0 | ||
|
|
136332919f | ||
|
|
c29f210592 | ||
|
|
1a6fc3debd | ||
|
|
1007802d8e | ||
|
|
014b2ba1cb | ||
|
|
099efb71eb | ||
|
|
01f26b6813 | ||
|
|
6588c15a08 | ||
|
|
9919945a80 | ||
|
|
8292ad2314 | ||
|
|
fedac2dad4 | ||
|
|
8c5d92c999 | ||
|
|
b37fb72262 | ||
|
|
3583f0dfa2 | ||
|
|
3acd2bc6d9 | ||
|
|
1534649f92 | ||
|
|
d56f8d5b46 | ||
|
|
916d9669b2 | ||
|
|
0667b91e8f | ||
|
|
02765aadd9 | ||
|
|
08172e201b | ||
|
|
642cc620f0 | ||
|
|
6018295478 | ||
|
|
602261ac29 | ||
|
|
aaa5961f07 | ||
|
|
74b2cc1fc6 | ||
|
|
9b67169e56 | ||
|
|
3fcaf0efdb | ||
|
|
5d11057b9f | ||
|
|
f366a43cc6 | ||
|
|
c06ed448e0 | ||
|
|
c754eee5b0 | ||
|
|
dd79c67bbd | ||
|
|
77e49e414c | ||
|
|
5d7ad71941 | ||
|
|
5db8dcbeb1 | ||
|
|
d2cd420a29 | ||
|
|
9a888226f4 | ||
|
|
f1cf4be286 | ||
|
|
84c69cb8c4 | ||
|
|
0f57639a66 | ||
|
|
2aa532b543 | ||
|
|
5f6ecaaf83 | ||
|
|
2c4c58f15d | ||
|
|
f663d28799 | ||
|
|
1c8ffa0bc7 | ||
|
|
2bafd29229 | ||
|
|
f65ea11fa5 | ||
|
|
e5850a4676 | ||
|
|
a96324588f | ||
|
|
e9427cb51a | ||
|
|
5388152c57 | ||
|
|
310b3e5cb7 | ||
|
|
abc83150ec | ||
|
|
6d71ba072b | ||
|
|
a12ccc9d45 | ||
|
|
67600ded1e | ||
|
|
732a0a32e4 | ||
|
|
e18801120b | ||
|
|
47a8642388 | ||
|
|
5667ecc83c | ||
|
|
035446eb34 | ||
|
|
cd8d7dcc61 | ||
|
|
23c42bb1af | ||
|
|
f2c89d4bf2 | ||
|
|
65d864aefa | ||
|
|
43282c8148 |
398 changed files with 128793 additions and 20233 deletions
339
.github/workflows/build-clang-doxy.yml
vendored
339
.github/workflows/build-clang-doxy.yml
vendored
|
|
@ -5,11 +5,6 @@ name: WipperSnapper Build CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
board:
|
|
||||||
description: 'Build ONLY this board (must match a matrix entry exactly, or leave empty for all)'
|
|
||||||
required: false
|
|
||||||
default: ''
|
|
||||||
pull_request:
|
pull_request:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
secrets:
|
secrets:
|
||||||
|
|
@ -23,52 +18,19 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
arduino-platform:
|
arduino-platform: ["funhouse_noota"]
|
||||||
[
|
include:
|
||||||
"feather_esp32s2",
|
- offset: "0x1000"
|
||||||
"feather_esp32s2_reverse_tft",
|
|
||||||
"feather_esp32s2_tft",
|
|
||||||
"funhouse_noota",
|
|
||||||
"magtag",
|
|
||||||
"metroesp32s2",
|
|
||||||
"qtpy_esp32s2",
|
|
||||||
"esp32s3_devkitc_1_n8",
|
|
||||||
"feather_esp32s3_4mbflash_2mbpsram",
|
|
||||||
"feather_esp32s3_reverse_tft",
|
|
||||||
"feather_esp32s3_tft",
|
|
||||||
"qtpy_esp32s3_n4r2",
|
|
||||||
"xiao_esp32s3",
|
|
||||||
]
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
WS_VERSION="unknown"
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
|
||||||
WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -83,8 +45,7 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch 2.2.54 https://github.com/adafruit/SdFat.git /home/runner/Arduino/libraries/SdFat
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
||||||
|
|
@ -143,7 +104,6 @@ jobs:
|
||||||
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.elf
|
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.elf
|
||||||
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.map
|
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.map
|
||||||
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin
|
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin
|
||||||
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.merged.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.merged_auto.bin
|
|
||||||
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin
|
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin
|
||||||
- name: Get Board Flash Parameters
|
- name: Get Board Flash Parameters
|
||||||
id: get_board_json
|
id: get_board_json
|
||||||
|
|
@ -159,58 +119,6 @@ jobs:
|
||||||
echo $content
|
echo $content
|
||||||
echo EOF
|
echo EOF
|
||||||
} >> "$GITHUB_OUTPUT"
|
} >> "$GITHUB_OUTPUT"
|
||||||
- name: fetch tinyuf2 combined.bin
|
|
||||||
run: |
|
|
||||||
BOARD_NAME="${{fromJson(steps.get_board_json.outputs.boardJson).bootloaderBoardName}}"
|
|
||||||
set +e
|
|
||||||
for attempt in 1 2 3; do
|
|
||||||
echo "Attempt $attempt: Fetching tinyuf2 release info for board $BOARD_NAME"
|
|
||||||
API_RESPONSE=$(curl --silent --fail https://api.github.com/repos/adafruit/tinyuf2/releases/latest)
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Attempt $attempt: curl failed to fetch release info."
|
|
||||||
if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
|
|
||||||
fi
|
|
||||||
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=$?
|
|
||||||
if [ $JQ_EXIT -ne 0 ] || [ -z "$DOWNLOAD_URL" ]; then
|
|
||||||
echo "Attempt $attempt: jq failed or no matching zip found."
|
|
||||||
if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
|
|
||||||
fi
|
|
||||||
echo "Attempt $attempt: Downloading $DOWNLOAD_URL"
|
|
||||||
wget "$DOWNLOAD_URL" -O tinyuf2.zip
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
unzip -o tinyuf2.zip -d .
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Attempt $attempt: unzip failed"
|
|
||||||
if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); continue; fi
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "Attempt $attempt: wget failed to download $DOWNLOAD_URL"
|
|
||||||
if [ "$attempt" -eq 3 ]; then exit 1; else sleep $((60 + RANDOM % 40)); fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
set -e
|
|
||||||
- name: move partition and bootloader files for tinyuf2 (to match flash_args)
|
|
||||||
run: |
|
|
||||||
# Copy files where they're expected to make flash_args happy
|
|
||||||
mkdir bootloader
|
|
||||||
cp bootloader.bin bootloader/bootloader.bin
|
|
||||||
mkdir partition_table
|
|
||||||
cp partition-table.bin partition_table/partition-table.bin
|
|
||||||
|
|
||||||
- name: Create new_flash_args file from flash_args with added app bin + output file
|
|
||||||
run: |
|
|
||||||
# Create new_flash_args with esptool parameters first and output file
|
|
||||||
echo "--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}}" > new_flash_args
|
|
||||||
echo "--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}}" >> new_flash_args
|
|
||||||
echo "--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}}" >> new_flash_args
|
|
||||||
echo "-o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin" >> new_flash_args
|
|
||||||
|
|
||||||
# Append flash_args content to new_flash_args, skipping the first line
|
|
||||||
tail -n +2 flash_args >> new_flash_args
|
|
||||||
|
|
||||||
# Append main app to flash_args file
|
|
||||||
echo "0x10000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin" >> new_flash_args
|
|
||||||
- name: Check boot_app0 file existence (esp32sx built from core, not-source)
|
- name: Check boot_app0 file existence (esp32sx built from core, not-source)
|
||||||
id: check_files
|
id: check_files
|
||||||
uses: andstor/file-existence-action@v3
|
uses: andstor/file-existence-action@v3
|
||||||
|
|
@ -226,17 +134,23 @@ jobs:
|
||||||
ls /home/runner/Arduino/hardware/espressif/esp32/tools/partitions
|
ls /home/runner/Arduino/hardware/espressif/esp32/tools/partitions
|
||||||
- name: boot_app0 file from arduino-cli core
|
- name: boot_app0 file from arduino-cli core
|
||||||
if: steps.check_files.outputs.files_exists == 'true'
|
if: steps.check_files.outputs.files_exists == 'true'
|
||||||
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
|
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
|
||||||
- name: boot_app0 file from esp32 source bsp
|
- name: boot_app0 file from esp32 source bsp
|
||||||
if: steps.check_files.outputs.files_exists == 'false'
|
if: steps.check_files.outputs.files_exists == 'false'
|
||||||
run: cp /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
|
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
|
||||||
- name: Copy boot_app0 file to ota_data_initial.bin (overwrite tinyuf2 boot preference)
|
- name: Create combined binary using Esptool merge_bin
|
||||||
run: cp wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin ota_data_initial.bin
|
|
||||||
- name: Create combined binary using Esptool merge-bin
|
|
||||||
run: |
|
run: |
|
||||||
echo ${{ steps.get_board_json.outputs.boardJson }}
|
echo ${{ steps.get_board_json.outputs.boardJson }}
|
||||||
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
||||||
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin @new_flash_args
|
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
|
||||||
|
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
|
||||||
|
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
|
||||||
|
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
|
||||||
|
-o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin \
|
||||||
|
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin \
|
||||||
|
0x8000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin \
|
||||||
|
0xe000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin \
|
||||||
|
0x10000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bin
|
||||||
- name: Zip build artifacts
|
- name: Zip build artifacts
|
||||||
run: |
|
run: |
|
||||||
zip -r wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.*
|
zip -r wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.*
|
||||||
|
|
@ -264,36 +178,30 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
arduino-platform:
|
arduino-platform:
|
||||||
[
|
[
|
||||||
|
"magtag",
|
||||||
|
"metroesp32s2",
|
||||||
"metro_esp32s3",
|
"metro_esp32s3",
|
||||||
|
"feather_esp32s2",
|
||||||
|
"feather_esp32s2_tft",
|
||||||
|
"feather_esp32s2_reverse_tft",
|
||||||
"feather_esp32s3",
|
"feather_esp32s3",
|
||||||
|
"feather_esp32s3_4mbflash_2mbpsram",
|
||||||
|
"feather_esp32s3_tft",
|
||||||
"qtpy_esp32s3",
|
"qtpy_esp32s3",
|
||||||
|
"qtpy_esp32s2",
|
||||||
|
"feather_esp32s3_reverse_tft",
|
||||||
|
"qtpy_esp32s3_n4r2",
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -303,7 +211,7 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
||||||
|
|
@ -376,48 +284,27 @@ jobs:
|
||||||
[
|
[
|
||||||
"wippersnapper_feather_esp32",
|
"wippersnapper_feather_esp32",
|
||||||
"qtpy_esp32",
|
"qtpy_esp32",
|
||||||
"sparklemotionmini_esp32",
|
|
||||||
"sparklemotionstick_esp32",
|
|
||||||
"feather_esp32_v2",
|
"feather_esp32_v2",
|
||||||
"itsybitsy_esp32",
|
"itsybitsy_esp32",
|
||||||
"dfrobot_beetle_esp32c3",
|
|
||||||
"wippersnapper_qtpy_esp32c3",
|
"wippersnapper_qtpy_esp32c3",
|
||||||
"wippersnapper_feather_esp32c6"
|
"wippersnapper_feather_esp32c6"
|
||||||
]
|
]
|
||||||
include:
|
include:
|
||||||
- offset: "0x1000"
|
- offset: "0x1000"
|
||||||
- offset: "0x0"
|
|
||||||
arduino-platform: "dfrobot_beetle_esp32c3"
|
|
||||||
- offset: "0x0"
|
- offset: "0x0"
|
||||||
arduino-platform: "wippersnapper_qtpy_esp32c3"
|
arduino-platform: "wippersnapper_qtpy_esp32c3"
|
||||||
- offset: "0x0"
|
- offset: "0x0"
|
||||||
arduino-platform: "wippersnapper_feather_esp32c6"
|
arduino-platform: "wippersnapper_feather_esp32c6"
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -432,7 +319,7 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
- name: Download stable Nanopb
|
- name: Download stable Nanopb
|
||||||
id: download-nanopb
|
id: download-nanopb
|
||||||
|
|
@ -465,7 +352,7 @@ jobs:
|
||||||
mv nanopb/pb.h src/nanopb/nanopb.pb.h
|
mv nanopb/pb.h src/nanopb/nanopb.pb.h
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install esptool
|
pip install esptool==4.6
|
||||||
- name: build ESP32 platforms
|
- name: build ESP32 platforms
|
||||||
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
|
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
|
||||||
- name: Check artifacts
|
- name: Check artifacts
|
||||||
|
|
@ -503,14 +390,14 @@ jobs:
|
||||||
echo $content
|
echo $content
|
||||||
echo EOF
|
echo EOF
|
||||||
} >> "$GITHUB_OUTPUT"
|
} >> "$GITHUB_OUTPUT"
|
||||||
- name: Create combined binary using Esptool merge-bin
|
- name: Create combined binary using Esptool merge_bin
|
||||||
run: |
|
run: |
|
||||||
echo ${{ steps.get_board_json.outputs.boardJson }}
|
echo ${{ steps.get_board_json.outputs.boardJson }}
|
||||||
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
||||||
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
|
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
|
||||||
--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
|
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
|
||||||
--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
|
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
|
||||||
--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
|
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
|
||||||
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
|
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
|
||||||
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
|
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
|
||||||
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
|
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
|
||||||
|
|
@ -539,31 +426,15 @@ jobs:
|
||||||
"metro_m4_airliftlite_tinyusb",
|
"metro_m4_airliftlite_tinyusb",
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -575,8 +446,8 @@ jobs:
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
|
git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
||||||
- name: Download stable Nanopb
|
- name: Download stable Nanopb
|
||||||
id: download-nanopb
|
id: download-nanopb
|
||||||
|
|
@ -627,33 +498,17 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
arduino-platform: ["picow_rp2040_tinyusb", "picow_rp2350_tinyusb", "fruit_jam_tinyusb"]
|
arduino-platform: ["picow_rp2040_tinyusb", "picow_rp2350_tinyusb"]
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -666,6 +521,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
|
git clone --quiet https://github.com/brentru/Adafruit_SPIFlash.git /home/runner/Arduino/libraries/Adafruit_SPIFlash
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
||||||
- name: Download stable Nanopb
|
- name: Download stable Nanopb
|
||||||
id: download-nanopb
|
id: download-nanopb
|
||||||
|
|
@ -716,31 +572,15 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
arduino-platform: ["feather_esp8266"]
|
arduino-platform: ["feather_esp8266"]
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -750,8 +590,8 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino library
|
- name: Install extra Arduino library
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
- name: Download stable Nanopb
|
- name: Download stable Nanopb
|
||||||
id: download-nanopb
|
id: download-nanopb
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
@ -810,7 +650,6 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
arduino-platform:
|
arduino-platform:
|
||||||
[
|
[
|
||||||
"esp32s3_devkitc_1_n8_debug",
|
|
||||||
"feather_esp32s2_debug",
|
"feather_esp32s2_debug",
|
||||||
"feather_esp32s2_tft_debug",
|
"feather_esp32s2_tft_debug",
|
||||||
"feather_esp32s3_debug",
|
"feather_esp32s3_debug",
|
||||||
|
|
@ -821,31 +660,15 @@ jobs:
|
||||||
"metro_esp32s3_debug",
|
"metro_esp32s3_debug",
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -855,7 +678,7 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
||||||
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
||||||
|
|
@ -933,31 +756,15 @@ jobs:
|
||||||
- offset: "0x0"
|
- offset: "0x0"
|
||||||
arduino-platform: "wippersnapper_feather_esp32c6_debug"
|
arduino-platform: "wippersnapper_feather_esp32c6_debug"
|
||||||
steps:
|
steps:
|
||||||
- name: "skip if unwanted"
|
|
||||||
continue-on-error: true
|
|
||||||
if: |
|
|
||||||
github.event_name == 'workflow_dispatch' &&
|
|
||||||
github.event.inputs.board != '' &&
|
|
||||||
matrix.arduino-platform != github.event.inputs.board
|
|
||||||
run: |
|
|
||||||
echo "don't build this one!"; exit 1
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: "3.x"
|
python-version: "3.x"
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get WipperSnapper version
|
- name: Get WipperSnapper version
|
||||||
run: |
|
run: |
|
||||||
git remote add adafruit https://github.com/adafruit/Adafruit_Wippersnapper_Arduino.git || true
|
git fetch --prune --unshallow --tags
|
||||||
git fetch --prune --unshallow --all --tags
|
git describe --dirty --tags
|
||||||
if git describe --dirty --tags >/dev/null 2>&1; then
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
|
||||||
else
|
|
||||||
# Fallback for forks: 1.0.0-{owner}-{short-sha}
|
|
||||||
REPO_OWNER=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
|
|
||||||
SHORT_SHA=$(git rev-parse --short HEAD)
|
|
||||||
echo >>$GITHUB_ENV WS_VERSION="1.0.0-${REPO_OWNER}-${SHORT_SHA}"
|
|
||||||
fi
|
|
||||||
echo "WS_VERSION: $WS_VERSION"
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: adafruit/ci-arduino
|
repository: adafruit/ci-arduino
|
||||||
|
|
@ -972,7 +779,7 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
- name: Install extra Arduino libraries
|
- name: Install extra Arduino libraries
|
||||||
run: |
|
run: |
|
||||||
git clone --quiet --branch v4.0.3 https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
- name: Download stable Nanopb
|
- name: Download stable Nanopb
|
||||||
id: download-nanopb
|
id: download-nanopb
|
||||||
|
|
@ -1045,14 +852,14 @@ jobs:
|
||||||
echo $content
|
echo $content
|
||||||
echo EOF
|
echo EOF
|
||||||
} >> "$GITHUB_OUTPUT"
|
} >> "$GITHUB_OUTPUT"
|
||||||
- name: Create combined binary using Esptool merge-bin
|
- name: Create combined binary using Esptool merge_bin
|
||||||
run: |
|
run: |
|
||||||
echo ${{ steps.get_board_json.outputs.boardJson }}
|
echo ${{ steps.get_board_json.outputs.boardJson }}
|
||||||
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
|
||||||
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
|
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
|
||||||
--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
|
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
|
||||||
--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
|
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
|
||||||
--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
|
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
|
||||||
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
|
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
|
||||||
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
|
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
|
||||||
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
|
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
|
||||||
|
|
@ -1120,10 +927,10 @@ jobs:
|
||||||
run: bash ci/actions_install.sh
|
run: bash ci/actions_install.sh
|
||||||
|
|
||||||
- name: clang
|
- name: clang
|
||||||
run: python3 ci/run-clang-format.py -r -e "ci/*" -e "bin/*" -e src/nanopb -e src/wippersnapper -e src/pb.h -e src/provisioning/tinyusb src/
|
run: python3 ci/run-clang-format.py -r -e "ci/*" -e "bin/*" -e src/nanopb -e src/protos -e src/wippersnapper -e src/pb.h -e src/provisioning/tinyusb src/
|
||||||
|
|
||||||
- name: doxygen
|
- name: doxygen
|
||||||
env:
|
env:
|
||||||
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
|
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
|
||||||
PRETTYNAME: "Adafruit.io WipperSnapper Library"
|
PRETTYNAME: "Adafruit.io WipperSnapper Library"
|
||||||
run: bash ci/doxy_gen_and_deploy.sh
|
run: bash ci/doxy_gen_and_deploy.sh
|
||||||
14
.github/workflows/release-callee.yml
vendored
14
.github/workflows/release-callee.yml
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2022
|
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2022-2024
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
name: WipperSnapper Release Callee
|
name: WipperSnapper Release Callee
|
||||||
|
|
@ -12,16 +12,16 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Download build artifacts from build-platform steps
|
- name: Download build artifacts from build-platform steps
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v2
|
||||||
with:
|
with:
|
||||||
path: .
|
name: build-files
|
||||||
- name: List Files
|
- name: List Files
|
||||||
run: ls
|
run: ls
|
||||||
- name: Upload Assets to the GitHub Release
|
- name: Upload Assets to the GitHub Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v1
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
build-files/wippersnapper.*.uf2
|
wippersnapper.*.uf2
|
||||||
build-files/wippersnapper.*.bin
|
wippersnapper.*.bin
|
||||||
build-files/wippersnapper.*.zip
|
wippersnapper.*.zip
|
||||||
|
|
|
||||||
28
.github/workflows/release-caller.yml
vendored
28
.github/workflows/release-caller.yml
vendored
|
|
@ -1,21 +1,37 @@
|
||||||
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2022
|
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2022-2025
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
name: WipperSnapper Release Workflow
|
name: WipperSnapper Release Workflow
|
||||||
|
|
||||||
on:
|
on:
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
|
workflow_call:
|
||||||
secrets:
|
secrets:
|
||||||
GH_REPO_TOKEN:
|
GH_REPO_TOKEN:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
check-branch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
should_run: ${{ steps.check.outputs.should_run }}
|
||||||
|
steps:
|
||||||
|
- id: check
|
||||||
|
run: |
|
||||||
|
if [[ $GITHUB_REF == *"offline-mode"* ]]; then
|
||||||
|
echo "should_run=false" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "should_run=true" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
call-workflow-build:
|
call-workflow-build:
|
||||||
|
needs: check-branch
|
||||||
|
if: needs.check-branch.outputs.should_run == 'true'
|
||||||
uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/build-clang-doxy.yml@main
|
uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/build-clang-doxy.yml@main
|
||||||
secrets:
|
secrets:
|
||||||
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
|
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
|
||||||
|
|
||||||
call-workflow-release:
|
call-workflow-release:
|
||||||
needs: call-workflow-build
|
needs: [check-branch, call-workflow-build]
|
||||||
uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/release-callee.yml@main
|
if: needs.check-branch.outputs.should_run == 'true'
|
||||||
|
uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/release-callee.yml@main
|
||||||
287
.github/workflows/release-offline.yml
vendored
Normal file
287
.github/workflows/release-offline.yml
vendored
Normal file
|
|
@ -0,0 +1,287 @@
|
||||||
|
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2025
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
name: WipperSnapper Release Workflow for "Offline Mode" Alpha Feature
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- offline-mode
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
branches:
|
||||||
|
- offline-mode
|
||||||
|
workflow_call:
|
||||||
|
secrets:
|
||||||
|
GH_REPO_TOKEN:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
clang:
|
||||||
|
name: 🔎 Clang
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: adafruit/ci-arduino
|
||||||
|
ref: ci-wippersnapper
|
||||||
|
path: ci
|
||||||
|
- name: pre-install
|
||||||
|
run: bash ci/actions_install.sh
|
||||||
|
- name: clang
|
||||||
|
run: python3 ci/run-clang-format.py -r -e "ci/*" -e "bin/*" -e src/nanopb -e src/protos -e src/pb.h -e src/provisioning/tinyusb src/
|
||||||
|
|
||||||
|
test-offline-mode:
|
||||||
|
name: 🧪 Test Offline Mode
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: clang
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.13'
|
||||||
|
- name: Install Python dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -r tests/requirements.txt
|
||||||
|
- name: Install Wokwi CI Server
|
||||||
|
uses: wokwi/wokwi-ci-server-action@v1
|
||||||
|
- name: Install Wokwi CLI
|
||||||
|
run: curl -L https://wokwi.com/ci/install.sh | sh
|
||||||
|
- name: Install PIO Libraries for esp32dev target
|
||||||
|
run: pio pkg install --environment=esp32dev
|
||||||
|
- name: Build PlatformIO Project
|
||||||
|
run: platformio run --environment esp32dev
|
||||||
|
- name: Move new build file to test folder
|
||||||
|
run: cp .pio/build/esp32dev/firmware.elf tests/bin/offline/firmware.elf
|
||||||
|
- name: Run Wokwi Tests
|
||||||
|
run: pytest tests/test_offline.py --junitxml=report.xml -v
|
||||||
|
env:
|
||||||
|
WOKWI_CLI_TOKEN: ${{ secrets.WOKWI_CLI_TOKEN }}
|
||||||
|
- name: Publish Wokwi Test Results
|
||||||
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
/home/runner/work/Adafruit_Wippersnapper_Arduino/Adafruit_Wippersnapper_Arduino/report.xml
|
||||||
|
|
||||||
|
build-esp32sx:
|
||||||
|
name: 🏗️ ESP32-Sx
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [clang]
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arduino-platform:
|
||||||
|
[
|
||||||
|
"metroesp32s2",
|
||||||
|
"metro_esp32s3",
|
||||||
|
"feather_esp32s2",
|
||||||
|
"feather_esp32s2_tft",
|
||||||
|
"feather_esp32s2_reverse_tft",
|
||||||
|
"feather_esp32s3",
|
||||||
|
"feather_esp32s3_4mbflash_2mbpsram",
|
||||||
|
"feather_esp32s3_tft",
|
||||||
|
"qtpy_esp32s3",
|
||||||
|
"qtpy_esp32s2",
|
||||||
|
"feather_esp32s3_reverse_tft",
|
||||||
|
"qtpy_esp32s3_n4r2",
|
||||||
|
]
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get WipperSnapper version
|
||||||
|
run: |
|
||||||
|
git fetch --prune --unshallow --tags
|
||||||
|
git describe --dirty --tags
|
||||||
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: adafruit/ci-arduino
|
||||||
|
ref: ci-wippersnapper
|
||||||
|
path: ci
|
||||||
|
- name: Install CI-Arduino
|
||||||
|
run: bash ci/actions_install.sh
|
||||||
|
- name: Install extra Arduino libraries
|
||||||
|
run: |
|
||||||
|
git clone --quiet https://github.com/milesburton/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_HX8357_Library.git /home/runner/Arduino/libraries/Adafruit_HX8357_Library
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_ILI9341.git /home/runner/Arduino/libraries/Adafruit_ILI9341
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit-ST7735-Library.git /home/runner/Arduino/libraries/Adafruit-ST7735-Library
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_TouchScreen.git /home/runner/Arduino/libraries/Adafruit_TouchScreen
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
||||||
|
git clone --depth 1 --branch wippersnapper https://github.com/brentru/lvgl.git /home/runner/Arduino/libraries/lvgl
|
||||||
|
git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library
|
||||||
|
- name: Download stable Nanopb
|
||||||
|
id: download-nanopb
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz
|
||||||
|
- if: ${{ failure() || steps.download-nanopb.outcome != 'success' }}
|
||||||
|
name: Restore cached nanopb
|
||||||
|
id: cache-nanopb-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
env:
|
||||||
|
cache-name: cache-node-modules
|
||||||
|
with:
|
||||||
|
path: ./nanopb-0.4.8.tar.gz
|
||||||
|
key: nanopb-0.4.8.tar.gz
|
||||||
|
- if: ${{ steps.download-nanopb.outcome == 'success' }}
|
||||||
|
name: Save nanopb to cache
|
||||||
|
id: cache-nanopb-save
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
env:
|
||||||
|
cache-name: cache-node-modules
|
||||||
|
with:
|
||||||
|
path: ./nanopb-0.4.8.tar.gz
|
||||||
|
key: nanopb-0.4.8.tar.gz
|
||||||
|
- name: Install stable Nanopb
|
||||||
|
run: |
|
||||||
|
tar -xf nanopb-0.4.8.tar.gz
|
||||||
|
# Copy files to WipperSnapper's src/nanopb directory
|
||||||
|
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
|
||||||
|
mv nanopb/pb.h src/nanopb/nanopb.pb.h
|
||||||
|
- name: List all files in Adafruit_LittlevGL_Glue_Library folder
|
||||||
|
run: |
|
||||||
|
ls /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library
|
||||||
|
- name: Copy lv_conf.h file in Adafruit_LittlevGL_Glue_Library to the arduino library folder
|
||||||
|
run: |
|
||||||
|
cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries
|
||||||
|
- name: Build for ESP32-SX
|
||||||
|
run: |
|
||||||
|
python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
|
||||||
|
- name: list files (tree)
|
||||||
|
run: |
|
||||||
|
tree
|
||||||
|
- name: Rename build artifacts to reflect the platform name
|
||||||
|
run: |
|
||||||
|
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
|
||||||
|
mv examples/*/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
|
||||||
|
- name: upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
|
||||||
|
path: |
|
||||||
|
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
|
||||||
|
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
|
||||||
|
|
||||||
|
build-rp2040:
|
||||||
|
name: 🏗️ RP2040, RP2350
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [clang]
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
arduino-platform: ["pico_rp2040_tinyusb",
|
||||||
|
"pico_rp2350_tinyusb",
|
||||||
|
"feather_rp2040_adalogger_tinyusb",
|
||||||
|
"metro_rp2350_tinyusb"
|
||||||
|
]
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get WipperSnapper version
|
||||||
|
run: |
|
||||||
|
git fetch --prune --unshallow --tags
|
||||||
|
git describe --dirty --tags
|
||||||
|
echo >>$GITHUB_ENV WS_VERSION=$(git describe --dirty --tags)
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: adafruit/ci-arduino
|
||||||
|
ref: ci-wippersnapper
|
||||||
|
path: ci
|
||||||
|
- name: Install CI-Arduino
|
||||||
|
run: bash ci/actions_install.sh
|
||||||
|
# manually install OneWireNG/TempControlLib for OneWireNg (RP2040 Supported OneWire w/backwards compat.)
|
||||||
|
- name: Install extra Arduino libraries
|
||||||
|
run: |
|
||||||
|
git clone --quiet https://github.com/pstolarz/OneWireNg.git /home/runner/Arduino/libraries/OneWireNg
|
||||||
|
git clone --quiet https://github.com/pstolarz/Arduino-Temperature-Control-Library.git /home/runner/Arduino/libraries/Arduino-Temperature-Control-Library
|
||||||
|
git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
|
||||||
|
git clone --quiet --branch fix-for-pico https://github.com/brentru/SdFat.git /home/runner/Arduino/libraries/SdFat_-_Adafruit_Fork/
|
||||||
|
- name: Download stable Nanopb
|
||||||
|
id: download-nanopb
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz
|
||||||
|
- if: ${{ failure() || steps.download-nanopb.outcome != 'success' }}
|
||||||
|
name: Restore cached nanopb
|
||||||
|
id: cache-nanopb-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
env:
|
||||||
|
cache-name: cache-node-modules
|
||||||
|
with:
|
||||||
|
path: ./nanopb-0.4.8.tar.gz
|
||||||
|
key: nanopb-0.4.8.tar.gz
|
||||||
|
- if: ${{ steps.download-nanopb.outcome == 'success' }}
|
||||||
|
name: Save nanopb to cache
|
||||||
|
id: cache-nanopb-save
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
env:
|
||||||
|
cache-name: cache-node-modules
|
||||||
|
with:
|
||||||
|
path: ./nanopb-0.4.8.tar.gz
|
||||||
|
key: nanopb-0.4.8.tar.gz
|
||||||
|
- name: Install stable Nanopb
|
||||||
|
run: |
|
||||||
|
tar -xf nanopb-0.4.8.tar.gz
|
||||||
|
# Copy files to WipperSnapper's src/nanopb directory
|
||||||
|
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
|
||||||
|
mv nanopb/pb.h src/nanopb/nanopb.pb.h
|
||||||
|
- name: build RP2040 platforms
|
||||||
|
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
|
||||||
|
- name: Rename build artifacts to reflect the platform name
|
||||||
|
run: |
|
||||||
|
mv examples/*/build/*/Wippersnapper_demo_offline.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
|
||||||
|
- name: upload build artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
|
||||||
|
path: |
|
||||||
|
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
|
||||||
|
|
||||||
|
merge-job-build-files:
|
||||||
|
name: Merge Artifacts for build-files
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build-esp32sx, build-rp2040]
|
||||||
|
steps:
|
||||||
|
- name: Merge Artifacts from Builds
|
||||||
|
uses: actions/upload-artifact/merge@v4
|
||||||
|
with:
|
||||||
|
name: build-files
|
||||||
|
pattern: build-files-!(dev)-*
|
||||||
|
delete-merged: true
|
||||||
|
|
||||||
|
|
||||||
|
release-wippersnapper:
|
||||||
|
name: 🚀 Upload Release Files
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: merge-job-build-files
|
||||||
|
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/')
|
||||||
|
steps:
|
||||||
|
- name: Download build artifacts from build-platform steps
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: build-files
|
||||||
|
- name: List Files
|
||||||
|
run: ls
|
||||||
|
- name: Upload Assets to the GitHub Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
wippersnapper.*.uf2
|
||||||
|
wippersnapper.*.bin
|
||||||
|
wippersnapper.*.zip
|
||||||
25
.gitignore
vendored
25
.gitignore
vendored
|
|
@ -39,17 +39,30 @@ html/*
|
||||||
# VSCode artifacts
|
# VSCode artifacts
|
||||||
.vscode/*
|
.vscode/*
|
||||||
src/.vscode/settings.json
|
src/.vscode/settings.json
|
||||||
|
|
||||||
.DS_STORE
|
.DS_STORE
|
||||||
|
|
||||||
examples/Wippersnapper_demo/build/
|
examples/Wippersnapper_demo/build/
|
||||||
|
|
||||||
|
# Virtual environment directories
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
|
||||||
|
# Python artifacts
|
||||||
|
tests/__pycache__/
|
||||||
|
|
||||||
# Platformio artifacts
|
# Platformio artifacts
|
||||||
.pio/
|
.pio/
|
||||||
|
|
||||||
# Secrets
|
# These sometimes contain credentials, don't commit them!
|
||||||
|
src/Wippersnapper_demo_wokwi.ino
|
||||||
data/
|
data/
|
||||||
|
examples/Wippersnapper_demo_offline/.theia/
|
||||||
|
examples/Wippersnapper_demo_offline/.vscode/
|
||||||
|
examples/Wippersnapper_demo_offline/build/
|
||||||
|
|
||||||
# Misc. Data
|
# Test results
|
||||||
tests/
|
report.xml
|
||||||
venv/
|
|
||||||
|
# VSCode settings
|
||||||
|
.vscode/settings.json
|
||||||
|
|
||||||
|
CLAUDE.md
|
||||||
22
.vscode/settings.json
vendored
22
.vscode/settings.json
vendored
|
|
@ -1,11 +1,23 @@
|
||||||
{
|
{
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"limits": "c",
|
"limits": "c",
|
||||||
"type_traits": "c"
|
"type_traits": "c",
|
||||||
|
"vector": "cpp",
|
||||||
|
"array": "cpp",
|
||||||
|
"deque": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"unordered_map": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"span": "cpp",
|
||||||
|
"*.tcc": "cpp",
|
||||||
|
"list": "cpp",
|
||||||
|
"unordered_set": "cpp",
|
||||||
|
"format": "cpp",
|
||||||
|
"text_encoding": "cpp",
|
||||||
|
"regex": "cpp"
|
||||||
},
|
},
|
||||||
"C_Cpp.dimInactiveRegions": true,
|
"C_Cpp.dimInactiveRegions": false,
|
||||||
"dotnet.defaultSolution": "disable",
|
"dotnet.defaultSolution": "disable",
|
||||||
"cmake.configureOnOpen": false,
|
"cmake.configureOnOpen": false
|
||||||
"C_Cpp.clang_format_fallbackStyle": "Google",
|
|
||||||
"C_Cpp.clang_format_style": "file"
|
|
||||||
}
|
}
|
||||||
2
LICENSE
2
LICENSE
|
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2020-2021 Adafruit Industries
|
Copyright (c) 2020-2024 Adafruit Industries
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
||||||
15
README.md
15
README.md
|
|
@ -5,25 +5,26 @@
|
||||||
# Adafruit WipperSnapper
|
# Adafruit WipperSnapper
|
||||||
[](http://adafruit.github.io/Adafruit_Wippersnapper_Arduino/html/index.html)
|
[](http://adafruit.github.io/Adafruit_Wippersnapper_Arduino/html/index.html)
|
||||||
|
|
||||||
Adafruit.io WipperSnapper is a firmware designed to turn any Wi-Fi-capable board into an Internet-of-Things (IoT) device. No programming is required!
|
Adafruit.io WipperSnapper is a firmware designed to turn any Wi-Fi capable board into an Internet-of-Things (IoT) device. No code required!
|
||||||
|
|
||||||
WipperSnapper works with multiple microcontroller architectures such as ESP8266, ESP32, ESP32-Sx, ESP32-Cx, RP2040, RP2350, and ATSAMD51.
|
WipperSnapper works with [multiple microcontroller architectures](https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/?tab=readme-ov-file#supported-platforms) and development boards. It is designed to be easily extensible to support new sensors, inputs, and outputs.
|
||||||
|
|
||||||
You will need a **free** [Adafruit IO](https://io.adafruit.com) account to use WipperSnapper.
|
A **free** [Adafruit IO](https://io.adafruit.com) account is required to use WipperSnapper.
|
||||||
|
|
||||||
**NOTE: WipperSnapper firmware is in beta** and is actively being developed. Please [report bugs via the issues page on this repository](https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
|
|
||||||
|
|
||||||
# Get Started
|
# Get Started
|
||||||
[Learn how to install and use WipperSnapper by following this guide on the Adafruit Learning System - QuickStart: Adafruit IO WipperSnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper).
|
[Learn how to install and use WipperSnapper by following this guide on the Adafruit Learning System - QuickStart: Adafruit IO WipperSnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper).
|
||||||
|
|
||||||
|
|
||||||
|
## Get WipperSnapper
|
||||||
|
Pre-compiled binaries and UF2 files for supported hardware are provided on the [releases page](https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/releases) of this repository.
|
||||||
|
|
||||||
## Supported Platforms
|
## Supported Platforms
|
||||||
|
|
||||||
|Platform| MCU(s) |
|
|Platform| MCU(s) |
|
||||||
|--|--|
|
|--|--|
|
||||||
|[ESP32-x](https://github.com/espressif/arduino-esp32)| ESP32, ESP32-Sx, ESP32-C3 |
|
|[ESP32-x](https://github.com/espressif/arduino-esp32)| ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 |
|
||||||
|[ESP8266](https://github.com/esp8266/Arduino)| ESP8266 |
|
|[ESP8266](https://github.com/esp8266/Arduino)| ESP8266 |
|
||||||
|[RP2040](https://github.com/earlephilhower/arduino-pico)| RP2040 MCU w/WiFi (i.e: Pico W) |
|
|[RP2040](https://github.com/earlephilhower/arduino-pico)| RP2040 MCU w/WiFi (i.e: Pico W) |
|
||||||
|[RP2350](https://github.com/earlephilhower/arduino-pico)| RP2350 MCU w/WiFi (i.e: Pico 2W) |
|
|
||||||
|[ATSAMD](https://github.com/adafruit/ArduinoCore-samd/)| SAMD51 MCU w/separate WiFi Co-Processor (i.e: Adafruit "AirLift")|
|
|[ATSAMD](https://github.com/adafruit/ArduinoCore-samd/)| SAMD51 MCU w/separate WiFi Co-Processor (i.e: Adafruit "AirLift")|
|
||||||
|
|
||||||
## Contributing to Adafruit.io and WipperSnapper
|
## Contributing to Adafruit.io and WipperSnapper
|
||||||
|
|
|
||||||
1
config.json
Executable file
1
config.json
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
{"exportVersion": "1.0.0", "exportedBy": "tester", "exportedAt": "2024-10-28T18:58:23.976Z", "exportedFromDevice": {"board": "metroesp32s3", "firmwareVersion": "1.0.0-beta.93", "referenceVoltage": 2.6, "totalGPIOPins": 11, "totalAnalogPins": 6, "rtc": "DS3231", "statusLEDBrightness": 0.1}, "components": [{"componentAPI": "analogio", "name": "Analog Pin", "pinName": "A0", "type": "analog_pin", "mode": "ANALOG", "direction": "INPUT", "sampleMode": "TIMER", "analogReadMode": "PIN_VALUE", "period": 30}, {"componentAPI": "ds18x20", "name": "DS18B20: Temperature Sensor (\u00b0F)", "sensorTypeCount": 2, "sensorType1": "object-temp-fahrenheit", "sensorType2": "object-temp", "pinName": "D4", "sensorResolution": 12, "period": 30}], "checksum": 236}
|
||||||
1
data.json
Normal file
1
data.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"exportVersion": "1.0.0", "exportedBy": "wokwi", "exportedAt": "2024-10-28T18:58:23.976Z", "exportedFromDevice": {"board": "metroesp32s3", "firmwareVersion": "1.0.0-beta.93", "referenceVoltage": 2.6, "totalGPIOPins": 11, "totalAnalogPins": 6}, "components": [{"componentAPI": "digitalio", "name": "Button (D4)", "pinName": "D4", "type": "push_button", "mode": "DIGITAL", "sampleMode": "TIMER", "direction": "INPUT", "period": 5, "pull": "UP", "isPin": true}]}
|
||||||
BIN
examples/Wippersnapper_NoFS/.DS_Store
vendored
Normal file
BIN
examples/Wippersnapper_NoFS/.DS_Store
vendored
Normal file
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.feather_esp8266.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.feather_esp8266.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
2
examples/Wippersnapper_NoFS/.funhouse.test.skip
Normal file
2
examples/Wippersnapper_NoFS/.funhouse.test.skip
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
2
examples/Wippersnapper_NoFS/.funhouse_noota.test.skip
Normal file
2
examples/Wippersnapper_NoFS/.funhouse_noota.test.skip
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.itsybitsy_esp32.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.itsybitsy_esp32.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.magtag.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.magtag.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.metro_esp32s3.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.metro_esp32s3.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.metroesp32s2.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.metroesp32s2.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.qtpy_esp32.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.qtpy_esp32.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.qtpy_esp32c3.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.qtpy_esp32c3.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.qtpy_esp32s2.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.qtpy_esp32s2.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.qtpy_esp32s3.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.qtpy_esp32s3.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_NoFS/.qtpy_esp32s3_n4r2.test.skip
Normal file
1
examples/Wippersnapper_NoFS/.qtpy_esp32s3_n4r2.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
40
examples/Wippersnapper_NoFS/Wippersnapper_NoFS.ino
Normal file
40
examples/Wippersnapper_NoFS/Wippersnapper_NoFS.ino
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
// Adafruit IO WipperSnapper
|
||||||
|
//
|
||||||
|
// This sketch is for devices which lack USB-MSD or LittleFS support such
|
||||||
|
// as the ESP32Dev for Wokwi Simulator
|
||||||
|
//
|
||||||
|
// Adafruit invests time and resources providing this open source code.
|
||||||
|
// Please support Adafruit and open source hardware by purchasing
|
||||||
|
// products from Adafruit!
|
||||||
|
//
|
||||||
|
// Brent Rubell for Adafruit Industries, 2025
|
||||||
|
//
|
||||||
|
// All text above must be included in any redistribution.
|
||||||
|
|
||||||
|
#include "ws_adapters.h"
|
||||||
|
#define WS_DEBUG // Enable debug output
|
||||||
|
/************************ Adafruit IO Config *******************************/
|
||||||
|
|
||||||
|
// Visit io.adafruit.com if you need to create an account,
|
||||||
|
// or if you need your Adafruit IO key.
|
||||||
|
#define IO_USERNAME "YOUR_AIO_USERNAME"
|
||||||
|
#define IO_KEY "YOUR_AIO_KEY"
|
||||||
|
#define IO_URL "io.adafruit.com"
|
||||||
|
#define IO_PORT 8883
|
||||||
|
/**************************** WiFi Config ***********************************/
|
||||||
|
#define WIFI_SSID "YOUR_WIFI_SSID"
|
||||||
|
#define WIFI_PASS "YOUR_WIFI_PASSWORD"
|
||||||
|
|
||||||
|
ws_adapter_wifi wipper(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, IO_URL, IO_PORT);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// Provisioning must occur prior to serial init.
|
||||||
|
wipper.provision();
|
||||||
|
|
||||||
|
Serial.begin(115200);
|
||||||
|
// while (!Serial) delay(10);
|
||||||
|
|
||||||
|
wipper.connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() { wipper.run(); }
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
0
examples/Wippersnapper_demo/.feather_esp32c6.generate
Normal file
0
examples/Wippersnapper_demo/.feather_esp32c6.generate
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
0
examples/Wippersnapper_demo/.picow_rp2350.generate
Normal file
0
examples/Wippersnapper_demo/.picow_rp2350.generate
Normal file
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_demo/.qtpy_esp32c3.test.skip
Normal file
1
examples/Wippersnapper_demo/.qtpy_esp32c3.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -1,3 +1 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,22 @@
|
||||||
// Adafruit IO WipperSnapper Beta
|
// Adafruit IO WipperSnapper
|
||||||
//
|
|
||||||
//
|
|
||||||
// NOTE: This software is a BETA release and in active development.
|
|
||||||
// Please report bugs or errors to https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/issues
|
|
||||||
//
|
|
||||||
//
|
//
|
||||||
// Adafruit invests time and resources providing this open source code.
|
// Adafruit invests time and resources providing this open source code.
|
||||||
// Please support Adafruit and open source hardware by purchasing
|
// Please support Adafruit and open source hardware by purchasing
|
||||||
// products from Adafruit!
|
// products from Adafruit!
|
||||||
//
|
//
|
||||||
// Brent Rubell for Adafruit Industries, 2021-2022
|
// Brent Rubell for Adafruit Industries, 2020-2025
|
||||||
//
|
//
|
||||||
// All text above must be included in any redistribution.
|
// All text above must be included in any redistribution.
|
||||||
|
|
||||||
#include "Wippersnapper_Networking.h"
|
#include "ws_adapters.h"
|
||||||
Wippersnapper_WiFi wipper;
|
ws_adapter_wifi wipper;
|
||||||
|
|
||||||
// Enable debug output for beta builds
|
#define WS_DEBUG // Enable debug output!
|
||||||
#define WS_DEBUG
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// Provisioning must occur prior to serial init.
|
|
||||||
wipper.provision();
|
|
||||||
|
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
//while (!Serial) delay(10);
|
wipper.provision();
|
||||||
|
|
||||||
wipper.connect();
|
wipper.connect();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
picow_rp2350_tinyusb
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
2
examples/Wippersnapper_demo_offline/.funhouse.test.skip
Normal file
2
examples/Wippersnapper_demo_offline/.funhouse.test.skip
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
examples/Wippersnapper_demo_offline/.magtag.test.skip
Normal file
1
examples/Wippersnapper_demo_offline/.magtag.test.skip
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue