diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index 0279e6eab..4c78a076c 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -12,14 +12,15 @@ on: jobs: build-esp32s2: - name: Build WipperSnapper ESP32-S2 + name: Build WipperSnapper ESP32-S2, ESP32-S3 runs-on: ubuntu-latest strategy: fail-fast: false matrix: arduino-platform: ["funhouse", "magtag", "metroesp32s2", "feather_esp32s2", - "qtpy_esp32s2", "feather_esp32s2_tft"] + "qtpy_esp32s2", "feather_esp32s2_tft", + "feather_esp32s3"] steps: - uses: actions/setup-python@v1 with: diff --git a/examples/Wippersnapper_NoFS/.feather_esp32s3.test.skip b/examples/Wippersnapper_NoFS/.feather_esp32s3.test.skip new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/Wippersnapper_NoFS/.feather_esp32s3.test.skip @@ -0,0 +1 @@ + diff --git a/examples/Wippersnapper_demo/.feather_esp32s3.generate b/examples/Wippersnapper_demo/.feather_esp32s3.generate new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/Wippersnapper_demo/.feather_esp32s3.generate @@ -0,0 +1 @@ + diff --git a/examples/Wippersnapper_demo/Wippersnapper_demo.ino b/examples/Wippersnapper_demo/Wippersnapper_demo.ino index 6eb41d439..489a3d96c 100644 --- a/examples/Wippersnapper_demo/Wippersnapper_demo.ino +++ b/examples/Wippersnapper_demo/Wippersnapper_demo.ino @@ -9,7 +9,7 @@ // Please support Adafruit and open source hardware by purchasing // products from Adafruit! // -// Brent Rubell for Adafruit Industries, 2021 +// Brent Rubell for Adafruit Industries, 2021-2022 // // All text above must be included in any redistribution. diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index a0b158816..21e7ca395 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -67,6 +67,13 @@ #define STATUS_NEOPIXEL_PIN 33 #define STATUS_NEOPIXEL_NUM 1 #define PIN_I2C_POWER_INVERTED 7 +#elif defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) +#define BOARD_ID "adafruit-feather-esp32s3" +#define USE_TINYUSB +#define USE_STATUS_NEOPIXEL +#define NEEDS_STATUS_NEOPIXEL_POWER +#define STATUS_NEOPIXEL_PIN PIN_NEOPIXEL +#define STATUS_NEOPIXEL_NUM NEOPIXEL_NUM #elif defined(ARDUINO_ADAFRUIT_QTPY_ESP32S2) #define BOARD_ID "adafruit-qtpy-esp32s2" #define USE_TINYUSB diff --git a/src/components/i2c/WipperSnapper_I2C.cpp b/src/components/i2c/WipperSnapper_I2C.cpp index 940800262..54a00ab16 100644 --- a/src/components/i2c/WipperSnapper_I2C.cpp +++ b/src/components/i2c/WipperSnapper_I2C.cpp @@ -35,7 +35,8 @@ WipperSnapper_Component_I2C::WipperSnapper_Component_I2C( WS_DEBUG_PRINT("\tFrequency (Hz): "); WS_DEBUG_PRINTLN(msgInitRequest->i2c_frequency); -#if defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2) +#if defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) // turn on the I2C power by setting pin to opposite of 'rest state' pinMode(PIN_I2C_POWER, INPUT); delay(1); diff --git a/src/components/statusLED/Wippersnapper_StatusLED.cpp b/src/components/statusLED/Wippersnapper_StatusLED.cpp index 3f3ee593f..18afc87e6 100644 --- a/src/components/statusLED/Wippersnapper_StatusLED.cpp +++ b/src/components/statusLED/Wippersnapper_StatusLED.cpp @@ -52,7 +52,8 @@ bool Wippersnapper::statusLEDInit() { pinMode(NEOPIXEL_POWER, OUTPUT); #if defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S2) || \ - defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) digitalWrite(NEOPIXEL_POWER, HIGH); #else digitalWrite(NEOPIXEL_POWER, LOW); diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index 1ffd291c1..9647197f3 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -7,7 +7,7 @@ * please support Adafruit and open-source hardware by purchasing * products from Adafruit! * - * Copyright (c) Brent Rubell 2021 for Adafruit Industries. + * Copyright (c) Brent Rubell 2022 for Adafruit Industries. * * BSD license, all text here must be included in any redistribution. * @@ -17,7 +17,8 @@ defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || defined(ADAFRUIT_PYPORTAL) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S2) || \ - defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) #include "Wippersnapper_FS.h" // On-board external flash (QSPI or SPI) macros should already // defined in your board variant if supported @@ -28,7 +29,7 @@ Adafruit_FlashTransport_QSPI flashTransport; #elif defined(EXTERNAL_FLASH_USE_SPI) Adafruit_FlashTransport_SPI flashTransport(EXTERNAL_FLASH_USE_CS, EXTERNAL_FLASH_USE_SPI); -#elif CONFIG_IDF_TARGET_ESP32S2 +#elif defined(ARDUINO_ARCH_ESP32) // ESP32-S2 uses same flash device that stores code. // Therefore there is no need to specify the SPI and SS Adafruit_FlashTransport_ESP32 flashTransport; @@ -300,7 +301,8 @@ void Wippersnapper_FS::createConfigFileSkel() { defined(ARDUINO_FUNHOUSE_ESP32S2) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S2) || \ - defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) secretsFile.print("HERE\",\n\t\"network_type_wifi_native\":{\n\t\t\"network_" "ssid\":\"YOUR_WIFI_SSID_"); #elif defined(ADAFRUIT_PYPORTAL) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE)