From 654025b06d6ca4112f6ffaea9e3bdf39609c806c Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 19 Sep 2025 13:49:11 +0100 Subject: [PATCH 1/5] fix(fruit jam): correct Arduino board define --- platformio.ini | 12 +++++++++++- src/Wippersnapper_Networking.h | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index afb209916..16415956c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -669,6 +669,16 @@ build_flags = ; -DPIO_FRAMEWORK_ARDUINO_ENABLE_IPV6 [env:adafruit_fruitjam] +extends = common:arduinopico +board = adafruit_fruitjam +board_build.filesystem_size = 8m +lib_ignore = WiFi, WiFi101, Adafruit Zero DMA Library +build_flags = -DUSE_TINYUSB -DARDUINO_ADAFRUIT_FRUITJAM_RP2350 + +[env:adafruit_fruitjam_debug] +extends = common:arduinopico +build_type = debug board = adafruit_fruitjam +board_build.filesystem_size = 8m lib_ignore = WiFi, WiFi101, Adafruit Zero DMA Library -build_flags = -DUSE_TINYUSB -DADAFRUIT_FRUITJAM_RP2350 \ No newline at end of file +build_flags = -DUSE_TINYUSB -DARDUINO_ADAFRUIT_FRUITJAM_RP2350 \ No newline at end of file diff --git a/src/Wippersnapper_Networking.h b/src/Wippersnapper_Networking.h index 41ec1a607..69d8fa181 100644 --- a/src/Wippersnapper_Networking.h +++ b/src/Wippersnapper_Networking.h @@ -24,7 +24,7 @@ #if defined(ADAFRUIT_METRO_M4_EXPRESS) || \ defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || defined(ADAFRUIT_PYPORTAL) || \ defined(ADAFRUIT_PYPORTAL_M4_TITANO) || defined(USE_AIRLIFT) || \ - defined(ADAFRUIT_FRUITJAM_RP2350) + defined(ARDUINO_ADAFRUIT_FRUITJAM_RP2350) #include "network_interfaces/Wippersnapper_AIRLIFT.h" /** Nina-FW (adafruit fork) networking class */ typedef Wippersnapper_AIRLIFT Wippersnapper_WiFi; From c2193ae57c1c47173df07e1b5013f08f57830296 Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 19 Sep 2025 13:49:20 +0100 Subject: [PATCH 2/5] chore(version): bump to 1.0.0-beta.115 --- library.properties | 2 +- src/Wippersnapper.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library.properties b/library.properties index 111ccb064..f25473604 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Adafruit WipperSnapper -version=1.0.0-beta.114 +version=1.0.0-beta.115 author=Adafruit maintainer=Adafruit sentence=Arduino application for Adafruit.io WipperSnapper diff --git a/src/Wippersnapper.h b/src/Wippersnapper.h index 338f0365f..45889863a 100644 --- a/src/Wippersnapper.h +++ b/src/Wippersnapper.h @@ -144,7 +144,7 @@ #endif #define WS_VERSION \ - "1.0.0-beta.114" ///< WipperSnapper app. version (semver-formatted) + "1.0.0-beta.115" ///< WipperSnapper app. version (semver-formatted) // Reserved Adafruit IO MQTT topics #define TOPIC_IO_THROTTLE "/throttle" ///< Adafruit IO Throttle MQTT Topic From caa37a31d1e2f578513dcdd4db20924ad4b59697 Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 19 Sep 2025 13:55:13 +0100 Subject: [PATCH 3/5] fix(ci): add WiFiNINA for fruit jam --- .github/workflows/build-clang-doxy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index b210e5599..f2f99b335 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -664,6 +664,7 @@ jobs: # manually install OneWireNG/TempControlLib for OneWireNg (RP2040 Supported OneWire w/backwards compat.) - name: Install extra Arduino libraries run: | + git clone --quiet https://github.com/adafruit/WiFiNINA.git /home/runner/Arduino/libraries/WiFiNINA 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 From 120ee47b6a00382dd5ce54fa716d86911bc28957 Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 19 Sep 2025 15:25:36 +0100 Subject: [PATCH 4/5] fix(fruit jam): final define for FS/bootFS. --- src/provisioning/tinyusb/Wippersnapper_FS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index 658d8df46..de1f2a550 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -29,7 +29,7 @@ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_REVTFT) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) || \ defined(ARDUINO_XIAO_ESP32S3) || \ - defined(ADAFRUIT_FRUITJAM_RP2350) + defined(ARDUINO_ADAFRUIT_FRUITJAM_RP2350) #include "Wippersnapper_FS.h" #include "print_dependencies.h" From b1cdba179f63dd09c06b33c6c89366bba193537a Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 19 Sep 2025 15:27:04 +0100 Subject: [PATCH 5/5] add(airlift): report FW version in boot log --- src/Wippersnapper.h | 9 +++++---- src/network_interfaces/Wippersnapper_AIRLIFT.h | 5 ++++- src/provisioning/tinyusb/Wippersnapper_FS.cpp | 7 +++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Wippersnapper.h b/src/Wippersnapper.h index 45889863a..0c7458ab5 100644 --- a/src/Wippersnapper.h +++ b/src/Wippersnapper.h @@ -372,10 +372,11 @@ class Wippersnapper { ws_uart *_uartComponent; ///< Instance of UART class // TODO: does this really need to be global? - uint8_t _macAddr[6]; /*!< Unique network iface identifier */ - char sUID[13]; /*!< Unique network iface identifier */ - const char *_boardId; /*!< Adafruit IO+ board string */ - Adafruit_MQTT *_mqtt; /*!< Reference to Adafruit_MQTT, _mqtt. */ + uint8_t _macAddr[6]; /*!< Unique network iface identifier */ + char sUID[13]; /*!< Unique network iface identifier */ + const char *_airlift_version; /*!< AirLift Firmware version */ + const char *_boardId; /*!< Adafruit IO+ board string */ + Adafruit_MQTT *_mqtt; /*!< Reference to Adafruit_MQTT, _mqtt. */ secretsConfig _config; /*!< Wippersnapper secrets.json as a struct. */ networkConfig _multiNetworks[3]; /*!< Wippersnapper networks as structs. */ diff --git a/src/network_interfaces/Wippersnapper_AIRLIFT.h b/src/network_interfaces/Wippersnapper_AIRLIFT.h index c62eaf7ad..081b0692f 100644 --- a/src/network_interfaces/Wippersnapper_AIRLIFT.h +++ b/src/network_interfaces/Wippersnapper_AIRLIFT.h @@ -195,7 +195,7 @@ class Wippersnapper_AIRLIFT : public Wippersnapper { */ /********************************************************/ bool firmwareCheck() { - _fv = WiFi.firmwareVersion(); + WS._airlift_version = _fv = WiFi.firmwareVersion(); return compareVersions(_fv, NINAFWVER); } @@ -242,6 +242,9 @@ class Wippersnapper_AIRLIFT : public Wippersnapper { */ /********************************************************/ void getMacAddr() { + if (_fv == "0.0.1") { + (void)firmwareCheck(); // ensure _fv is set in bootlog + } byte mac[6] = {0}; WiFi.macAddress(mac); memcpy(WS._macAddr, mac, sizeof(mac)); diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index de1f2a550..2b312bda8 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -296,6 +296,13 @@ bool Wippersnapper_FS::createBootFile() { bootFile.print("Board ID: "); bootFile.println(BOARD_ID); +#if defined(ADAFRUIT_PYPORTAL_M4_TITANO) || defined(USE_AIRLIFT) || \ + defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || defined(ADAFRUIT_PYPORTAL) || \ + defined(ARDUINO_ADAFRUIT_FRUITJAM_RP2350) + bootFile.print("AirLift FW Revision: "); + bootFile.println(WS._airlift_version); +#endif + sprintf(sMAC, "%02X:%02X:%02X:%02X:%02X:%02X", WS._macAddr[0], WS._macAddr[1], WS._macAddr[2], WS._macAddr[3], WS._macAddr[4], WS._macAddr[5]);