Easiest way to wire the Photon to Neopixels

I am really confused on how to connect the photon to neopixels strip (60leds). I heard that since the output of the photon is 3.3v, I will need a way to make it 5v for the neopixels. How can I make this happen.

Also, I have 2 versions of the neopixels: WS2812S and WS2812B will any of these work?

We have used the NeoPixel strips with no issue powering them from the CORE/PHOTON’s 3.3v output , but I must admit that this was for a 24 LED ring only. Using 3.3v enabled the NeoPixel’s data line to be directly connected to a digital output on the CORE/PHOTON without any level shifting.

Not so sure that you could get away with this for 60 LED’s.

External +5V -----> Neopixel +V

GND ------> Core GND and Neopixel GND

Neopixel Data pin ----> Core GPIO

Thanks for that @kennethlimcp, had never tried that arrangement because I did not think it would work because of the Core/Photon 3v3 logic. So, that’s good news for @nimonster and others.

See this: Twitter Torch - Twitter messages in a glass tube :smiley:

1 Like

I have made a lamp with a NeoPixel strip (60 LEDs) and Photon
I used one power supply (5V 3A) for Photon and the strip, wired positive to VIN (Photon) and positive to 5V (Strip), negative to GND (Photon and Strip)

Maybe I post tutorial next week

Sorry to bring up an old thread but just to clarify, I can power the Photon via the Vin &Grd via 5 volts PSU, is that correct. I am going to make a neopixel mood lamp with only 3-4 LEDs so I can power the neopixel via this one supply as well.?? Thanks

Sounds ok :wink:

Sorry for bringing the subject up (again), but further up @kennethlimcp suggested that it is possible to drive the Neopixel data input directly from the Core GPIO pin when powering the leds and micro controller with 5V. I am assuming that pin 6 on a Core is not much different than pin 6 on a Photon and that they both output at 3.3V. However this contradicts Adafruit’s best practice were they say:

“NeoPixels powered by 5v require a 5V data signal. If using a 3.3V microcontroller you must use a logic level shifter such as a 74AHCT125 or 74HCT245. (If you are powering your NeoPixels with 3.7v like from a LiPoly, a 3.3v data signal is OK)”

https://learn.adafruit.com/adafruit-neopixel-uberguide/best-practices

Since I do not have a 74AHCT125 or 74HCT245 readily available, can I safely drive a Neopixel device directly from a Photon’s pin 6 when powering both with 5V or will I end up frying something? Has anyone tried this?

While using a logic level shifter (of any kind - see bellow) is advisable, well manufactured NeoPixels can usually cope with the 3.3V data as the LOW/HIGH threshold sits somewhere round about 3V.
But lesser quality LEDs tend to have higher thresholds an hence won’t reliably recognise 3.3V as HIGH.

As long the LEDs’ power rails are connected to Vin and GND (or external 5V supply with common ground) you won’t fry the GPIO on the Photon as the current draw of the NeoPixel data pin is neglible and no voltage is coming from there either. But you might see erronous colours on your LEDs when they are not happy with the level.
But you’ll also not need a fancy level shifter chip to do the job. A simple transistor controlled via the GPIO switching 5V to the data pin will do.

1 Like

I am a bit rusty with transistors. Would a circuit like the one illustrated here work with a 2N2222A (that’s what I have) and the 3V3 pin as the source of the 3.3 volts for the circuit? I understand that the 3V3 pin is limited to 100mA but I don’t think there would be much draw from that pin, irrespective of how many neopixels are connected (they would draw power directly from the 5V PSU).

That should work although if you don’t mind inverting the output signal I personally prefer this way

1 Like

The original circuit worked. Wasn’t sure if neopixels would work if the signal was inverted. Thanks though!

A second stage of the same thing can be used to correct polarity.

1 Like

What pull up resistor would you recommend?

10k should be fine.

1 Like

I also wanted a easy way to wire up Neopixels to a Photon. I’ve created a few different Photon / Neopixel Shields with a built in logic level shift. It’s basically the same shield with a couple options for protection diode or fuse. Neither of those items are really needed, but I added them anyway. The github link below has another link to a BOM via Mouser.com - but the BOM is super simple so you should be able to find components anywhere easily. Boards can be ordered via OSHPark - or the Eagle files are on the Github link too.

https://oshpark.com/profiles/bwshockley

1 Like