Compare commits

..

533 commits

Author SHA1 Message Date
brentru
dff9e98672 GPS - Sends RMC event response 2025-07-22 16:19:41 -04:00
brentru
6797eafe48 GPS Sending event but empty for UBX 2025-07-22 15:44:57 -04:00
brentru
96c55128d1 rm cruft from sfe detection 2025-07-21 16:57:58 -04:00
brentru
3d0bb4d613 Refactor away from SFE lib! 2025-07-21 16:41:28 -04:00
brentru
f1a718fae9 GPS - Add processNMEA() with override, hacky but works 2025-07-11 16:46:20 -04:00
brentru
0376181349 GPS - Fully refactor out common HAL to hardware and parsing to model 2025-07-11 12:26:09 -04:00
brentru
5ccb7c7571 GPS - Refactor GPSEvent and processing, datetime construction 2025-07-11 11:23:12 -04:00
brentru
9a9c57bd9a GPS - Refactor update() to remove funcs that should be called by the driver, make it less reliant on iface type and driver type, handle that all in hardware 2025-07-10 16:03:28 -04:00
brentru
d3afe8ab29 GPS - UBX Parsing OK 2025-07-10 12:31:16 -04:00
brentru
bd4ec634e8 GPS - Comment out ACK 2025-07-10 10:29:52 -04:00
brentru
783ec2dae9 GPS - Handle Config progress on UBX 2025-07-09 16:53:16 -04:00
brentru
2330368b06 GPS - Match PB 2025-07-09 14:32:39 -04:00
brentru
232dc1af16 GPS - Begin UBX implementation 2025-07-09 14:28:06 -04:00
brentru
e115785f04 GPS - store 1 GGA/RMC event within model FIFO 2025-07-08 16:43:54 -04:00
brentru
8ab6ecbde2 GPS - Update PBs 2025-07-08 15:48:18 -04:00
brentru
43abe81498 GPS - GPSEvent sent 2025-07-08 13:30:02 -04:00
brentru
6589b401a3 GPS - Fix pointer in update(), GPSEvent not filled yet 2025-07-08 12:19:05 -04:00
brentru
c9d9595732 GPS - Remove redundant delay, update BuildPmtkAck() func 2025-07-08 11:52:12 -04:00
brentru
07f936c47d GPS - Discard TwoWire buffer, refactoring within controller update() 2025-07-08 10:42:59 -04:00
brentru
5a5a6e7c82 Decodes init msg 2025-07-07 16:30:40 -04:00
brentru
d6dbda4f79 GPS - Fix TwoWire not being passed properly 2025-07-07 14:48:05 -04:00
brentru
c499080749 GPS - handleConfig not working yet, paused on validation 2025-07-02 16:37:32 -04:00
brentru
320fa1e995 GPS - I2C integration, Handle_GPSConfig not working yet 2025-07-02 15:17:28 -04:00
brentru
642733ee35 GPS - Update for PB 2025-07-02 11:38:11 -04:00
brentru
9233d2ea61 GPS - Match PB d54396c..6b71dc3 2025-07-02 11:29:59 -04:00
brentru
c6924afa90 GPS - Refactor within update() for redundancy and memory checks 2025-07-01 16:25:55 -04:00
brentru
528ff03928 GPS - Fix bug, publishing multiple messages instead of one GPSevent 2025-07-01 15:21:29 -04:00
brentru
bc7d5ce39d GPS - Publish back GPSevent 2025-07-01 10:58:35 -04:00
brentru
402e75da26 GPS - Match PB: 2aad669..d0fbb8d 2025-07-01 10:56:15 -04:00
brentru
71f707c121 GPS - Parse GGA/RMC into Event 2025-07-01 10:55:27 -04:00
brentru
4722ee982a GPS- all fillers done, compiles 2025-06-30 16:21:33 -04:00
brentru
97d20ea4f1 GPS - Fill GGA 2025-06-30 16:12:42 -04:00
brentru
c4aca503c0 GPS - Fill RMC, datetime setters 2025-06-30 15:52:38 -04:00
brentru
a2ab695f42 GPS - Start model GPS 2025-06-27 15:53:51 -04:00
brentru
89f2ddc8fe GPS - match 3a7d109..2aad669 2025-06-27 15:45:20 -04:00
brentru
30d301db3b GPS - match 6811f7b..3a7d109 2025-06-27 15:27:19 -04:00
brentru
7d2245301c GPS - discard parse errors 2025-06-27 15:24:30 -04:00
brentru
881e47ac53 GPS - clang 2025-06-27 10:41:38 -04:00
brentru
58623ba518 GPS - Increase reliability within initial cmd sends 2025-06-27 10:41:30 -04:00
brentru
8b20e2759f GPS - Implement KAT, debugging 2025-06-26 16:39:49 -04:00
brentru
522a62f4c0 GPS - Fix circular buffer pop 2025-06-26 11:58:40 -04:00
brentru
77c553abf0 GPS - Circular buffer implementation for GPS reading and parsing 2025-06-26 11:57:08 -04:00
brentru
650916747c GPS - Read/discard approach, add nmea rates to hardware 2025-06-25 16:34:23 -04:00
brentru
bede6ab7eb GPS - Match Protobuf: 607702e..6811f7b 2025-06-25 14:40:04 -04:00
brentru
551df54a53 GPS - begin read impl. 2025-06-25 14:39:10 -04:00
brentru
c07f8ded77 GPS - Refactor out GPSHardware 2025-06-25 13:03:21 -04:00
brentru
8b33ba7a86 GPS - Refactor BuildPtmkAck 2025-06-25 11:12:14 -04:00
brentru
f05f163271 GPS - Build checksum for responses 2025-06-25 10:50:18 -04:00
brentru
de6a1dd524 Match Protobuf - 478e51b..607702e 2025-06-25 09:57:00 -04:00
brentru
61e45a76cf GPS - Full implementation of GPSConfig Handler 2025-06-24 13:49:38 -04:00
brentru
4b6666abef GPS - add pb with responses 2025-06-24 12:11:07 -04:00
brentru
f3286ef9ed GPS - break out config handler 2025-06-24 12:10:12 -04:00
brentru
09bfdcf4d6 GPS - refactor away from driver approoach causing circular dependency 2025-06-24 11:08:31 -04:00
brentru
57a4396bf7 GPS -refactor to use hwserial pattern 2025-06-23 16:54:59 -04:00
brentru
b699c0677e GPS - attempt a driver approach for managing instances 2025-06-23 16:22:40 -04:00
brentru
51dea24be9 GPS -detecting mtk 2025-06-23 15:35:18 -04:00
brentru
b43a8ba946 GPS - tracking add bug 2025-06-20 15:56:27 -04:00
brentru
f0aefd9045 GPS - fix build 2025-06-20 10:40:03 -04:00
brentru
5c30483776 GPS - Query mediatek 2025-06-20 09:50:36 -04:00
brentru
786c041a36 use adafruit gps 2025-06-17 12:16:15 -04:00
brentru
baef12d03c Set interface 2025-06-17 11:53:14 -04:00
brentru
c0aa18daed GPS - add processing 2025-06-17 11:27:24 -04:00
brentru
b60c23334a GPS - Routing towards DecodeGPSConfig 2025-06-16 17:03:03 -04:00
brentru
d17f2b8478 GPS - Initial commits 2025-06-13 15:29:12 -04:00
brentru
a3bf856f3c GPS - Match be3dc9d..850d73c 2025-06-13 11:33:38 -04:00
brentru
81b3061c03 cleanup 2025-06-05 09:48:18 -04:00
brentru
e229bd3799 debug within us100 2025-06-04 15:42:49 -04:00
brentru
3d453380cf fix handleUartAdd and publishing back to io, driver for us100 not working 2025-06-04 14:53:26 -04:00
brentru
7216ffea9c match cca78c8..09bf58e 2025-06-03 15:03:48 -04:00
brentru
53a26c6ff0 debugging 2025-06-03 14:55:55 -04:00
brentru
0a16097f0d Add distance measurement getter for us-100 2025-06-03 11:48:41 -04:00
brentru
1b372c40f5 Add - uart-us100 driver 2025-06-03 11:12:42 -04:00
brentru
761a2b8e57 Impl - Uart Update() handler 2025-06-02 16:35:22 -04:00
brentru
bbb14abe73 Impl - UartRemove handler 2025-06-02 13:20:59 -04:00
brentru
e2d8233a04 eod, wrapping up code 2025-05-30 16:45:02 -04:00
brentru
8725ba45f6 Full Handle_Uartadded workflow implementation for PM25AQI 2025-05-30 16:27:13 -04:00
brentru
e60e887ade Match 4e42234..5f3ec33 2025-05-30 12:54:48 -04:00
brentru
dcb623b2fc Match 492e3a0..4e42234 2025-05-30 12:38:15 -04:00
brentru
c5dbb862b3 Rough in uart driver for reading sensor events, pm25 driver match 2025-05-30 12:03:38 -04:00
brentru
1b9e973c16 meh attempt at initializing a driver 2025-05-29 16:40:03 -04:00
brentru
4a4d562335 Remove /**************************************************************************/ 2025-05-29 16:07:13 -04:00
brentru
bdad070348 Break out driver into base class and new pm25 class - WIP 2025-05-29 14:00:25 -04:00
brentru
b99e70c368 Update PB, ConfigureSerial 2025-05-29 13:09:39 -04:00
brentru
6ee80cb235 Update PB - e6b79ff4b165c6161a67994c217721281a20fe72 2025-05-28 16:59:09 -04:00
brentru
2e7c37302d init uart serial 2025-05-28 16:55:42 -04:00
brentru
1ffc861a43 Start hooking Hardware 2025-05-28 16:00:07 -04:00
brentru
b9eae36a1b Add uart/ component files 2025-05-28 14:09:38 -04:00
brentru
07cbf001ce Add updated UART.proto, signal.proto, bring in new GPS.proto 2025-05-28 12:54:41 -04:00
Brent Rubell
00593433fc
Merge pull request #749 from adafruit/migrate-api-v2-i2c-output
[API v2]: Add support for I2C Output Components
2025-05-21 16:30:22 -04:00
brentru
84a40177b6 Modifications for @tyeth review 2025-05-21 16:02:46 -04:00
brentru
c1ace0bcd8 Optimizations within pb.h 2025-05-21 16:01:12 -04:00
brentru
4598bbe502 Add SSD1306 compatability 2025-05-21 13:37:44 -04:00
brentru
59c8a7332c Update firmware to match previous PB commit's updated PBs 2025-05-21 12:44:33 -04:00
brentru
dd6599a238 match pb commit 13325a9 2025-05-21 12:30:51 -04:00
brentru
4df009ef85 Fix charLCD formatting, decimal on quadalphanum 2025-05-15 09:47:36 -04:00
brentru
f8aa81936c doxy 2025-05-13 16:11:52 -04:00
brentru
1a121454fa clang 2025-05-13 15:42:09 -04:00
brentru
538ce3b7df Add libraries 2025-05-13 15:03:08 -04:00
brentru
93dd43d6a2 Match charlcd commit 2025-05-13 11:37:57 -04:00
brentru
2cc9f32537 charlcd prints, handlers for degrees symbol 2025-05-12 16:35:02 -04:00
brentru
e5192612e2 printing! 2025-05-12 16:23:40 -04:00
brentru
a388b6d822 remove hardcode for row/col 2025-05-12 10:51:41 -04:00
brentru
a9b1e06656 Implement WriteMessage for CharLCD 2025-05-09 15:37:28 -04:00
brentru
f06ac06b30 Implement begin and configure for a char lcd 2025-05-09 12:41:25 -04:00
brentru
878d186c8e Fix float issues 2025-05-09 11:39:46 -04:00
brentru
eb2cfa1fbd Writing working for everything but floats 2025-05-08 16:53:31 -04:00
brentru
c9a20b3f50 add 0a74dc96f50785d7f29d2f44b409033fd880d600 2025-05-08 14:13:40 -04:00
brentru
263fbfae2a Implement WriteX funcs for each value type and link within drvOutputBase 2025-05-08 11:48:02 -04:00
brentru
888a3c0158 Fixed options files 2025-05-07 15:09:34 -04:00
brentru
9340fff768 Added options file, new protos/ 2025-05-07 14:31:30 -04:00
brentru
d54d4ad8b7 Handle initial configuration and begin for outputs 2025-05-07 13:04:38 -04:00
brentru
8f19c0830d Add handler for Write message 2025-05-06 15:58:13 -04:00
brentru
54cc000e40 Add drv for QuadAlphaNum LED backpack 2025-05-06 14:53:35 -04:00
brentru
b8ad718d08 detect i2c output device 2025-05-06 13:06:30 -04:00
brentru
66fc39df2b Add I2C_Output PB, add new outputbase driver class, add i2c output to i2c model and controller bridge 2025-05-06 11:50:25 -04:00
Brent Rubell
5f4a8e43cd
Merge pull request #733 from adafruit/add-pwm-api-v2
v2 API - Add PWM and Servo Support
2025-04-25 11:05:58 -04:00
brentru
c1a3c4ee05 Address @tyeth PR review 2025-04-25 10:00:38 -04:00
brentru
8c3dbdd14c Address brent PR 2025-04-24 11:50:32 -04:00
brentru
7589b78a94 Clang 2025-04-23 16:49:20 -04:00
brentru
dac4af584f Fix - Controller writes the pulse width from the message upon Add, variable timer width for ESP32x instead of hardcode 2025-04-23 16:15:41 -04:00
Brent Rubell
25ad69a315
Merge pull request #731 from adafruit/add-pixel-api-v2
Add Pixel API v2
2025-04-23 13:38:34 -04:00
brentru
7458980688 Fix - ServoRemove Unit Test 2025-04-23 12:48:09 -04:00
brentru
361f97d21e Fix - Remove PWMWriteDutyCycle_Multi (Unused), fix logical bug in Write Freq handler 2025-04-22 16:41:32 -04:00
brentru
b32ecdff35 Tests - behavioral, pwm 2025-04-22 16:06:04 -04:00
brentru
59aba4e6d4 Testing - Update NoFs.ino to work with Wokwi, add plumbing in app for signal publish, fix pwmadd and pwmremove handler issues found during testing 2025-04-22 15:32:42 -04:00
brentru
48e30f0b36 Migrate to pstolarz fork of Arduino Temperature Control Library 2025-04-22 11:17:01 -04:00
brentru
e4ae80aa0d Implement - ServoRemove, fix bugs 2025-04-22 10:24:04 -04:00
brentru
4cc35beb3e bugfixes 2025-04-21 16:53:37 -04:00
brentru
8fc941edf8 Implement - ServoWrite, boundary checks around handling the servohardware objects 2025-04-21 16:47:36 -04:00
brentru
de500896ee Implement - ServoAdd, ServoAdded API 2025-04-21 16:03:48 -04:00
brentru
a6d8755b79 Plumbing in app 2025-04-21 14:37:39 -04:00
brentru
3562104604 Init. Servo 2025-04-21 14:34:04 -04:00
brentru
3304fb4aaf Full PWM implementation, sans writemulti.. 2025-04-21 14:24:32 -04:00
brentru
31e5758d97 YAGNI - noTone() never implemented in v1 or called, remove from API 2025-04-21 12:05:51 -04:00
brentru
edadb31d13 Implement WriteFrequency message 2025-04-21 12:04:33 -04:00
brentru
aadac2b582 Tidy x2 2025-04-21 11:28:00 -04:00
brentru
ffd7a71dcd Tidy handler for PWMWriteDutycycle 2025-04-21 11:27:22 -04:00
brentru
141753b357 Implement Handler for PWMAdd Message 2025-04-18 13:54:42 -04:00
brentru
184c5dfe0a Doxy the hardware class 2025-04-18 13:14:37 -04:00
brentru
97be20a6ab Start! And added to hardware.cpp 2025-04-18 12:55:07 -04:00
brentru
8c68d45697 Update doxyfile, drop back to 1.8.3 2025-04-18 11:41:19 -04:00
brentru
13af849151 Update the @file for doxygen to fix conflicts 2025-04-18 11:21:17 -04:00
brentru
b5f703d229 one more time 2025-04-18 10:41:18 -04:00
brentru
0f959d57b3 Clang again! 2025-04-18 10:24:23 -04:00
brentru
536fb5408d Clangify 2025-04-18 10:10:26 -04:00
brentru
e69f538eeb Fix - Clang picking up protos/ folder! 2025-04-17 17:04:30 -04:00
brentru
0e5f1dbe98 Fix - Feather c6, RP2350 W 2025-04-17 15:24:49 -04:00
brentru
8f385d137e Fix - Feather esp32c6, esp32s3revtft debug 2025-04-17 14:56:08 -04:00
brentru
6fe7d069c1 Fix RP2350 2025-04-17 14:51:13 -04:00
brentru
be02bd6bbf Fix - RP2350 2025-04-17 14:35:12 -04:00
brentru
58e273f1a2 Fix - C6 2025-04-17 14:32:43 -04:00
brentru
c9a8070359 Fix eval 2025-04-17 14:07:13 -04:00
brentru
fc755f94cc Fix: Missing || 2025-04-17 13:54:39 -04:00
brentru
dc6e5acda6 Fix: Cx targets 2025-04-17 13:48:55 -04:00
brentru
50eb84eb1b Fix: RP2040 Targets 2025-04-17 13:28:17 -04:00
brentru
4bc8a48712 Fix: SAMD51 Target 2025-04-17 12:06:08 -04:00
brentru
f70f9ae888 Fix ESp8266 compile completely 2025-04-17 11:15:41 -04:00
brentru
79f6042161 Fixes for ESP8266 2025-04-17 11:01:00 -04:00
brentru
264281fc99 Fix dtors, use memeset() to clear struct memory just like we did in ctors 2025-04-17 10:11:02 -04:00
brentru
3a3cc8143a Fix assignments after declaration causing compile-time error 2025-04-16 17:03:01 -04:00
brentru
9d9126373b fix std::find 2025-04-16 16:28:50 -04:00
brentru
b90aaee7f3 fix rp2040 compiler error output 2025-04-16 16:20:28 -04:00
brentru
a0d1866a80 Re-enable adapter for Pico2W, use PStolarz OneWireNG and Temp Ctrl Lib for SAMD/8266 2025-04-16 16:17:53 -04:00
brentru
fe99de3295 Fix debug tests, add c6 target 2025-04-16 15:56:47 -04:00
brentru
7f34ca38a2 Bring SAMD Airlift in-line for v2 2025-04-16 15:48:40 -04:00
brentru
bc5a005ca4 rm samd-arduino 2025-04-16 14:55:02 -04:00
brentru
92b257a52e Modify yml, add gen/skip files 2025-04-16 14:54:06 -04:00
brentru
51972f97a7 Test Dotstar with FunHouse 2025-04-16 12:27:01 -04:00
brentru
81ba6c3fe9 fix rm neopixel 2025-04-16 11:30:25 -04:00
brentru
6e7732cf1e cleanup 2025-04-16 10:19:40 -04:00
brentru
ec2291fbae pass pixel add, write 2025-04-15 17:05:02 -04:00
brentru
700f38744b build pass 2025-04-15 15:33:16 -04:00
brentru
67e17567e4 Doxygen pass 2025-04-15 14:42:57 -04:00
brentru
166b2b1689 Done - full API implementation for pixels.proto, needs doxygen and testing 2025-04-15 14:35:53 -04:00
brentru
e3d55263d5 Implemented ConfigureStrand 2025-04-15 11:10:45 -04:00
brentru
f8e7894968 Implement NeoPixel configuration in hardware 2025-04-14 16:26:06 -04:00
brentru
5576abcdb6 Begin pixel.proto migration 2025-04-14 15:16:02 -04:00
brentru
c164dc3737 Merge branch 'offline-mode' into migrate-api-v2 2025-04-14 14:50:54 -04:00
brentru
0de3e5c73a sht4x fix 2025-03-18 11:31:37 -04:00
brentru
7b48d81094 use adafruit fork of sdfat within ws_sdcard.h 2025-03-18 11:12:01 -04:00
brentru
433865d3c7 use spiflash from gh not brentru 2025-03-18 11:08:43 -04:00
brentru
1603b9ff08 same as main 2025-03-18 11:02:08 -04:00
brentru
ceaf6fd91f add streamutils, rtclib 2025-03-18 10:54:37 -04:00
Brent Rubell
a821a31d5b Merge pull request #711 from adafruit/revert-forked-deps
Revert SDFat Forked Dependency for Pico
2025-03-18 10:50:51 -04:00
brentru
903db886ac Tested against hw 2025-03-14 13:28:53 -04:00
brentru
cb757b4293 Scan and remove for i2c devices on mux 2025-03-13 15:58:13 -04:00
brentru
c17c5a328e Update i2c.proto 2025-03-13 14:26:05 -04:00
brentru
f43e194f23 small remove impl 2025-03-13 14:08:42 -04:00
brentru
473b7bb5f5 Match API V2 #35 2025-03-13 10:47:25 -04:00
brentru
2466a8568a Snake in mux scan func and handler, not operational yet 2025-03-12 16:33:08 -04:00
brentru
c5c2091ff7 Implement both bus scans 2025-03-12 16:14:27 -04:00
brentru
a780749e24 Match Protobuf 52c4252a7336cda1274b61cdd5292f580ef4dd3d 2025-03-12 14:52:58 -04:00
brentru
6d322929ad Match I2c.proto 2025-03-12 12:00:47 -04:00
brentru
4b5e23a7c0 prelim hardware scan code 2025-03-12 11:54:03 -04:00
brentru
d9d0e41376 TODOs 2025-03-11 15:34:14 -04:00
brentru
6f4741fa13 Add hooks for i2c bus scan 2025-03-11 14:51:49 -04:00
brentru
c1d850d565 Refactor to use PIO-specific driver on RP2040 platforms, rather than bitbang it
clean up

max 7

clang
2025-03-11 14:14:08 -04:00
brentru
2493a68630 do NOT build the regular release workflow 2025-03-11 14:14:08 -04:00
brentru
03d97963bf 4sp->2sp 2025-03-11 14:14:08 -04:00
brentru
fb98943612 workflowcall->secrets 2025-03-11 14:14:08 -04:00
brentru
ea6a305eb8 Match upstream, upload to release check 2025-03-11 14:14:08 -04:00
brentru
09095e56f3 Refactor to use PIO-specific driver on RP2040 platforms, rather than bitbang it
clean up

max 7

clang
2025-03-06 14:41:08 -05:00
brentru
ca568b36e2 explicit dont run 2025-03-03 12:09:08 -05:00
brentru
128f34b3a0 do NOT build the regular release workflow 2025-03-03 12:02:36 -05:00
brentru
e6d87aa2af 4sp->2sp 2025-03-03 11:27:40 -05:00
brentru
787cb00ca8 workflowcall->secrets 2025-03-03 11:26:13 -05:00
brentru
734b879f18 Match upstream, upload to release check 2025-03-03 11:25:16 -05:00
brentru
ad0e794a7b Mirror library.properties on main 2025-03-03 10:58:42 -05:00
brentru
02c09e6439 Address Tyeth feedback 2025-03-03 10:50:02 -05:00
brentru
9f6a0885ff attempt to fix rp2040 adalogger 2025-02-26 15:22:47 -05:00
brentru
d3cdc61e71 clang 2025-02-26 15:06:36 -05:00
brentru
99d8cf5394 Add Metro RP2350 builds 2025-02-26 15:03:43 -05:00
brentru
4093c96d20 Add Metro RP2350 2025-02-26 14:58:46 -05:00
brentru
15184612fb rename skip/gen 2025-02-26 13:38:57 -05:00
brentru
d88b17ff10 skip/gen files 2025-02-26 12:57:14 -05:00
brentru
8d261ec7bc Allow for SPI1 port to be used on Feather RP2040 Adalogger 2025-02-26 12:35:52 -05:00
brentru
835b601d21 putback demo code 2025-02-26 12:13:40 -05:00
brentru
f0abfa566c Add Adafruit RP2040 Adalogger to workflow too 2025-02-26 12:05:22 -05:00
brentru
13b149625e Add Adafruit RP2040 Adalogger to PIO and codebase 2025-02-26 12:04:04 -05:00
brentru
affdf956ef Fix I2C Pinout on RP2040 Variants 2025-02-25 16:33:56 -05:00
brentru
5ac35f3b03 build while testing instead 2025-02-24 15:18:12 -05:00
brentru
a2e722cab1 attribute scott perkins correctly 2025-02-24 14:20:31 -05:00
brentru
8aa233a47a Modify demos 2025-02-24 14:19:52 -05:00
brentru
afffa814e9 remove .cpp residual 2025-02-24 13:58:17 -05:00
brentru
0d96f93a4e Add workflow for this branch 2025-02-24 13:57:02 -05:00
brentru
9c3d525215 Remove unused ctor in drvBase, remove code in ctor body for drvers 2025-02-24 13:48:18 -05:00
brentru
6485e4dfe1 Work without a RTC attached 2025-02-24 13:23:08 -05:00
brentru
d0b42ad9ea bump download-artifact version to 4 2025-02-19 12:12:54 -05:00
brentru
357a73c1a0 consolidate tests and build script 2025-02-19 11:55:36 -05:00
brentru
cec28b1ad8 Pass tests 2025-02-19 11:42:33 -05:00
brentru
8e7385ccf8 tests use the runner 2025-02-18 12:54:20 -05:00
brentru
33f5955ab3 target esp32dev install only 2025-02-18 12:46:06 -05:00
brentru
61de28781a clangx2 2025-02-18 12:35:50 -05:00
brentru
f206963507 clang again 2025-02-18 12:34:07 -05:00
brentru
2770d8a6a0 bring in test runner, attempt to run! 2025-02-18 12:33:24 -05:00
brentru
af886dba37 clang, fix offline test runner to install 2025-02-18 12:27:36 -05:00
brentru
77bbf1a77a run clang first 2025-02-18 12:20:50 -05:00
brentru
670a6dc4c6 do not clang inside protos/ dir, new dir replaces wippersnapper/ dir 2025-02-18 12:14:43 -05:00
brentru
1d2d97ca7f checkout 2x? 2025-02-18 12:01:57 -05:00
brentru
1d12fa7cc6 tree clang 2025-02-18 11:48:46 -05:00
brentru
5f78c969fe fix rename 2025-02-18 11:34:27 -05:00
brentru
0344da5c02 fix mv 2025-02-18 11:27:00 -05:00
brentru
fc10a78c29 add pico board 2025-02-18 11:24:45 -05:00
brentru
435bac2890 status neopixel num = 1 2025-02-13 17:00:50 -05:00
brentru
9dcd5f0edc typo, v2 api uses _address 2025-02-13 16:51:25 -05:00
brentru
6c84b7a0fd Rm manual scd4x lib clone 2025-02-13 16:45:19 -05:00
brentru
5150c9ba1a Match main branch for 1.0.0 release of scd4x lib 2025-02-13 16:44:33 -05:00
brentru
bc1902ee47 manual scd4x branch 2025-02-13 16:41:04 -05:00
brentru
9b43229810 fix generate/skip 2025-02-13 16:36:13 -05:00
brentru
c937e93c26 add streamutils 2025-02-13 16:14:14 -05:00
brentru
c35cc76f90 skipfiles for rp20xx 2025-02-13 16:11:55 -05:00
brentru
15ad1f4980 add RTCLib 2025-02-13 16:10:18 -05:00
brentru
b6928ba2d9 sensiron changed their case sensitivity? 2025-02-13 16:04:16 -05:00
brentru
b8c98f2a32 fix redefiniton for Wippersnapper.h within driver 2025-02-13 15:38:52 -05:00
brentru
7558d32ff5 fix case sensitivty again 2025-02-13 15:30:10 -05:00
brentru
009581645f Fix BME280 uCase 2025-02-13 15:26:17 -05:00
brentru
33f35336ff Fix include case sensitivity issue 2025-02-13 15:22:54 -05:00
brentru
ae086bdf92 Fix skip/gen files 2025-02-13 15:13:59 -05:00
brentru
36f1b047bf Remove conditionals for relase, for now 2025-02-13 14:57:09 -05:00
brentru
7bf0896857 Update release for offline mode ci 2025-02-13 14:54:50 -05:00
brentru
0542219b00 Review model.cpp 2025-02-13 12:52:31 -05:00
brentru
e566898710 Fix mux init from refactor 2025-02-13 12:49:29 -05:00
brentru
a27bd94ce0 Refactor mux init, driver init 2025-02-13 11:58:25 -05:00
brentru
a756f0f6d2 Refactor mux handling within handleI2cDeviceAddOrReplace 2025-02-13 10:47:20 -05:00
brentru
71aa594eaf Refactor haltdelay to let it hang or reboot 2025-02-13 09:45:16 -05:00
brentru
340e3f880b Add offline skip/generate files 2025-02-12 11:16:52 -05:00
brentru
31533af591 Add CI for offline mode 2025-02-12 11:05:53 -05:00
brentru
55c6b53b74 Bring over SD card review changes 2025-02-11 15:13:35 -05:00
brentru
c362d0b27e complete doxygen pass through 2025-02-11 14:58:34 -05:00
brentru
560d707992 Fix DPS, scd, memset issue 2025-02-11 13:16:51 -05:00
brentru
c95047dc4c Fix SD card file handling for Pico target, overall fix 2025-02-11 11:14:02 -05:00
brentru
8506c17f60 attempt fix sd for pico target 2025-02-11 11:07:19 -05:00
brentru
8cd12dfdd2 Doxygen Pass 2/? 2025-02-11 10:40:16 -05:00
brentru
b86d9c213b Doxygen Pass 1/2 2025-02-11 10:26:51 -05:00
brentru
080d1dabe5 Fix for SCD40, SCD41 2025-02-10 16:31:34 -05:00
brentru
67ecbe6ac6 QoL for hanging the device for driver failure, allow picow via offline demo and fix for adapters 2025-02-10 15:49:15 -05:00
brentru
b78c3595cf Fix light sensor not recording to event for TSL2591 2025-02-10 12:46:53 -05:00
brentru
bb31f5eb21 Fix getAmbientTempF(), get raw event for AHT20 test 2025-02-10 11:29:53 -05:00
brentru
aa8ef676b0 Fix get->GetEvent() bug! 2025-02-07 16:19:07 -05:00
brentru
692f56fe91 Full mapping for all values! 2025-02-07 15:47:28 -05:00
brentru
d4eb3a984c Remove unsorted map, possible collisons 2025-02-07 15:19:12 -05:00
brentru
92a1af67da Fix bug with initial log file, fix status LED color issue 2025-02-07 14:58:22 -05:00
brentru
ec5bcb16be remove debugs, add kat blink for offline 2025-02-07 13:54:25 -05:00
brentru
bdfb73fe96 v2->no suffix 2025-02-07 10:19:57 -05:00
brentru
e659e118ae remove the api switcher 2025-02-06 16:11:34 -05:00
brentru
00006b4bf2 moving towards v2 api only? 2025-02-06 15:51:38 -05:00
brentru
c85104516a remove second pb.h file?! switch to hashmap 2025-02-06 15:25:06 -05:00
brentru
170cc42980 compile w/o cruft 2025-02-06 13:47:48 -05:00
brentru
c0786ffc89 add veml, vl53x, vl61x 2025-02-06 12:54:54 -05:00
brentru
e13ea8f0ca add sen5x, sgp40, sht3x, sht4x, shtc3, si7021, stemmasoil, tmp117, tsl2591, veml7700, vncl4020, vncl4040 2025-02-06 11:02:16 -05:00
brentru
180d48e322 Add PM25, SCD30, SCD4x 2025-02-06 09:45:31 -05:00
brentru
7b0facaf4d Add MPRLS, Ms8607, nau7802, pct2075, fix inclusion error for MPRLS and NAU 2025-02-05 12:23:54 -05:00
brentru
b31185581f add Mpl115a2 2025-02-04 16:35:21 -05:00
brentru
dde9120a53 add mcp9808 2025-02-04 16:27:27 -05:00
brentru
ee7a0f4467 add ltr329, ltr303, ltr390, max1704x, mcp3421 2025-02-04 16:20:16 -05:00
brentru
dc5783001b add lc709203f, lps22gb, lps25hb, lps3xhw 2025-02-04 14:57:20 -05:00
brentru
9099c0258b add ens160, htu21d, hts221, ina219 2025-02-04 14:21:56 -05:00
brentru
7f8477e30f Add bh1750, bme680, bmp280, bmp3xx variants 2025-02-04 12:24:50 -05:00
brentru
1eee91163e Add AHTx0 2025-02-04 11:50:40 -05:00
brentru
e384ad652b Add ADT7410 drv 2025-02-04 11:13:36 -05:00
brentru
79f4f38f70 Expose scl/sda pins through the driver for an alt. i2c bus rather than handling thru controller update() loop 2025-02-04 10:51:35 -05:00
brentru
7fe8d61b75 Fix bug with mux addr printing, non-default scl/sda pins for alt. bus decl. 2025-02-04 10:45:03 -05:00
brentru
f0f0855485 Log the output to serial and sd 2025-02-03 12:59:18 -05:00
brentru
2220b7faa4 refactor mux handling, doxygen 2025-01-31 12:34:01 -05:00
brentru
5c990e4945 pull data out of sensor into an event variable 2025-01-30 16:27:08 -05:00
brentru
3a82a14944 Map of lambda funcs for GetEventX() calls 2025-01-30 11:38:32 -05:00
brentru
af1ac3ba4e Allow controller to query driver obj. for if its using an alt. i2c bus, hooks in controller 2025-01-30 10:56:15 -05:00
brentru
05ce076b40 setbool 2025-01-28 14:03:14 -05:00
brentru
179cc525cf MUX refactor 2025-01-28 14:02:45 -05:00
brentru
cc2d25e545 Tyeth review 2025-01-28 12:51:35 -05:00
brentru
1e3f6af9df Update drvBase to use ulong() for all time-keeping rather than long, handle 49 day rollovers 2025-01-28 11:09:31 -05:00
brentru
e20d50feb0 Park Remove for now, dont implement just yet 2025-01-24 13:11:07 -05:00
brentru
a0b2729dd5 Refactor out SD parsing for I2C 2025-01-24 11:37:08 -05:00
brentru
5d8e9926a5 working on hardware 2025-01-23 15:36:08 -05:00
brentru
383a69e5d9 Fix logic within IsBusStatusOK and add alt. bus to create driver func 2025-01-23 13:29:18 -05:00
brentru
0d6fb0d31e Update with alt. i2c bus plumbing 2025-01-23 12:04:04 -05:00
brentru
970bf4c705 Match WipperSnapper_Protobuf bed8b12f6f5faec6c5604e204b44a8528e35607a 2025-01-22 15:36:32 -05:00
brentru
6c96a6006c Refactor out publishing, i2c mux init code! 2025-01-22 13:04:21 -05:00
brentru
75a58a64e0 Reflect WipperSnapper_Protobuf 10060314ca8f3e2d4f7f21de96e7521c58655a22 2025-01-21 16:49:22 -05:00
brentru
37eec43f43 Add initial mux working 2025-01-21 14:51:25 -05:00
brentru
100f343d31 Add driver, initial framework and comments for i2c muxes 2025-01-17 16:11:31 -05:00
brentru
88c7df249b Init i2c component from sd card config file 2025-01-17 11:23:16 -05:00
brentru
321c011acd Refactor further, add bme280 driver, compile OK 2025-01-16 11:41:12 -05:00
brentru
4d2f4464c5 Publish back the wippersnapper_i2c_I2cDeviceAddedOrReplaced message to IO 2025-01-15 16:11:16 -05:00
brentru
bdcf514d3e Implement API for I2cDeviceAddedorReplaced message 2025-01-15 16:03:36 -05:00
brentru
b2770ee2d3 refactoring more! 2025-01-14 15:30:23 -05:00
brentru
a507f77772 refactoring! 2025-01-14 14:22:06 -05:00
brentru
fafd25f058 add driver_v2 base class 2025-01-14 11:59:38 -05:00
brentru
17e5c4e26b implement first pass at Handle_I2cDeviceAddOrReplace 2025-01-13 14:47:33 -05:00
brentru
71b06ec36d more plumbing for i2c 2025-01-10 10:07:51 -05:00
brentru
450a369a39 plumb deviceaddreplace more 2025-01-09 13:44:43 -05:00
brentru
5b67a61f69 Introduce new I2c API 2025-01-02 13:49:32 -05:00
brentru
6ecacfd5cd [SD] Bring bcd script in-line with main 2024-12-27 11:22:18 -05:00
brentru
a2bcc7dd2a [SD] Resolve all Wokwi test issues, all green 2024-12-27 11:17:59 -05:00
brentru
75b117b2a5 [SD] Fix Wokwi Testing, test_digital_input is having issues still 2024-12-26 16:48:25 -05:00
brentru
f10f7551a7 [SD] Tested with ESP32 Pico QT Py and DS3231 2024-12-20 11:31:48 -05:00
brentru
1fd43286b1 [SD] Untested on HW | Fix for ESP32 SPI clock issue 2024-12-19 14:04:32 -05:00
brentru
253a2c0290 [SD] Support for LittleFS based provisioning 2024-12-16 14:43:16 -05:00
brentru
126f430967 [SD] Add debug output to adapter classes, valid return values where applicable to properly indicate its a stub class, add pico to ini 2024-12-13 15:52:19 -05:00
brentru
e3e6ff3f47 [SD] Complete adapters/ work and build 2024-12-13 15:35:13 -05:00
brentru
c67318012f [SD] Move to ws_adapters naming scheme to allow flexibility for offline devices too and eventual cellular 2024-12-12 17:02:34 -05:00
brentru
a7c20d1edc rm old terms 2024-12-12 16:39:35 -05:00
brentru
0d9633036b [SD] add pico2 2024-12-12 16:36:10 -05:00
brentru
d29e3e4bf7 [SD] Start to support pico2 2024-12-11 18:01:49 -05:00
brentru
e076710386 [SD] Set status led green after successful config 2024-12-10 15:59:28 -05:00
brentru
b7415d0500 [SD] Handle sd cards of varying capacities! 2024-12-10 13:06:04 -05:00
brentru
d1ac920df9 [SD] Address error cases/states for sd_cs handling 2024-12-10 11:33:49 -05:00
brentru
33d5089c28 clean up 2024-12-09 16:30:48 -05:00
brentru
0a29dc79bc [SD] Finish refactoring to allow config.json to sit on WIPPER drive, add dynamic SD CS pin 2024-12-09 16:00:47 -05:00
brentru
2d7139c593 [SD] Link tinyusb, refactor init 2024-12-09 13:42:47 -05:00
brentru
4a6364e1a4 [SD] dynamic pin refactor 2 2024-12-09 11:47:50 -05:00
brentru
c2a2e428bd [SD] Refactor and make pins dynaically allocated for sdcard 2024-12-06 16:32:36 -05:00
brentru
45d23653ee [SD] Refactor checksum validation out, dont require it to operate 2024-12-06 12:15:11 -05:00
brentru
8bac2d7aba [SD] Add some overhead for pico2, generate json checksum data script 2024-12-05 11:33:04 -05:00
brentru
cd720e5b17 [SD] first working offline log to sd 2024-12-03 15:50:37 -05:00
brentru
7207778166 [SD] All tests green again 2024-12-03 12:27:23 -05:00
brentru
c2ea367d92 [SD] Handle error cases during parsing for DIOAdd 2024-12-02 13:18:59 -05:00
brentru
e79530110f [SD] Refactor out LogSensorEventTOSD funcs 2024-11-29 15:11:51 -05:00
brentru
4d9bed832b [SD] Refactor sd header and clean it up 2024-11-29 12:46:46 -05:00
brentru
52a8bd7757 [SD] Implement buffered JSON stream writes to sd card, refactoring along logging, basic file creation implementaiton 2024-11-27 12:50:18 -05:00
brentru
0e0cda4b0f [SD] Parsing and dispatch working on Metro ESP32S3 hardware 2024-11-26 16:47:25 -05:00
brentru
c9c904c095 [SD] Fully refactor ParseConfigFile 2024-11-26 12:42:37 -05:00
brentru
4794bcd7ba [SD] Refactor all parsing 2024-11-26 11:28:44 -05:00
brentru
a81fa033ab [SD] Push #offline config into the PIO build ini for one platform only 2024-11-25 16:09:24 -05:00
brentru
ebb269c30f [SD] Refactoring ParseFile2 2024-11-22 15:55:53 -05:00
brentru
348334541a [SD] Refactoring ParseFile1 2024-11-22 14:47:21 -05:00
brentru
26c62ab431 putback main way to attach msc 2024-11-21 16:24:46 -05:00
brentru
8eea7ec70b looking at metro s3 2024-11-21 15:57:29 -05:00
brentru
192ff1ae13 merge in upstream esp32s3 metro patch 2024-11-21 14:20:19 -05:00
Brent Rubell
01d4b72529 Merge pull request #647 from tyeth/add-metro-s3
Add metro s3
2024-11-21 12:31:39 -05:00
brentru
c6776a2daf update tests, result ignore 2024-11-20 15:54:36 -05:00
brentru
6e6ad431ba [SD] Fix path 2024-11-20 13:58:26 -05:00
brentru
ccb13b128d [SD] Run via GH:A 2024-11-20 13:47:41 -05:00
brentru
4826b58526 [SD] Add binary for offline 2024-11-20 12:29:03 -05:00
brentru
1d43de2b6a [SD] Add Pytest file, rename to scenario yaml 2024-11-19 15:20:17 -05:00
brentru
b2c79f391f [SD] Add test for parsing invalid json edge case 2024-11-19 14:30:04 -05:00
brentru
7eab68270f [SD] Add test for offline digital input 2024-11-19 13:04:08 -05:00
brentru
3eac2215c2 [SD] Rm sd read json scenario that we aren't using 2024-11-19 11:58:33 -05:00
brentru
d97e430db3 [SD] Add offline analog input scenario 2024-11-19 11:58:13 -05:00
brentru
5b5463cd33 [SD] Refactor diagram, doxygen sd class 2024-11-18 15:04:03 -05:00
brentru
27aa7d4424 [SD] Multiple DS18b20 events, multiple ds18b20 instances 2024-11-18 12:13:13 -05:00
brentru
f0f574a0ac [SD] ds18x20 decode thru controller via HandleAdd OK 2024-11-14 14:22:05 -05:00
brentru
bf7b7de3fc [SD] Implement DS18x20 JSON->PB parsing, decoding at the component-handle fails 2024-11-14 13:02:21 -05:00
brentru
4d7d1db1d9 [SD] Get codebase show-ready 2024-11-13 15:43:45 -05:00
brentru
7020f4e275 [SD] Implement DigitalIO Output parsing, untested 2024-11-12 14:58:40 -05:00
brentru
d4c8dad505 [SD] Add vector of vectors for processing > 1 component from JSON, print json to serial in Line format w/newLine 2024-11-12 14:09:50 -05:00
brentru
b71e2e6ff1 [SD] 2x component json add 2024-11-08 11:52:17 -05:00
brentru
861ab98343 [SD] implement checkin process dynamic instead of hardcode 2024-11-07 13:35:48 -05:00
brentru
9f6c810792 [SD] Log jsonl to serial 2024-11-07 12:49:58 -05:00
brentru
019c7a91b1 [SD] Add PCF8253 RTC compatibility 2024-11-07 11:37:51 -05:00
brentru
1b5ee96ffe 🚧 SD - hardcode the checkin process 2024-11-05 16:00:14 -05:00
brentru
0f226a60de switch from func to property to test online mode 2024-11-05 14:50:51 -05:00
brentru
cdcbb6535a 🚧 SD - prioritizeds1307 rtc over ds3231 2024-11-05 12:49:20 -05:00
brentru
aa99b19da4 add rtc 2024-11-05 12:28:18 -05:00
brentru
ad574e23c6 🚧 SD - parsing to dispatch working for one component only 2024-11-05 11:54:58 -05:00
brentru
1aeee684df 🎨 SD - Add formatting logging 2024-11-04 16:48:11 -05:00
brentru
fbd4c5bad6 🚧 SD - Add parsing for AnalogIOAdd, remove DigitalIOAdd global message in favor of a global Signal message 2024-11-04 16:37:55 -05:00
brentru
6bb1ab2815 🚧 SD - Start building out json->pb parser, allow debug passthru for parsing a json string hardcoded 2024-11-04 16:00:44 -05:00
brentru
30bab50b8e 🚧 SD - parse out component type, add offline/debug flag, parse json string 2024-11-01 13:26:28 -04:00
brentru
3b3a10c172 🚧 SD - add waitForIncomingConfigFile() parse serial over TCP 2024-11-01 11:32:18 -04:00
brentru
eaa1ee8343 🚀 SD - wokwi simulator detecting and switching to offline mode 2024-10-31 14:29:42 -04:00
brentru
00530c1a7f 🚧 SD - refactor out sd func. to a new class 2024-10-31 13:40:00 -04:00
brentru
fbf9886d5a 🚧 Working simulation with Wokwi 2024-10-30 16:38:39 -04:00
brentru
f22b43136c 🚧 Wokwi progress 2024-10-30 15:13:20 -04:00
brentru
baca82d03a 🚧 Integrate Wokwi CLI and simulator builds, begin 2024-10-30 12:41:29 -04:00
brentru
46d85c0f80 🚧 SD - parsing hooks for arduinojson 2024-10-29 16:38:00 -04:00
brentru
26ff4ffe69 🚧 SD - Add global flag for sd mode, detection in connect and entry point for new parsing func. 2024-10-28 16:44:38 -04:00
brentru
24561bc51a 🚧 SD - entry point and detect if inserted in all boards 2024-10-28 16:04:36 -04:00
brentru
65b66fe597 🚧 SD - include sd cs pins for all boards 2024-10-28 15:31:27 -04:00
brentru
54edb4cb2d 🎨 Review dsx model 2024-10-18 10:48:36 -04:00
brentru
c1efd3e746 📝 Review controller/hardware classes, self-review 2024-10-17 16:48:33 -04:00
brentru
407b1e48c5 🐛 Don't allow non-object-temp SensorTypes to init a ds18 sensor 2024-10-17 14:40:27 -04:00
brentru
6d4e85d716 🐛 Fix DSx bug, onewirePin not added to ds18x20Evetn messages 2024-10-17 13:01:01 -04:00
brentru
546820793a 🐛 WIP, dsx - Fix bug where two sensors are initd but only the first is read 2024-10-17 12:02:48 -04:00
brentru
8e5a4de4e1 🚧 WIP, dsx - Add debug profile, remove redundant code within update() call 2024-10-17 11:06:39 -04:00
brentru
a5e43c102c add logging facility for dsx 2024-10-15 16:40:47 -04:00
brentru
16412d44d5 🚧 WIP, dsx, handle event/remove 2024-10-15 16:17:35 -04:00
brentru
458e7a696f 🚧 WIP, dsx - Read temperature and properly reset all counters 2024-10-15 11:28:24 -04:00
brentru
697b6e9f71 🎨 WIP, dsx - Doxygen and remove unused code implemented in the sensor model 2024-10-10 15:17:51 -04:00
brentru
72f5a3f473 🚧 Remove the onewire bus from the pin and vec erase 2024-10-10 13:05:03 -04:00
brentru
540b116988 🚧 WIP, dsx - Attempt towards encoding multiple sensor events in one update() looop 2024-10-10 12:21:49 -04:00
brentru
b424c7947b 🚧 WIP, dsx - Add to hardware, updat eloop 2024-10-09 14:23:37 -04:00
brentru
f4184e5962 🚧 WIP, dsx - Implement readF, getters 2024-10-08 16:17:07 -04:00
brentru
312c8f6977 🚧 WIP, dsx - Add read and sensor id funcs 2024-10-08 15:46:40 -04:00
brentru
d207447f06 🚧 WIP, analogio - publish out to the broker 2024-10-08 12:49:05 -04:00
brentru
b8377e5de0 🚧 WIP, dsx - added message 2024-10-08 12:37:23 -04:00
brentru
307fd4336f implement setup for dsx, remove deps that conflict 2024-10-08 10:21:09 -04:00
brentru
e342564dca 🚧 WIP, dsx - Plumbing for ds18x in App, switch to OneWireNG interface 2024-10-07 15:37:41 -04:00
brentru
a9288ccc38 🚧 WIP, dsx - Sketch out ds18x20 classes 2024-10-07 15:17:27 -04:00
brentru
706652fd0a add partitions, use larger parition size 2024-10-04 15:15:30 -04:00
brentru
7f2d550344 🐛 WIP, analogio - Refactor hardware.cpp for raw adc reads, fix underflow bug in func signature mismatch for model 2024-10-04 14:56:52 -04:00
brentru
e30d4e4126 🐛 WIP, analogio - Bug fixes during testing 2024-10-03 15:34:57 -04:00
brentru
549874a2f0 🐛 WIP, analogio - bring in
#635
2024-10-03 12:06:08 -04:00
brentru
067c220e87 🎨 WIP, analogio - Doxygen analogio classes 2024-10-03 11:16:28 -04:00
brentru
6a82e772e9 🚧 WIP, analogio - publish out 2024-10-02 16:00:19 -04:00
brentru
e5d3199e45 🚧 WIP, analogio - refactor encode/publish in controller, refactor model 2024-10-02 15:59:08 -04:00
brentru
fac050e853 🚧 WIP, analogio - Add encoder for a raw analogio event 2024-10-02 15:01:56 -04:00
brentru
e5e2724aac 🎨 WIP, analogio - Encode, publish voltage event 2024-10-02 12:56:21 -04:00
brentru
eb6bf12e26 🚧 WIP, analogio - Read voltage, precalculate scale factor for optimization 2024-10-02 11:33:15 -04:00
brentru
fcd87d19ce 🚧 WIP, analogio - Add deinit, scale reads, update 2024-10-01 16:16:09 -04:00
brentru
4ca038c94d 🚧 WIP, analogio - Fix compiler errors and build pass 2024-10-01 11:58:17 -04:00
brentru
b9f7c126f5 ⬆️ Upgrade protos, 7dd0fe6 2024-10-01 11:40:52 -04:00
brentru
6b93efcd64 ⬆️ Upgrade protobuf to match ee1df09fb542fd9ba27271cfa5aebc75bd9842a3 2024-10-01 11:38:18 -04:00
brentru
49e110db97 🚧 WIP, analogio - Create controller, hardware, model and hooks for AnalogIOAdd msg 2024-10-01 10:44:44 -04:00
brentru
c20e45b2af rm unused model func 2024-09-30 11:25:09 -04:00
brentru
3cc50de409 🚧 WIP, digitalio - refactor naming to match python 2024-09-30 11:20:07 -04:00
brentru
e42e963fbd 🚧 WIP, digitalio - Attach dio remove to b2d cb 2024-09-30 11:08:32 -04:00
brentru
4a2ccac2e6 🚧 WIP, digitalio - Implement remove pin API 2024-09-30 11:07:29 -04:00
brentru
fbaadb97f6 🎨 Doxygen pass complete 2024-09-27 16:19:27 -04:00
brentru
47dcb933d4 🎨 Doxygen sensor model, ws_manager classes 2024-09-27 12:47:27 -04:00
brentru
ce7d5ed0d1 🎨 Add doxygen across new v2 classes 2024-09-27 12:28:40 -04:00
brentru
e513533d8b 🚧 WIP, digitalio - Address TODO for statusled 2024-09-27 10:17:48 -04:00
brentru
624ba3d6b7 🚧 WIP, digitalio - refactoring 2024-09-26 14:20:06 -04:00
brentru
70406f39ca 🚧 WIP, digitalio - Add doxygen comments 2024-09-26 13:02:45 -04:00
brentru
0675abc890 🚧 WIP, digitalio - Refactoring in update() 2024-09-26 12:24:55 -04:00
brentru
fcc6914f9f 🚧 WIP, digitalio - Sends boolean value from timer-based input 2024-09-25 17:01:55 -04:00
brentru
50609f776b 🎨 Improve structure of the FS code 2024-09-25 11:36:37 -04:00
brentru
d8728147c7 🚑️ Fix Filesystem bug in V2 2024-09-25 11:05:55 -04:00
brentru
1b2c10b56d continue fix flash failure 2024-09-24 16:16:30 -04:00
brentru
3093b5085a looking at flash failure 2024-09-24 14:49:06 -04:00
brentru
a3386d3224 🚧 WIP, digitalio - publishing to broker missing value 2024-09-11 16:44:02 -04:00
brentru
5288af0be0 🚧 WIP, digtialio: adhere to period better, fix bug 2024-09-11 16:33:46 -04:00
brentru
434107c2a7 🚧 WIP, digitalio - Refactor out the Update() conditional function calls into new functions 2024-09-11 13:23:06 -04:00
brentru
10a19bf94d 🚧 WIP, digitalio - Add encoder for digital io event to model, encode/publish dio event message, inc. partition sz 2024-09-11 12:28:00 -04:00
brentru
3ac84724b5 🚧 WIP, digitalio: Add Update() service for reading pins 2024-09-10 16:08:19 -04:00
brentru
60fb5f66a0 refactor adddigitalpin() call 2024-09-10 15:08:47 -04:00
brentru
136332919f 🚧 WIP, digitalio - Refactor ConfigurePin, AddDigitalPin 2024-09-10 14:12:49 -04:00
brentru
c29f210592 🚧 WIP, digitalio: Add input, input pullup to ConfigurePin 2024-09-10 13:59:37 -04:00
brentru
1a6fc3debd 🚧 WIP, digitalio - blink demo 2024-09-10 13:30:33 -04:00
brentru
1007802d8e 🚧 WIP, digitalio - Fix linker error, refactor get pin to get pin idx, use only one array of pins instead of 2 2024-09-10 11:11:36 -04:00
brentru
014b2ba1cb 🚧 WIP, digitalio - Implement hardware digital write, update model to zer o out the previous msg 2024-09-09 11:11:17 -04:00
brentru
099efb71eb 🚧 WIP - Begin integrating sensor api 2024-09-09 10:56:02 -04:00
brentru
01f26b6813 🚧 WIP, digitalio - Detect status led pin 2024-09-06 11:26:22 -04:00
brentru
6588c15a08 🎨 Improve structure of code by moving digitalio model to the controller class instead of main app 2024-09-05 16:01:15 -04:00
brentru
9919945a80 ⬆️ Upgrade TinyUSB for enumeration patch 2024-09-05 11:38:52 -04:00
brentru
8292ad2314 🚧 WIP, digitalio - Implement hardware class, add setpinmode for hw 2024-09-04 16:35:26 -04:00
brentru
fedac2dad4 🚧 WIP, DigitalIO - Set max pins of dio controller, no vect.or 2024-09-04 15:09:55 -04:00
brentru
8c5d92c999 🐛 Fix nullptr due to digitaliomodel not being init'd 2024-09-04 15:00:57 -04:00
brentru
b37fb72262 🐛 Fix runV2() not executing by adding run() to ws_manager class and sketch 2024-09-04 13:14:54 -04:00
brentru
3583f0dfa2 🚧 WIP, DigitalIO - Fix linker error, don't create a pb struct within the controller 2024-09-04 13:03:58 -04:00
brentru
3acd2bc6d9 ⬆️ Upgrade compiled pb wrappers 2024-09-03 16:48:03 -04:00
brentru
1534649f92 🚧 WIP, DigitalIO - Build out controller's add pin func. 2024-09-03 16:20:58 -04:00
brentru
d56f8d5b46 🚧 WIP, DigitalIO - Deprecate old digitalio members in Wippersnapper.h 2024-09-03 14:23:37 -04:00
brentru
916d9669b2 🚧 WIP, DigitalIO - Add controller class, pin subclasses 2024-09-03 14:08:05 -04:00
brentru
0667b91e8f 🚧 WIP, DigitalIO - Rough out the pb model 2024-09-03 13:43:56 -04:00
brentru
02765aadd9 🚧 Begin digitalio.proto migration 2024-09-03 12:14:08 -04:00
brentru
08172e201b 🚀 Complete checkin process 2024-09-03 11:54:31 -04:00
brentru
642cc620f0 🎨 Improve structure of the new checkin api and deprecate unused class members 2024-08-30 15:28:06 -04:00
brentru
6018295478 🎨 Remove debug prints 2024-08-30 15:02:28 -04:00
brentru
602261ac29 🚧 WIP - Validate checkin response, configure GPIO classes with parsed values 2024-08-30 11:57:43 -04:00
brentru
aaa5961f07 🚧 WIP - Handle checkin response, refactor handler out of signal decoder cb 2024-08-30 11:39:50 -04:00
brentru
74b2cc1fc6 🚧 WIP - Decode checkin response 2024-08-30 11:11:29 -04:00
brentru
9b67169e56 use extern ws for CheckInModel so its accessable outside the publish func 2024-08-30 09:49:07 -04:00
brentru
3fcaf0efdb Add ws_helper_esp.h and use new ESP-IDF reset reason code 2024-08-29 14:40:12 -04:00
brentru
5d11057b9f 🗑️ Deprecate old signal callbacks, analog/digital callbacks 2024-08-29 14:05:42 -04:00
brentru
f366a43cc6 🗑️ Deprecate I2C code within app 2024-08-29 12:04:12 -04:00
brentru
c06ed448e0 🗑️ Deprecate callbacks for servo, pwm, dsx 2024-08-29 11:38:01 -04:00
brentru
c754eee5b0 🗑️ Deprecate callbacks for pixels, uart 2024-08-29 11:35:38 -04:00
brentru
dd79c67bbd Add callback for decoding a BrokerToDevice signal, auto-decoder 2024-08-27 15:17:38 -04:00
brentru
77e49e414c 🎨 Add getter/setters, parser to encapsulate checkinresponse variables in a better way 2024-08-27 14:13:59 -04:00
brentru
5d7ad71941 🎨 Improve publishSignal to reduce overhead 2024-08-27 13:43:25 -04:00
brentru
5db8dcbeb1 🎨 Improved EncodeCheckinRequest by encoding prior to publishing to get the expected sized 2024-08-27 13:35:37 -04:00
brentru
d2cd420a29 🐛 Fix topic names to include / at end for autoresponder expected topic 2024-08-27 12:14:26 -04:00
brentru
9a888226f4 🚀 CheckinRequest message is publishing across the DeviceToBroker topic 2024-08-26 16:58:15 -04:00
brentru
f1cf4be286 ♻️ Refactor out v1 registration code from app 2024-08-22 16:50:45 -04:00
brentru
84c69cb8c4 🎨 Implement publish call for checkin process 2024-08-22 16:35:52 -04:00
brentru
0f57639a66 🎨 Implement high-level publish call for d2b signal messages 2024-08-22 14:22:49 -04:00
brentru
2aa532b543 🎨 Start implementing new checkin process
New checkin model class added along with functions within .cpp to exec. it
2024-08-22 13:46:40 -04:00
brentru
5f6ecaaf83 ⬆️ Update protobufs
Use latest build artifacts
2024-08-21 15:50:50 -04:00
brentru
2c4c58f15d 🦺 Add hooks for error/throttle callbacks 2024-08-20 17:20:01 -04:00
brentru
f663d28799 🦺 Add v2 api folder, files generated locally 2024-08-20 16:42:44 -04:00
brentru
1c8ffa0bc7 🐛 Fixed incorrect malloc check within generatewstopicsv2() 2024-08-20 13:34:03 -04:00
brentru
2bafd29229 fix generateDeviceUIDV2 failure and crash 2024-08-20 12:59:16 -04:00
brentru
f65ea11fa5 ♻️ Move refactored topic generation from Wippersnapper class to Wippersnapper_V2 class 2024-08-19 17:38:25 -04:00
brentru
e5850a4676 Merge branch 'switch-runtimes' into migrate-api-v2 2024-08-19 16:45:49 -04:00
brentru
a96324588f pulling from json now 2024-08-19 16:41:15 -04:00
brentru
e9427cb51a break out fs to v2 class, attempting to pull all info from json, not working fully yet 2024-08-19 14:43:51 -04:00
brentru
5388152c57 set ssid and pass 2024-08-19 11:41:43 -04:00
brentru
310b3e5cb7 get the mac 2024-08-16 16:25:11 -04:00
brentru
abc83150ec bring in noota partition scheme, 47.2% of flash space on ESP32-S2 2024-08-16 16:02:35 -04:00
brentru
6d71ba072b connects to wifi and mqtt using v1, not v2 2024-08-16 15:13:15 -04:00
brentru
a12ccc9d45 bring in the Wippersnapper_registration methods 2024-08-16 13:03:49 -04:00
brentru
67600ded1e not compiling, add esp32_v2.h but conflict with registration class members 2024-08-16 12:54:07 -04:00
brentru
732a0a32e4 provisioning v1 working 2024-08-16 11:07:32 -04:00
brentru
e18801120b check api version just a basic POC 2024-08-15 16:09:45 -04:00
brentru
47a8642388 refactor v2, no collisions in the namespace or linker 2024-08-15 15:14:14 -04:00
brentru
5667ecc83c Implement API check when pin tied hi 2024-08-15 11:08:41 -04:00
brentru
035446eb34 Refactor out macros, helper topics, build v2 class, init manager class for factory 2024-08-14 17:03:07 -04:00
brentru
cd8d7dcc61 refactor out shared statuses into helper_status.h header 2024-08-14 16:34:24 -04:00
brentru
23c42bb1af Refactor generateDeviceUID() 2024-08-13 16:03:10 -04:00
brentru
f2c89d4bf2 Refactor generateWSTopics() 2 2024-08-13 15:52:12 -04:00
brentru
65d864aefa Refactor generateWSTopics() 2024-08-13 15:33:02 -04:00
brentru
43282c8148 rip off beta tag 2024-08-13 14:34:53 -04:00
398 changed files with 128793 additions and 20233 deletions

View file

@ -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"
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) 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,7 +927,7 @@ 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:

View file

@ -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

View file

@ -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]
if: needs.check-branch.outputs.should_run == 'true'
uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/release-callee.yml@main uses: adafruit/Adafruit_Wippersnapper_Arduino/.github/workflows/release-callee.yml@main

287
.github/workflows/release-offline.yml vendored Normal file
View 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
View file

@ -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
View file

@ -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"
} }

751
Doxyfile

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -5,25 +5,26 @@
# Adafruit WipperSnapper # Adafruit WipperSnapper
![Build CI](https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/actions/workflows/build-clang-doxy.yml/badge.svg)[![Documentation](https://github.com/adafruit/ci-arduino/blob/master/assets/doxygen_badge.svg)](http://adafruit.github.io/Adafruit_Wippersnapper_Arduino/html/index.html) ![Build CI](https://github.com/adafruit/Adafruit_Wippersnapper_Arduino/actions/workflows/build-clang-doxy.yml/badge.svg)[![Documentation](https://github.com/adafruit/ci-arduino/blob/master/assets/doxygen_badge.svg)](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
View 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
View 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

Binary file not shown.

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View 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(); }

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -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() {

View file

@ -0,0 +1 @@
picow_rp2350_tinyusb

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1,2 @@

View file

@ -0,0 +1 @@

Some files were not shown because too many files have changed in this diff Show more