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.
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 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.
Dear all, I had a similar problem but with BigMike81's schematics I managed to have my Nano BLE 33 sense working nicely with my oled strip. I currently have one problem which I do not know how to solve. When I unplug the arduino, the OLED strip (which is powered with a 5V lipo battery) turns on (random pattern, every time different) and I have to unplug the OLED strip and plug it back from the 5 volt battery to turn it off. How can I solve this? I though of a MOSFET but I was wondering if there is another solution without using any additional component.
You could try a pull-up/down resistor on the data line. Check which is the standby state of your LED strips data signal. Choose a large enough resistor to avoid overpowering the I/O pin. I would start with 10k. With a smaller resistor the immunity will get better but the data line will stop working at some point when the I/O pin can not overwrite the pull.
You can also try to manage the power failure. First make sure Brown-Out is enabled.
The nRF52840 datasheet states there is a Power-fail comparator that could be used to prepare the system. You will get an interrupt where you could shut down the system. This would need some experimenting. You could try to disable everything except the data pin and drive that LOW/HIGH, then put the system to sleep or System OFF. This way the power will discharge slower but in a controlled way. Right now you do not know what you sketch is doing when you pull the plug.
thank you for your reply. I tried to put the resistor, but still the same problem.
Regarding your second option, I think I cannot get it... can you give me (if you have time) some more details?
ArdLorenzo:
Regarding your second option, I think I cannot get it... can you give me (if you have time) some more details?
The idea was to set the Arduino into a known state when the power goes down. The brown-out circuit will keep the Arduino in reset when the voltage is below the voltage required for safe operation.
The power-fail voltage is above the brown-out voltage but below normal operating voltage. When the voltage drops below the power fail voltage you have some time to execute a few instructions that can change the power usage of your circuit and therefore influence the noise the circuit makes.
But that was more for the case you could not add a resistor, as an attempt to keep the pin to the LED strip from creating noise. Now, that the resistor does not work the noise seems to come from somewhere else.
thank you for your answer. I got it, but no, I do not have an oscilloscope.
However, I tried (for my curiosity) to run the Neopixel using the 3.3 volt line and it work and I am considering of using it like this. Do you think this can damage it? It seems to work nicely...
ArdLorenzo:
However, I tried (for my curiosity) to run the Neopixel using the 3.3 volt line and it work and I am considering of using it like this. Do you think this can damage it? It seems to work nicely...
The general advice is, you should not use devices outside the manufacturers datasheet ratings.
On the other side manufacturer do not cover all use cases in their datasheet and allow some customers to use the device outside the datasheet ratings under very specific conditions for instance higher temperatures where some parameters are not as accurate and the devices have a shorter lifetime.
So there is some room for experimentation. Under-voltage tends make devices work less reliable. If it works and does not pose a risk other than your personal fun LED not lighting, I do not think you need to worry. For professional uses this is a question for datasheet and the manufacturer.