From 391a5075dd4ae07539036c02da786e46e800bd26 Mon Sep 17 00:00:00 2001 From: Chuck Stanski Date: Mon, 22 Sep 2025 10:12:04 -0400 Subject: [PATCH 1/2] Fixes for Arduino Nano 33 BLE. --- Adafruit_NeoPixel.cpp | 70 +------------------------------------------ Adafruit_NeoPixel.h | 9 ------ 2 files changed, 1 insertion(+), 78 deletions(-) diff --git a/Adafruit_NeoPixel.cpp b/Adafruit_NeoPixel.cpp index edb8eb4..ae1cbdc 100644 --- a/Adafruit_NeoPixel.cpp +++ b/Adafruit_NeoPixel.cpp @@ -1828,69 +1828,9 @@ void Adafruit_NeoPixel::show(void) { #elif defined(__arm__) -#if defined(TARGET_GIGA) || defined(TARGET_M4) - // Arduino GIGA ----------------------------------------------------------- - uint8_t *p = pixels, *end = p + numBytes, pix; - while (p < end) - { - pix = *p++; - for (int i = 7; i >= 0; i--) - { - // gpio_write(&gpio->gpio, 1); - gpio->write(1); - - // duty cycle determines bit value - // if (pix & 0x80) - if (bitRead(pix, i) == 0) - { - // one - // wait_ns(400); -> 192 cycles -#if defined(TARGET_GIGA) - for (int j = 0; j < 96; j++) -#else - for (int j = 0; j < 48; j++) -#endif - __NOP(); - - // gpio_write(&gpio->gpio, 0); - gpio->write(0); - - // wait_ns(850) -> 408 cycles -#if defined(TARGET_GIGA) - for (int j = 0; j < 204; j++) -#else - for (int j = 0; j < 102; j++) -#endif - __NOP(); - } - else - { - // zero - // wait_ns(800) -> 384 cycles -#if defined(TARGET_GIGA) - for (int j = 0; j < 192; j++) -#else - for (int j = 0; j < 96; j++) -#endif - __NOP(); - - gpio->write(0); - // gpio_write(&gpio->gpio, 0); - // wait_ns(450) -> 216 cycles -#if defined(TARGET_GIGA) - for (int j = 0; j < 108; j++) -#else - for (int j = 0; j < 54; j++) -#endif - __NOP(); - } - - // pix = pix << 1; // shift to next bit - } - } // ARM MCUs -- Teensy 3.0, 3.1, LC, Arduino Due, RP2040 ------------------- -#elif defined(ARDUINO_ARCH_RP2040) +#if defined(ARDUINO_ARCH_RP2040) // Use PIO rp2040Show(pixels, numBytes); @@ -3413,14 +3353,6 @@ void Adafruit_NeoPixel::setPin(int16_t p) { } #endif #endif -#if defined(TARGET_GIGA) || defined(TARGET_M4) - gpio = digitalPinToGpio(pin); - if (gpio == NULL) - { - gpio = new mbed::DigitalInOut(digitalPinToPinName(pin), PIN_OUTPUT, PullNone, 0); - digitalPinToGpio(pin) = gpio; - } -#endif } /*! diff --git a/Adafruit_NeoPixel.h b/Adafruit_NeoPixel.h index d741372..39c8b0f 100644 --- a/Adafruit_NeoPixel.h +++ b/Adafruit_NeoPixel.h @@ -49,11 +49,6 @@ #include #endif -#if defined(TARGET_GIGA) || defined(TARGET_M4) -#include "mbed.h" -#include "pinDefinitions.h" -#endif - #if defined(ARDUINO_ARCH_RP2040) #include #include "hardware/pio.h" @@ -422,10 +417,6 @@ class Adafruit_NeoPixel { uint32_t gpioPin; ///< Output GPIO PIN #endif -#if defined(TARGET_GIGA) || defined(TARGET_M4) - mbed::DigitalInOut *gpio; -#endif - }; #endif // ADAFRUIT_NEOPIXEL_H From 3647d93041f9a3d602433b939066d8365684b7ad Mon Sep 17 00:00:00 2001 From: Chuck Stanski Date: Mon, 29 Sep 2025 13:28:20 -0400 Subject: [PATCH 2/2] Fixed Arduino GIGA R1 build. --- Adafruit_NeoPixel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Adafruit_NeoPixel.cpp b/Adafruit_NeoPixel.cpp index ae1cbdc..c44ef10 100644 --- a/Adafruit_NeoPixel.cpp +++ b/Adafruit_NeoPixel.cpp @@ -3083,9 +3083,9 @@ if(is800KHz) { #define ARM_DWT_CTRL_CYCCNTENA (1 << 0) // Enable cycle count #define ARM_DWT_CYCCNT (*(volatile uint32_t *)0xE0001004) // Cycle count register -#if defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_GIGA) +#if defined(ARDUINO_PORTENTA_H7_M7) || (defined(ARDUINO_ARCH_MBED_GIGA) && defined(TARGET_M7)) #define F_CPU 480000000 -#elif defined(ARDUINO_PORTENTA_H7_M4) +#elif defined(ARDUINO_PORTENTA_H7_M4) || (defined(ARDUINO_ARCH_MBED_GIGA) && defined(TARGET_M4)) #define F_CPU 240000000 #else #define F_CPU 48000000