Compare commits

...

684 commits

Author SHA1 Message Date
brentru
45780992ee Offline/SD - Fix PM25 sensor 2025-07-29 14:55:59 -04:00
brentru
3d969cf619 Offline/SD - UART GPS, UART US-100 OK 2025-07-29 12:29:47 -04:00
brentru
82c9c6a70a Offline - GPS over I2C working for PA1010D, UBX MAX-M10 2025-07-28 16:06:50 -04:00
brentru
4792c911a7 SD - Add UART GPS 2025-07-28 14:01:03 -04:00
brentru
c6d64828c2 SD - Add UART Logging, offline/online switch, small refactor of func names 2025-07-28 13:56:12 -04:00
brentru
5f6f26f403 GPS - Add Parsing to SD Card 2025-07-28 12:26:09 -04:00
brentru
351c1565b9 GPS - I2c Refactor, put back missing autodetect from merge, crash on GPSEvent erroneous publish 2025-07-28 11:37:12 -04:00
brentru
8800c78760 SD - Parse UART GPS 2025-07-24 15:21:47 -04:00
brentru
11062ed7d7 SD - Parse UART generic, uart pm25aqi types 2025-07-24 14:10:10 -04:00
brentru
ff5c0f33cf Update Uart PB 2025-07-24 12:33:13 -04:00
brentru
86d95ec9f8 SDCard - begin parsing UARTadd, needs new PB 2025-07-24 12:28:35 -04:00
brentru
ced98cba70 clang format 2025-07-23 15:35:13 -04:00
brentru
4636abc1c1 kick ci 2025-07-23 15:34:07 -04:00
brentru
2bbc638ea2 Clang 2025-07-23 15:28:03 -04:00
brentru
ab7cc415f4 Compile OK 2025-07-23 14:36:20 -04:00
brentru
f256fcdb2e Merge branch 'migrate-api-v2-uart' into offline-mode 2025-07-23 13:45:49 -04:00
brentru
0263274c93 Merge branch 'offline-mode' into migrate-api-v2-uart 2025-07-23 12:26:04 -04:00
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
tyeth
9a75c29ff0 RP2 debug target updates 2025-05-25 03:32:46 +01: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
Tyeth Gundry
bbc6a4f4ad
Merge pull request #748 from adafruit/offline-mode-20250506-with-drivers
Offline mode PR fixes 20250506 with drivers
2025-05-13 17:47:19 +01:00
brentru
93dd43d6a2 Match charlcd commit 2025-05-13 11:37:57 -04:00
Tyeth Gundry
1b4b617ba8 Update file headers with Licence etc 2025-05-13 16:28:39 +01:00
Tyeth Gundry
dab54bbeae Remove redundant commented out code 2025-05-13 16:21:29 +01:00
Tyeth Gundry
74eab4cd1c Remove null driver check + \n after drv->printSensorInfo() 2025-05-13 16:20:55 +01:00
Tyeth Gundry
45989bf138 Drivers as drvBase not auto 2025-05-13 16:19:34 +01:00
Tyeth Gundry
43c9cdabf6 set WsV2.pin_sd_cs on InitSdCard(pin_cs) call 2025-05-13 16:18:25 +01:00
Tyeth Gundry
3be34a3412 Remove extra boards file and clang format 2025-05-13 14:51:59 +01:00
Tyeth Gundry
a68913f553 Use SEN55 as auto default instead of SEN50 2025-05-13 14:39:10 +01:00
Tyeth Gundry
c6e872277b Merge branch 'offline-mode-20250506-with-drivers' of https://github.com/adafruit/Adafruit_Wippersnapper_Arduino into offline-mode-20250506-with-drivers 2025-05-13 14:31:51 +01:00
Tyeth Gundry
3499a32adf Add LPS33HW + LPS35HW auto address 2025-05-13 14:31:44 +01:00
tyeth
8cc7335195 Add missing default sensor types 2025-05-13 14:31:21 +01:00
Tyeth Gundry
087e5bd6c8 SGP30 auto address 2025-05-13 14:27:10 +01:00
tyeth
bf2e43c4b8 Report SD CS Pin in event of failure 2025-05-13 13:52:18 +01:00
tyeth
10f0a208be Default to PiCowbell SD CS pins on Pico boards 2025-05-13 13:49:54 +01:00
tyeth
a923c229d2 Set PlatformIO sketch to use offline adapter if needed 2025-05-13 11:56:44 +01:00
tyeth
b86cfc1500 haltErrorV2 reattach MSC by default 2025-05-12 22:05:59 +01: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
tyeth
91c2ee8032 Remove USB_CDC. Don't refresh host on host write 2025-05-12 17:03:41 +01:00
tyeth
20c47841a4 Wait 2.5seconds after reconnect before printing 2025-05-12 16:44:39 +01:00
tyeth
f5c2c93560 Print I2C driver info 2025-05-12 16:32:03 +01:00
brentru
a388b6d822 remove hardcode for row/col 2025-05-12 10:51:41 -04:00
tyeth
6ace339893 clang format autodetection list 2025-05-12 15:43:35 +01:00
tyeth
5b55fd528e Merge branch 'offline-mode-add-missing-drivers-2025-04-04' into offline-mode-20250506-with-drivers 2025-05-12 15:42:19 +01:00
tyeth
92ecd21660 Add HTU31D autodetection 2025-05-12 15:41:33 +01:00
tyeth
9355d0493e Add HDC302x autodetection 2025-05-12 15:40:40 +01:00
tyeth
4aaa036992 Add LPS28DFW autodetection 2025-05-12 15:39:14 +01:00
tyeth
799d422f47 Add VCNL4200 autodetection 2025-05-12 15:38:07 +01:00
tyeth
a1dd63da46 Add INA260 autodetection 2025-05-12 15:37:12 +01:00
tyeth
09a925b181 Add SEN66 auto detection addresses 2025-05-12 15:37:00 +01:00
tyeth
6e592fb689 Drop NDEBUG flags 2025-05-12 15:31:06 +01:00
tyeth
69f2659216 Back to BSP 3.13 2025-05-12 15:30:12 +01:00
tyeth
5d1f489a1c Merge remote-tracking branch 'upstream/offline-mode-add-missing-drivers-2025-04-04' into offline-mode-20250506-with-drivers 2025-05-12 13:49:57 +01: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
tyeth
0addc4f7ed ESP32 BSP 3.20 -> 3.13 2025-05-06 13:22:42 +01:00
tyeth
34e4db4b6a Clang reorder imports controller.h 2025-05-06 13:20:59 +01:00
tyeth
edfde81b9b clang format i2c/controller.cpp 2025-05-06 13:16:55 +01:00
tyeth
2a75f7ac5d Merge branch 'add-offline-drivers-2025-04-04' into latest-fixes-20250506 2025-05-06 13:10:45 +01:00
brentru
0887141bcf Remove requirement for secrets.json config default for offline mode 2025-05-06 13:09:52 +01:00
brentru
11e21164cb Clang 2025-05-02 14:52:33 -04:00
brentru
0e6de25d17 CI run 2025-05-02 14:48:23 -04:00
brentru
7494b5aa3b Remove prints/delays for debugging 2025-05-02 14:46:17 -04:00
brentru
59bb1e5ec0 Use fix for Wire1, too 2025-05-02 14:40:01 -04:00
brentru
e602c71bf5 Fix RTC issue 2025-05-02 13:21:26 -04:00
Tyeth Gundry
922653cbc2 clang 2025-04-29 17:01:14 +01:00
tyeth
45da7d327d Mention RP2350 2025-04-29 16:57:57 +01:00
tyeth
2c6713d149 Add SEN6x 2025-04-29 16:57:57 +01:00
tyeth
943b717776 Add INA260 2025-04-29 16:57:57 +01:00
tyeth
e547559b3f Add VCNL4200 2025-04-29 16:57:56 +01:00
tyeth
602bbd65cb Add LPS28DFW 2025-04-29 16:57:56 +01:00
tyeth
19b58a8d84 Add HDC302x 2025-04-29 16:57:56 +01:00
Tyeth Gundry
57a0b8916d BSP 3.20 2025-04-29 16:57:56 +01:00
Tyeth Gundry
aec73718bf Adds HTU31D
Closes #721
2025-04-29 16:57:56 +01:00
tyeth
b93f131dc0 Closes #724 - Add SGP30 to offline mode 2025-04-29 16:57:56 +01:00
tyeth
d1285cb493 Remove final SPI Flash forked copy from CI 2025-04-29 16:57:55 +01:00
brentru
11cee82963 More intelligent approach for the config file rm issue 2025-04-29 10:04:51 -04:00
brentru
7fd0d1a50a Attempt to fix the config.json file getting rm'd 2025-04-29 09:29:44 -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
Tyeth Gundry
1617c18e2f BSP 3.20 2025-04-25 01:59:57 +01:00
Tyeth Gundry
bb1e440688 Adds HTU31D
Closes #721
2025-04-25 01:59:36 +01: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
Brent Rubell
556477721e
Merge pull request #728 from adafruit/offline-mode-autoconfig
Add automatic configuration capability and other enhancements for Offline Mode
2025-04-14 11:48:54 -04:00
brentru
375fd394a0 address @tyeth review 2025-04-14 11:26:36 -04:00
brentru
ec229aaa5f Restore demo 2025-04-11 16:18:16 -04:00
brentru
eda059e13b fix OFFLINE requirement that is causing msc detach/attach after logging 2025-04-11 16:17:32 -04:00
brentru
49124174eb Fix target - metro rp2350 tinyusb 2025-04-11 14:56:21 -04:00
brentru
2d0d4fe110 fix the swapped classes 2025-04-11 13:59:52 -04:00
brentru
385537fedc nonet update 2025-04-11 13:48:00 -04:00
brentru
0ece23be40 test demo offline, nonet and netifaces 2025-04-11 13:35:33 -04:00
brentru
1b51d0cc10 Test should work now, revert ci change for offline 2025-04-11 13:28:19 -04:00
brentru
4a680ad06f build targets for offline mode 2025-04-11 13:14:08 -04:00
brentru
7362592430 Fix tyeth issue 2025-04-11 13:06:51 -04:00
brentru
14fe05a94d ignore offline 2025-04-11 11:21:50 -04:00
brentru
24c4961555 flip conditinals 2025-04-11 11:20:26 -04:00
brentru
44f351d6d0 update release-caller.yml 2025-04-11 11:16:15 -04:00
brentru
8d17e93cf9 Fix all regressions 2025-04-11 10:12:17 -04:00
brentru
ff80728a8f fix regression - analogio, digitalio 2025-04-11 09:46:51 -04:00
brentru
0b072e2bcd clang 2025-04-10 16:07:57 -04:00
brentru
765cb4afae build for esp32dev CLI 2025-04-10 16:06:48 -04:00
brentru
4335c247ba Fix - automatic scan backing out incorrectly after candidate list exhausted' 2025-04-10 15:35:53 -04:00
brentru
8baad48a17 clang 2025-04-10 15:01:31 -04:00
brentru
b7c89e58e7 Release for offline fix 2025-04-10 14:59:09 -04:00
brentru
c58774c954 doxygen: 2025-04-10 14:54:39 -04:00
brentru
9205787459 putback old sketch 2025-04-10 14:23:06 -04:00
brentru
f13f8b7618 review modifications 2025-04-10 13:42:27 -04:00
brentru
8313b66a82 trim controller 2025-04-10 12:19:05 -04:00
brentru
d86a445735 reviewing 2025-04-10 12:10:12 -04:00
brentru
f579bbdd96 reenum adding cdc and msc doesnt reenum til the end 2025-04-09 15:23:45 -04:00
brentru
8614a6db12 pair 2: remove debug code 2025-04-09 12:27:00 -04:00
brentru
0a422f5400 pair: working mux 2025-04-09 12:11:38 -04:00
brentru
9fc3e4dd50 still debugging mux inclusion 2025-04-08 16:35:11 -04:00
brentru
fbfcc08bcd debugging mux 2025-04-08 15:49:50 -04:00
brentru
6c4595915f put back old work without the no/auto/yes 2025-04-07 16:22:19 -04:00
brentru
aaf718d754 sync protos 2025-04-07 13:52:24 -04:00
brentru
4020e0330d debugging existing file 2025-04-07 12:52:57 -04:00
brentru
6018591b5d Load an existing file into the in-memory document and append to it as-needed 2025-04-04 16:58:30 -04:00
brentru
77c9a53389 autocfg->write->usb workflow implemented 2025-04-04 12:21:53 -04:00
tyeth
c67ea208b4 Closes #724 - Add SGP30 to offline mode 2025-04-04 16:51:33 +01:00
brentru
40e80d99fb check if scan == candidate 2025-04-04 11:45:16 -04:00
tyeth
974eccfe68 Remove final SPI Flash forked copy from CI 2025-04-04 15:37:07 +01:00
brentru
fa65af9a65 add use: fields 2025-04-03 15:00:47 -04:00
brentru
01a4a72aa5 Wow, uh, WSVs._fsv2 wasnt being called everywhere leading to a dangling member. Fixed 2025-04-03 13:33:18 -04:00
brentru
387e66c32d looking at autocfg->write->start 2025-04-03 12:49:04 -04:00
brentru
f778e46456 working on hw 2025-04-02 15:54:37 -04:00
brentru
161bacb4ad Reduce error string verbosity 2025-04-02 13:21:05 -04:00
brentru
3b58f2e370 Check for scan results within parse, log a warning 2025-04-02 11:35:56 -04:00
brentru
8edabaa50a Refactor parsing scan results into the buffer 2025-03-28 15:57:01 -04:00
brentru
0a208e2f96 Persistent init working from config 2025-03-28 11:41:55 -04:00
brentru
f8b7610229 Write back i2c device info to config file, doesn't work on boot yet 2025-03-27 15:20:47 -04:00
brentru
f4408473dc remove the usb attach/detach and extra syncs 2025-03-26 18:37:47 -04:00
brentru
515ce9c5d9 remove detach/attach issue 2025-03-26 18:20:00 -04:00
brentru
f323fd02d0 use reverse map, unordered_map instead 2025-03-26 16:55:11 -04:00
brentru
ea3c17f485 add all drivers 2025-03-26 12:26:13 -04:00
brentru
3686c6f8a6 add sensor types to components, (2) 2025-03-25 17:12:29 -04:00
brentru
f83d534542 add sensor types to components, (1) 2025-03-25 16:35:01 -04:00
brentru
aa557e2a56 Temporarily remove adding the device to the config file since it doesnt write out its types, device default_sensor_types is broken 2025-03-25 13:25:31 -04:00
brentru
8ce8b7b5d4 Fix driver name issue 2025-03-25 11:22:15 -04:00
brentru
f13a706d93 Associate driver with address, writeback to file 2025-03-25 10:52:55 -04:00
brentru
b7784dfe49 add association within controller, TODO: remove association cruft in driver! 2025-03-24 16:59:21 -04:00
brentru
0b55693def add scan pb to config 2025-03-24 15:36:11 -04:00
brentru
ebb36d6d89 Refresh USB for Pico if sd config was automatically found 2025-03-24 13:12:29 -04:00
brentru
cef1bfc76f save friday progress 2025-03-21 16:45:19 -04:00
brentru
c4eba79970 Refactor all ParseX component functions within ws_sdcard.h 2025-03-21 11:04:04 -04:00
brentru
a5d8807d50 Hooks for detach/attach 2025-03-21 10:10:37 -04:00
brentru
e17292f080 Append scan results to config file? 2025-03-20 15:10:13 -04:00
brentru
6d312c573a check scan results 2025-03-20 13:43:24 -04:00
brentru
d9f6a36fd3 putback old initbus, scan the non-alt bus by default, fixing the bug 2025-03-20 13:15:20 -04:00
brentru
b3a1edf08f save work 2025-03-20 10:58:22 -04:00
brentru
e797fd483e Add controller hooks for managing the scan from another class 2025-03-19 11:50:12 -04:00
brentru
c2f471fbff add bus scan with storage for results, not hooked into ctroler 2025-03-19 11:02:23 -04:00
Brent Rubell
d3f04623aa Break out components parsing 2025-03-19 14:01:03 +00:00
brentru
bd2ec33ee8 Starting to break out config file parsing so we can insert entry-point for i2c component auto workflow within it 2025-03-18 17:03:52 -04:00
brentru
fcbd86a19f Test with hardware, resolve spi_cfg issues 2025-03-18 14:38:42 -04:00
brentru
de667441fd Merge branch 'offline-mode' into offline-mode-autoconfig 2025-03-18 13:22:15 -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
970901e4d7 Move SD_CS_PIN into Boards 2025-03-17 16:45:21 -04:00
brentru
480e2c7d7e Refactoring within WS_SDCARD 2025-03-17 16:30:25 -04:00
brentru
6f1b2d5419 Add to FS for config file 2025-03-17 15:46:48 -04:00
brentru
bd8095ed0b Prelim thoughts on SD API, tighten up FS APIs 2025-03-17 15:08:54 -04:00
brentru
1e6a8c74ed hm how about trying adding the potential address to the driver.. 2025-03-14 16:14:39 -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 24572 additions and 15708 deletions

View file

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2023 # SPDX-FileCopyrightText: Brent Rubell for Adafruit Industries, 2023-2025
# #
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
name: WipperSnapper Build CI name: WipperSnapper Build CI
@ -6,6 +6,8 @@ name: WipperSnapper Build CI
on: on:
workflow_dispatch: workflow_dispatch:
pull_request: pull_request:
branches-ignore:
- 'offline-mode'
workflow_call: workflow_call:
secrets: secrets:
GH_REPO_TOKEN: GH_REPO_TOKEN:
@ -13,7 +15,7 @@ on:
jobs: jobs:
build-esp32sx-esptool: build-esp32sx-esptool:
name: Build WipperSnapper ESP32-Sx name: 🏗ESP32-Sx(lvgl)
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -22,7 +24,7 @@ jobs:
include: include:
- offset: "0x1000" - offset: "0x1000"
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -34,6 +36,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Checkout Board Definitions - name: Checkout Board Definitions
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -44,19 +47,41 @@ 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 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
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 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-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_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 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 git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library
- name: Download and install stable Nanopb - name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
@ -70,7 +95,7 @@ jobs:
- name: Install Dependencies (esptool) - name: Install Dependencies (esptool)
run: | run: |
pip3 install esptool pip3 install esptool
- name: Build for ESP32-SX - name: Build for ESP32-SX (esptool)
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: list files - name: list files
run: | run: |
@ -96,14 +121,19 @@ jobs:
echo $content echo $content
echo EOF echo EOF
} >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
- name: list arduino esp32 core files
run: |
ls /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions
- 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@v2 uses: andstor/file-existence-action@v3
with: with:
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin" files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin"
- name: list arduino esp32 core files
if: steps.check_files.outputs.files_exists == 'true'
run: |
ls /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions
- name: list arduino esp32 bsp core files
if: steps.check_files.outputs.files_exists == 'false'
run: |
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: mv /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
@ -126,24 +156,24 @@ jobs:
- 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 }}.*
- name: upload build artifacts zip - name: Upload build artifacts zip
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}-zip
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.zip
- name: Rename build artifacts to reflect the platform name - name: Rename build artifacts to reflect the platform name
run: | run: |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
- name: upload build artifacts - name: Upload build artifact UF2 file
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}-uf2
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
build-esp32sx: build-esp32sx:
name: Build WipperSnapper ESP32-Sx name: 🏗️ESP32-Sx
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -152,6 +182,7 @@ jobs:
[ [
"magtag", "magtag",
"metroesp32s2", "metroesp32s2",
"metro_esp32s3",
"feather_esp32s2", "feather_esp32s2",
"feather_esp32s2_tft", "feather_esp32s2_tft",
"feather_esp32s2_reverse_tft", "feather_esp32s2_reverse_tft",
@ -164,7 +195,7 @@ jobs:
"qtpy_esp32s3_n4r2", "qtpy_esp32s3_n4r2",
] ]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -176,24 +207,47 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Install CI-Arduino - name: Install CI-Arduino
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 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
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 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-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_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 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 git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library
- name: Download and install stable Nanopb - name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
@ -205,25 +259,25 @@ jobs:
run: | run: |
cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries cp /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library/lv_conf.h /home/runner/Arduino/libraries
- name: Build for ESP32-SX - name: Build for ESP32-SX
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
- name: list
run: | run: |
ls python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
ls examples/*/build/ - name: list files (tree)
run: |
tree
- name: Rename build artifacts to reflect the platform name - name: Rename build artifacts to reflect the platform name
run: | run: |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 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 mv examples/*/build/*/Wippersnapper_demo.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
- name: upload build artifacts - name: upload build artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
build-esp32: build-esp32:
name: Build WipperSnapper ESP32, ESP32-C3 name: 🏗ESP32/Cx
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -235,13 +289,16 @@ jobs:
"feather_esp32_v2", "feather_esp32_v2",
"itsybitsy_esp32", "itsybitsy_esp32",
"wippersnapper_qtpy_esp32c3", "wippersnapper_qtpy_esp32c3",
"wippersnapper_feather_esp32c6"
] ]
include: include:
- offset: "0x1000" - offset: "0x1000"
- offset: "0x0" - offset: "0x0"
arduino-platform: "wippersnapper_qtpy_esp32c3" arduino-platform: "wippersnapper_qtpy_esp32c3"
- offset: "0x0"
arduino-platform: "wippersnapper_feather_esp32c6"
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -253,6 +310,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Checkout Board Definitions - name: Checkout Board Definitions
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -263,19 +321,40 @@ 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 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 and install stable Nanopb - name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
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: |
pip3 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
@ -290,7 +369,7 @@ jobs:
mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin
- name: Check boot_app0 file existence (esp32 built from core, not-source) - name: Check boot_app0 file existence (esp32 built from core, not-source)
id: check_files id: check_files
uses: andstor/file-existence-action@v2 uses: andstor/file-existence-action@v3
with: with:
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin" files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin"
- name: boot_app0 file from arduino-cli core - name: boot_app0 file from arduino-cli core
@ -330,14 +409,14 @@ jobs:
run: | run: |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.* zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.*
- name: upload build artifacts zip - name: upload build artifacts zip
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip
build-samd: build-samd:
name: Build WipperSnapper SAMD name: 🏗️SAMD
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -349,7 +428,7 @@ jobs:
"metro_m4_airliftlite_tinyusb", "metro_m4_airliftlite_tinyusb",
] ]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -361,6 +440,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Install CI-Arduino - name: Install CI-Arduino
run: bash ci/actions_install.sh run: bash ci/actions_install.sh
@ -368,39 +448,61 @@ 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 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 and install stable Nanopb git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
- name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
mv nanopb/pb.h src/nanopb/nanopb.pb.h mv nanopb/pb.h src/nanopb/nanopb.pb.h
- name: build platforms - name: build SAMD 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: Rename build artifacts to reflect the platform name - name: Rename build artifacts to reflect the platform name
run: | run: |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
mv examples/*/build/*/Wippersnapper_demo.ino.hex wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex mv examples/*/build/*/Wippersnapper_demo.ino.hex wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex
- name: upload build artifacts - name: upload build artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.hex
build-rp2040: build-rp2040:
name: Build WipperSnapper RP2040 name: 🏗️RP2040
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
arduino-platform: ["picow_rp2040_tinyusb"] arduino-platform: ["picow_rp2040_tinyusb", "picow_rp2350_tinyusb"]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -412,6 +514,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Install CI-Arduino - name: Install CI-Arduino
run: bash ci/actions_install.sh run: bash ci/actions_install.sh
@ -420,76 +523,57 @@ 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
- name: Download and install stable Nanopb git clone --quiet https://github.com/adafruit/Adafruit_TinyUSB_Arduino /home/runner/Arduino/libraries/Adafruit_TinyUSB_Arduino
- name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
mv nanopb/pb.h src/nanopb/nanopb.pb.h mv nanopb/pb.h src/nanopb/nanopb.pb.h
- name: build platforms - name: build RP2040 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: Rename build artifacts to reflect the platform name - name: Rename build artifacts to reflect the platform name
run: | run: |
mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 mv examples/*/build/*/Wippersnapper_demo.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
- name: upload build artifacts - name: upload build artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
# NOTE: This does NOT release artifacts, it only builds
build-samd-non-fs:
name: Build WipperSnapper SAMD (NO-TINYUSB)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arduino-platform: ["mkrwifi1010", "nano_33_iot"]
steps:
- uses: actions/setup-python@v4
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
path: ci
- name: Install CI-Arduino
run: bash ci/actions_install.sh
- name: Install extra Arduino libraries
run: |
git clone --quiet https://github.com/arduino-libraries/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA
git clone --quiet https://github.com/arduino-libraries/Servo.git /home/runner/Arduino/libraries/Servo
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/PaulStoffregen/OneWire.git /home/runner/Arduino/libraries/OneWire
- name: Download and install stable Nanopb
run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz
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 platforms
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
build-esp8266: build-esp8266:
name: Build WipperSnapper ESP8266 name: 🏗ESP8266
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
arduino-platform: ["feather_esp8266"] arduino-platform: ["feather_esp8266"]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -501,22 +585,44 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Install CI-Arduino - name: Install CI-Arduino
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 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 and install stable Nanopb - name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
mv nanopb/pb.h src/nanopb/nanopb.pb.h mv nanopb/pb.h src/nanopb/nanopb.pb.h
- name: build platforms - name: build ESP8266 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: list build artifacts - name: list build artifacts
run: | run: |
@ -531,14 +637,14 @@ jobs:
run: | run: |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.* zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.*
- name: upload build artifacts zip - name: upload build artifacts zip
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files name: build-files-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip
build-esp32sx-dev: build-esp32sx-dev:
name: Build WipperSnapper ESP32-Sx DEV BUILDS name: 🏗ESP32-Sx(DEV)
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -550,9 +656,12 @@ jobs:
"feather_esp32s3_debug", "feather_esp32s3_debug",
"feather_esp32s3_4mbflash_2mbpsram_debug", "feather_esp32s3_4mbflash_2mbpsram_debug",
"feather_esp32s3_tft_debug", "feather_esp32s3_tft_debug",
"wippersnapper_feather_esp32s3_reverse_tft_debug",
"metroesp32s2_debug",
"metro_esp32s3_debug",
] ]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -564,24 +673,47 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: Install CI-Arduino - name: Install CI-Arduino
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 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
git clone --quiet https://github.com/adafruit/Adafruit_STMPE610.git /home/runner/Arduino/libraries/Adafruit_STMPE610 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-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_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 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 git clone --depth 1 --branch development https://github.com/brentru/Adafruit_LvGL_Glue.git /home/runner/Arduino/libraries/Adafruit_LittlevGL_Glue_Library
- name: Download and install stable Nanopb - name: Download stable Nanopb
id: download-nanopb
continue-on-error: true
run: | run: |
# Download and extract nanopb
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.8.tar.gz 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 tar -xf nanopb-0.4.8.tar.gz
# Copy files to WipperSnapper's src/nanopb directory # Copy files to WipperSnapper's src/nanopb directory
cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb cp nanopb/pb_common.* nanopb/pb_encode.* nanopb/pb_decode.* src/nanopb
@ -597,20 +729,181 @@ jobs:
- name: list - name: list
run: | run: |
ls ls
ls examples/*/build/ ls -R examples/*/build/
- name: Rename build artifacts to reflect the platform name - name: Rename build artifacts to reflect the platform name
run: | run: |
mv examples/*/build/*/wippersnapper_debug.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 mv examples/*/build/*/wippersnapper_debug.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
mv examples/*/build/*/wippersnapper_debug.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin mv examples/*/build/*/wippersnapper_debug.ino.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
- name: upload build artifacts - name: upload build artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: build-files-dev name: build-files-dev-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: | path: |
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.bin
build-esp32-dev:
name: 🏗ESP32/Cx(DEV)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arduino-platform:
[
"wippersnapper_feather_esp32c6_debug",
]
include:
- offset: "0x1000"
- offset: "0x0"
arduino-platform: "wippersnapper_feather_esp32c6_debug"
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: Checkout Board Definitions
uses: actions/checkout@v4
with:
repository: adafruit/Wippersnapper_Boards
path: ws-boards
- name: Install CI-Arduino
run: bash ci/actions_install.sh
- name: Install extra Arduino libraries
run: |
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
- 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: Install Dependencies
run: |
pip3 install esptool
- name: build ESP32 platforms
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
- name: Check artifacts
run: |
ls examples/wippersnapper_debug/build/*
- name: Rename build artifacts to reflect the platform name
run: |
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.elf wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.elf
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.map wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.map
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin
mv examples/wippersnapper_debug/build/*/wippersnapper_debug.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin
- name: Check boot_app0 file existence (esp32 built from core, not-source)
id: check_files
uses: andstor/file-existence-action@v3
with:
files: "/home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin"
- name: boot_app0 file from arduino-cli core
if: steps.check_files.outputs.files_exists == 'true'
run: mv /home/runner/.arduino15/packages/esp32/hardware/esp32/*/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin
- name: boot_app0 file from esp32 source bsp
if: steps.check_files.outputs.files_exists == 'false'
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin
- name: Get Board Flash Parameters
id: get_board_json
run: |
board_name=${{ matrix.arduino-platform }}
# Remove '_noota' suffix if present
board_name=${board_name%_noota}
# Remove '_debug' suffix if present
board_name=${board_name%_debug}
# Remove 'wippersnapper_' prefix if present
board_name=${board_name#wippersnapper_}
content=$(cat ws-boards/boards/${board_name//_/-}/definition.json)
{
echo 'boardJson<<EOF'
echo $content
echo EOF
} >> "$GITHUB_OUTPUT"
- name: Create combined binary using Esptool merge_bin
run: |
echo ${{ 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 \
--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 }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
0xe000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.boot_app0.bin \
0x10000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bin
- name: Zip build artifacts
run: |
zip -r wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.*
- name: upload build artifacts zip
uses: actions/upload-artifact@v4
with:
name: build-files-dev-${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}
path: |
wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.zip
merge-job-build-files:
name: Merge Artifacts for build-files
runs-on: ubuntu-latest
needs: [build-esp32sx-esptool, build-esp32sx, build-esp32, build-esp8266, build-samd, 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
merge-job2:
name: Merge Artifacts for build-files-dev
runs-on: ubuntu-latest
needs: [build-esp32sx-dev, build-esp32-dev]
steps:
- name: Merge Artifacts from Dev Builds
uses: actions/upload-artifact/merge@v4
with:
name: build-files-dev
pattern: build-files-dev-*
delete-merged: true
clang_and_doxy: clang_and_doxy:
name: 🔎Clang & Doxygen
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: needs:
[ [
@ -618,11 +911,10 @@ jobs:
build-esp32, build-esp32,
build-esp32sx, build-esp32sx,
build-esp8266, build-esp8266,
build-samd-non-fs,
build-rp2040, build-rp2040,
] ]
steps: steps:
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: "3.x" python-version: "3.x"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -630,12 +922,13 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
repository: adafruit/ci-arduino repository: adafruit/ci-arduino
ref: ci-wippersnapper
path: ci path: ci
- name: pre-install - name: pre-install
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

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

291
.github/workflows/release-offline.yml vendored Normal file
View file

@ -0,0 +1,291 @@
# 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
- offline-mode-*
pull_request:
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_offline_netiface.ino.uf2 wippersnapper.${{ matrix.arduino-platform }}.${{ env.WS_VERSION }}.uf2
mv examples/*/build/*/Wippersnapper_demo_offline_netiface.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_nonetiface.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

23
.gitignore vendored
View file

@ -39,13 +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/
# Test results
report.xml
# VSCode settings
.vscode/settings.json
CLAUDE.md

18
.vscode/settings.json vendored
View file

@ -1,9 +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
} }

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

@ -7,11 +7,9 @@
Adafruit.io WipperSnapper is a firmware designed to turn any Wi-Fi capable board into an Internet-of-Things (IoT) device. No code 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-S2, ESP32-C3, RP2040, 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).
@ -24,9 +22,9 @@ Pre-compiled binaries and UF2 files for supported hardware are provided on the [
|Platform| MCU(s) | |Platform| MCU(s) |
|--|--| |--|--|
|[ESP32-x](https://github.com/espressif/arduino-esp32)| ESP32, ESP32-S2, ESP32-S3, 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) | |[RP2](https://github.com/earlephilhower/arduino-pico)| RP2040/RP2350 MCU w/WiFi (i.e: Pico W) |
|[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}]}

Binary file not shown.

View file

@ -0,0 +1,2 @@

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

@ -1,36 +1,31 @@
// 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
// //
// This sketch is for devices which lack USB-MSD or LittleFS support such // This sketch is for devices which lack USB-MSD or LittleFS support such
// as the Arduino MKR WiFi 1010, Arduino Nano 33 IoT. // as the ESP32Dev for Wokwi Simulator
// //
// 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 // Brent Rubell for Adafruit Industries, 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"
#define WS_DEBUG // Enable debug output
/************************ Adafruit IO Config *******************************/ /************************ Adafruit IO Config *******************************/
// Visit io.adafruit.com if you need to create an account, // Visit io.adafruit.com if you need to create an account,
// or if you need your Adafruit IO key. // or if you need your Adafruit IO key.
#define IO_USERNAME "YOUR_AIO_USERNAME" #define IO_USERNAME "YOUR_AIO_USERNAME"
#define IO_KEY "YOUR_AIO_KEY" #define IO_KEY "YOUR_AIO_KEY"
#define IO_URL "io.adafruit.com"
#define IO_PORT 8883
/**************************** WiFi Config ***********************************/ /**************************** WiFi Config ***********************************/
#define WIFI_SSID "YOUR_WIFI_SSID" #define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASS "YOUR_WIFI_PASSWORD" #define WIFI_PASS "YOUR_WIFI_PASSWORD"
#include "Wippersnapper_Networking.h" ws_adapter_wifi wipper(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, IO_URL, IO_PORT);
Wippersnapper_WiFi wipper(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
void setup() { void setup() {
// Provisioning must occur prior to serial init. // Provisioning must occur prior to serial init.

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,2 @@

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

@ -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,24 @@
// Adafruit IO WipperSnapper - Offline Mode with Network Interface
// USE ONLY WITH DEVICES WITH A NETWORK ADAPTER LIKE ESP32-x
//
// 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"
ws_adapter_wifi wipper;
#define WS_DEBUG // Enable debug output!
void setup() {
Serial.begin(115200);
wipper.provision();
wipper.connect();
}
void loop() {
wipper.run();
}

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