Go Down

Topic: Nano 33 BLE + Neopixel strip = failure (Read 830 times) previous topic - next topic

BigMike81

Nov 19, 2019, 05:59 pm Last Edit: Nov 28, 2019, 11:49 am by BigMike81
Hello,
I have my Nano 33 BLE setup according to following scheme and loaded with Adafruit RGBWstrandtest example sketch.



... and it doesn't work.. no compilation error what so ever.

When I replace Nano 33 with normal Nano, the same sketch works as expected.

What can be the issue here?

Thank you.

Klaus_K

Did you check the signal at the Neopixel? From what I read the timing seems to be critical. Maybe the clock is different between the two Nanos.

I first thought it was the voltage level but you added a level shifter. :)

BigMike81

Hello,

I do not have equipment for signal checking  :smiley-sad: but Neopixel library was ported to Nano 33's Nordic nRF52 chip, so it should work I guess...

Klaus_K

I compiled the RGBWstrandtest and run it on my Nano 33 BLE. I change the LED_PIN to 2 according your schematic and I did not see any signal out of that pin.

I checked the library files and it is a total mess. All the different supported platforms are in one file with many #ifdef. It is hard to see what is going on without knowing the file inside out.

There are defined(ARDUINO_NRF52_ADAFRUIT), defined(NRF52) and defined(NRF52_SERIES) statements and the Readme says Nordic nRF52 (Adafruit Feather nRF52), nRF51 (micro:bit) are supported. I am not sure if the library is generic enough so it can run on any nRF52 device. Maybe there is some more modification needed to support the Nano 33 BLE.

BigMike81

Thank you for your time.

In AdafruitNeoPixel.cpp file is few lines like this:
Code: [Select]
#if defined(ARDUINO_ARCH_NRF52840)

and here is link to their github where they added support for Nano 33 BLE and BLE Sense:
https://github.com/adafruit/Adafruit_NeoPixel/pull/209
so Nano 33 BLE should be fine

Maybe you have an old library?

Klaus_K

I downloaded the library from github, same result. I tried the StrandtestArduinoBLE and the Bluetooth part worked.

Then I tried the strandtest on the Arduino Nano 33 IoT (based on the SAMD and not nRF). I got a signal out of it immediately, but when I connected a Neopixelring the leds where not lit correctly. Looking at the oscilloscope you can clearly see the signal has a strong jitter from 700 to 800kHz. Which explains the behavior.

I suspect, getting the Neopixel signal jitter free is not easy with these fast processors. With BLE stacks running at the same time creating interrupts, this might be almost impossible. The library uses lots of inline assembly.

I do not believe the Nano 33 BLE was really tested. The example uses PIN 15, which can't be true.

I see three options

- wait and hope the support for the Neopixels will improve on the Nano 33
- use Dotstar LEDs which have a two-wire interface, making them easier to control
- use a cheap AVR 8 bit Arduino to drive the Neopixels and use the Nano 33 for the high level stuff like smart phone connection

I am sorry, I do not have better news.

BigMike81

I had prepared regular Nano + HM-10 bluetooth module for this project and then I found this board... I was so happy that I can save space and integrated IMU would be handy as well... Shame  ::)

I will look at Dotstar strips... I hope I will find RGBW one.


Thank you.

odensc

Hi - I was able to get the Adafruit_NeoPixel library working on my Nano 33 BLE Sense after a quick patch. Check out my PR and see if it works for you: https://github.com/adafruit/Adafruit_NeoPixel/pull/218

I wired up GND to the GND from the power supply + GND on the board, 5V to the power supply, then DI to D2 on the board.

Hope this is able to help someone else with the issue. I spent many hours going through forum threads and GitHub issues :)

BigMike81

Doesn't work for me and I already had Arduino Mbed Core updated to 1.1.3.

Thanks anyway.

Go Up