“Connecting a 3.3V level output pin to a 5V level input pin works fine.”

“Connecting a 3.3V level output pin to a 5V level input pin works fine.” (http://jeelabs.org/2013/04/24/what-if-i-mix-3-3v-and-5v/)

Is this indeed true, when connecting a 3.3V RFduino to a strip of WS2812Bs? Has anyone tried it and can confirm it works?

Yes, this is how you can drive the ws2812 and friends from the 3.3v teensy 3

Yep, I am also driving them off of an atmega328 running at 3.3 w/ no issues.

Sweet. I wasn’t sure if level converters were necessary. And I guess any given (low drop out?) regulator will be good to run the power to the RFduino from the 5V supply.

One thing to keep an eye out for (mark and I were just talking about this, and I’ve hit this problem a couple of times).

If your 5v power supply is a bit dirty, and sometimes drifts above 5v, you can get weird glitching on the leds. My theory is that what is happening is that since the data pin signals are 3.3v output, as long as the WS2812 chips are getting 5v power, it can differentiate between high and low. However, if the WS2812 chips are getting, say, 5.25v power, it becomes a lot more difficult for it to catch those transitions (or reliably catch them).

The solution is probably either a level converter, which I haven’t tried yet, or play a variety of tricks that drop the input voltage to a bit below 5v. (My favorite at the moment is plugging the dirty 5v power supply into one of these - https://www.adafruit.com/products/1385 - which spits out about 4.75v when fed 5v).

Just an FYI :slight_smile:

Randomly - I believe the RFDuino is an STM32 - which I haven’t done support for yet, as an aside.

A “Nordic 32 bit ARM Cortex-M0”, apparently. Similar enough to the Teensy that it might work? I’ll give it a go and report back :slight_smile:

“~/Documents/Arduino/libraries/FastLED/controller.h:4: fatal error: avr/io.h: No such file or directory”

D’oh. What has to be done?

You’re trying to include avr/io.h (whether deliberately or from another included file) and the compiler can’t find it. Check your paths or move it where the compiler can find it.

It’s included by FastLED/controller.h. I think the problem is that the RFduino isn’t an AVR, so the avr/ subdir isn’t included in the system path when I have the RFduino board family selected in the Arduino IDE.

(There are some references in previous posts to the same issue, basically @Daniel_Garcia and @Mark_Kriegsman haven’t had the time to take a proper look at it yet. So I sits tight until then…)

What are you building in?

I need to guard the avr/io include - though that will just bring you to the “next” issue - no pin access definitions

This works fine for short distanced (wearables etc). Voltage loss due to wire resistance will cause glitches however. I spent a couple of very stressed days learning this before a major project.

The exact distance depends on wire gauge, but I’d use a voltage shifter for anything over say 5 feet.

I’ve done 20’+ over cat5 from a due (also 3.3v output.

Though I think I’m going to rework everything to use rs422 over distance.

All my WS281x projects are driving straight from uC pins, no level conversions. Never had an issue.