From 13b149625e208442c60738ac062f557356c4be31 Mon Sep 17 00:00:00 2001 From: brentru Date: Wed, 26 Feb 2025 12:04:04 -0500 Subject: [PATCH] Add Adafruit RP2040 Adalogger to PIO and codebase --- .gitignore | 8 +++++- .vscode/settings.json | 5 +++- platformio.ini | 15 ++++++++--- src/Wippersnapper_Boards.h | 6 +++++ src/Wippersnapper_demo.ino | 4 +-- src/adapters/offline/ws_offline_pico.h | 8 +++--- src/provisioning/tinyusb/Wippersnapper_FS.cpp | 27 ++++++++++--------- src/ws_adapters.h | 4 ++- 8 files changed, 53 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index fe3b7c17e..b21993810 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,12 @@ tests/__pycache__/ # These sometimes contain credentials, don't commit them! src/Wippersnapper_demo_wokwi.ino data/ +examples/Wippersnapper_demo_offline/.theia/ +examples/Wippersnapper_demo_offline/.vscode/ +examples/Wippersnapper_demo_offline/build/ # Test results -report.xml \ No newline at end of file +report.xml + +# VSCode settings +.vscode/settings.json \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index d44099d34..218d4eca1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,7 +12,10 @@ "span": "cpp", "*.tcc": "cpp", "list": "cpp", - "unordered_set": "cpp" + "unordered_set": "cpp", + "format": "cpp", + "text_encoding": "cpp", + "regex": "cpp" }, "C_Cpp.dimInactiveRegions": false, "dotnet.defaultSolution": "disable", diff --git a/platformio.ini b/platformio.ini index 5bc601e67..a903e3296 100644 --- a/platformio.ini +++ b/platformio.ini @@ -410,6 +410,15 @@ build_flags = -DUSE_TINYUSB=1 -DADAFRUIT_METRO_M4_AIRLIFT_LITE upload_port = /dev/cu.usbmodem1201 +[env:raspberrypi_pico] +platform = https://github.com/maxgerhardt/platform-raspberrypi.git#develop +board = rpipico +platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git +board_build.filesystem_size = 0.5m +build_flags = -DUSE_TINYUSB +; Once https://github.com/platformio/platformio-core > 6.1.11 these can be removed +lib_ignore = WiFiNINA, WiFi101, Adafruit Zero DMA Library + [env:raspberrypi_pico_2] platform = https://github.com/maxgerhardt/platform-raspberrypi.git#develop board = rpipico2 @@ -419,12 +428,12 @@ build_flags = -DUSE_TINYUSB -DBUILD_OFFLINE_ONLY ; Once https://github.com/platformio/platformio-core > 6.1.11 these can be removed lib_ignore = WiFiNINA, WiFi101, Adafruit Zero DMA Library -[env:raspberrypi_pico] +[env:adafruit_feather_adalogger] platform = https://github.com/maxgerhardt/platform-raspberrypi.git#develop -board = rpipico +board = adafruit_feather_adalogger platform_packages = framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git board_build.filesystem_size = 0.5m -build_flags = -DUSE_TINYUSB +build_flags = -DUSE_TINYUSB -DBUILD_OFFLINE_ONLY ; Once https://github.com/platformio/platformio-core > 6.1.11 these can be removed lib_ignore = WiFiNINA, WiFi101, Adafruit Zero DMA Library diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index 94bf8fb19..65e3ffe0d 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -202,6 +202,12 @@ #define USE_TINYUSB #define USE_STATUS_LED #define STATUS_LED_PIN LED_BUILTIN +#elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040_ADALOGGER) +#define BOARD_ID "feather-rp2040-adalogger" +#define USE_TINYUSB +#define USE_STATUS_NEOPIXEL +#define STATUS_NEOPIXEL_PIN PIN_NEOPIXEL +#define STATUS_NEOPIXEL_NUM 1 #else #warning "Board type not identified within Wippersnapper_Boards.h!" #endif diff --git a/src/Wippersnapper_demo.ino b/src/Wippersnapper_demo.ino index 455a9399c..ced2a4d76 100644 --- a/src/Wippersnapper_demo.ino +++ b/src/Wippersnapper_demo.ino @@ -9,9 +9,9 @@ // All text above must be included in any redistribution. #include "ws_adapters.h" -ws_adapter_wifi wipper; +//ws_adapter_wifi wipper; // Uncomment the following line to use the offline adapter for Pico -// ws_adapter_offline wipper; +ws_adapter_offline wipper; #define WS_DEBUG // Enable debug output! diff --git a/src/adapters/offline/ws_offline_pico.h b/src/adapters/offline/ws_offline_pico.h index 4c2ce3bcb..db1dc5f0c 100644 --- a/src/adapters/offline/ws_offline_pico.h +++ b/src/adapters/offline/ws_offline_pico.h @@ -16,7 +16,9 @@ #ifndef WS_OFFLINE_PICO #define WS_OFFLINE_PICO -#if defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_2) +#if defined(ARDUINO_RASPBERRY_PI_PICO) || \ + defined(ARDUINO_RASPBERRY_PI_PICO_2) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_RP2040_ADALOGGER) #define PICO_CONNECT_TIMEOUT_MS 20000 /*!< Connection timeout (in ms) */ #define PICO_CONNECT_RETRY_DELAY_MS 200 /*!< delay time between retries. */ @@ -170,5 +172,5 @@ class ws_offline_pico : public Wippersnapper_V2 { } }; -#endif // RASPBERRY_PI_PICO_W -#endif // WS_NONET_PICO_H \ No newline at end of file +#endif // RASPBERRY_PI_PICO +#endif // WS_OFFLINE_PICO \ No newline at end of file diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index 4642027c5..de0a79bb5 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -26,9 +26,10 @@ defined(ARDUINO_RASPBERRY_PI_PICO_W) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_REVTFT) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_REVTFT) || \ - defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) || \ - defined(ARDUINO_RASPBERRY_PI_PICO) || \ - defined(ARDUINO_RASPBERRY_PI_PICO_2) + defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) || \ + defined(ARDUINO_RASPBERRY_PI_PICO) || \ + defined(ARDUINO_RASPBERRY_PI_PICO_2) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_RP2040_ADALOGGER) #include "Wippersnapper_FS.h" // On-board external flash (QSPI or SPI) macros should already // defined in your board variant if supported @@ -174,7 +175,7 @@ Wippersnapper_FS::~Wippersnapper_FS() { config.json file. */ /**************************************************************************/ -void Wippersnapper_FS::GetSDCSPin() { +void Wippersnapper_FS::GetSDCSPin() { File32 file_cfg; DeserializationError error; // Attempt to open and deserialize the config.json file @@ -554,16 +555,16 @@ void Wippersnapper_FS::fsHalt(String msg) { */ /**************************************************************************/ void Wippersnapper_FS::fsHalt(String msg, ws_led_status_t ledStatusColor) { - TinyUSBDevice.attach(); - delay(500); - statusLEDSolid(ledStatusColor); - while (1) { - WS_DEBUG_PRINT("Execution Halted: "); - WS_DEBUG_PRINTLN(msg.c_str()); - delay(5000); - yield(); - } + TinyUSBDevice.attach(); + delay(500); + statusLEDSolid(ledStatusColor); + while (1) { + WS_DEBUG_PRINT("Execution Halted: "); + WS_DEBUG_PRINTLN(msg.c_str()); + delay(5000); + yield(); } +} #ifdef ARDUINO_FUNHOUSE_ESP32S2 /**************************************************************************/ diff --git a/src/ws_adapters.h b/src/ws_adapters.h index 4433a9c50..eb9930ee5 100644 --- a/src/ws_adapters.h +++ b/src/ws_adapters.h @@ -43,7 +43,9 @@ typedef ws_wifi_ninafw ws_adapter_wifi; /** * The following are adapters for use without networking functionality. */ -#elif defined(ARDUINO_RASPBERRY_PI_PICO_2) || defined(ARDUINO_RASPBERRY_PI_PICO) +#elif defined(ARDUINO_RASPBERRY_PI_PICO_2) || \ + defined(ARDUINO_RASPBERRY_PI_PICO) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_RP2040_ADALOGGER) #include "adapters/offline/ws_offline_pico.h" typedef ws_offline_pico ws_adapter_offline; #else