Ws2812b neopixel - RPi logic level conversion

Hey peoples, I followed the tutorial and wired up the conversion, but my neopixel will not light up, I’ve tried troubleshooting with a multimeter and found some confusing results, the LEDs are being supplied with around 3 volts inconsistently, I verified the supply coming into the board is a steady 5v.
The data in is also reading volts around 1.5 shifting around with the effects.

I may be able to fiddle with wires and my multimeter but I honestly have no clue what I’m doing, why the board isn’t just sending the 5v up the rail to send it to the led strip, so I’d appreciate help to get this working.

this strip will be running lightshowpi to react to live audio in from my laptop, while another pi will be running midi from my piano as an led visualiser (showing notes as I play them) so it should look awesome… When it works.
Here’s some pics, though the colour coding on jumper leads isn’t consistent.


So I know the pictures don’t help decipher the mess, so from the RPi we have 3.3v orange, ground green and data yellow. The top rail 3.3v is connected via red to the llc low voltage input, the ground via black, brown to the left connecting both rails grounds.
Across the bottom is 5v into rail via red, ground via grey, high voltage ground is blue, llc hv is orange, data is burgundy (or maroon maybe) led ground is blue, led 5v (ideally) is green.
So I hope that helps verify I didn’t do a silly with the wiring, I was thinking the LEDs are a dud but the llc does seem to be doing something weird, my 5v supply seems to be coming out 3.3 or just 3?i definitely don’t have the chip reversed.

It’s hard to see from your photos but it looks like your trying to power the LED’s from your Raspberry Pi?

The Neopixels (ws2812b pixels) pull around 60mA each when white. If you have a string of 100 (I’m assuming that’s the reel in the corner of the photo) that adds up to 6 amps which is way more than the Pi can handle. Your USB 2 connection only has about 1 amp left after powering the Pi Zero shown so you need to power them from a separate power supply.

Adafruit has a instructions on using Neopixels here:

If you get really hooked on RGB LED lighting and want a lot more information, especially for Christmas lights, head over to AusChristmasLighting and have a look at their Wiki pages: https://auschristmaslighting.com/

Be warned that if you start down the path of using Neopixels for Christmas lights you’ll have to spend weeks putting up your lights every year like I have to. :slight_smile:

1 Like

Hey, thanks for your reply. I mentioned I have a 5v supply coming into the board, it’s 3A. Connected on the bottom left as with the tutorial diagram.
I’ll check out adafruits instructions, though I’ve got the feel from forum posts that some ws2812s will work straight with the pi, but cheap Chinese ones will likely require the logic level conversion.

some multimeter measurements that might make more sense to others…

PSU in reading 5v, Rpi 3.3v out is reading as around 2.4 0.o (it’s definitely in the first pin, which im told is 3.3v out and ive read it as such before, i cant seem to get that result now.
Data into LLC is reading around 0.5V, fluctuating with the effects.

LED 5v in is reading at 2.7v… somehow. I really dont get this one, the rail gets 5v from the psu, the LLC HV is also connected to the rail so I would guess its actually lowering the voltage somehow?

Overall i’m just not getting many results that seem to make sense, mostly the Rpi 2.4v out and that somehow becoming the voltage the led strip is receiving.

aand If I try wiring the PSU directly to the led strip, I get a reading of 0.4 volts…
Ok, so first mystery solved. hopefully someone gets a laugh out of this and it informs just how much of a goddamn newb I am, so I realised I had assumed the psu negative wire was the one with dashes on it, and I’d confused the reading as negative volts. So I’m thinking maybe everything will work if the 5v supply is actually running through the positive rail rather than the ground…
Have i destroyed every bit of equipment i connected or what? XD

Hi Tallis,

I started to reply to your post yesterday, got distracted, then realised from what you had provided it was a little hard to provide help. I looked at the level converter you are using and the Tutorial and how the LEDs work. From the pics it looks like you have it right but I am not 100% sure.

Your last post asks ‘have I destroyed every bit of equipment’. When you think that, it is time to stop what you are doing with the project, disconnect every thing, and find what works and what does not.

A number of questions.
Is the Pi Zero still working ?
What is the voltage on the 5V and 3.3V pins on the header when nothing is connected to them ?
Is the 5V supply, you are using, ok ? Measure its output not connected to anything.
Is it a DC supply ?
If the Pi zero is working ok, is the GPIO pin still ok ? Write a program to set the GPIO as an output, then set it high and low and measure the volts on the pin. Then connect the GPIO pin to a single LED through a resistor. (NOT an RGB LED, just a normal 2 pin LED). And see if it turns on and off when you set the pin high or low. Use a 1K resistor, current out of the pin would then be around 3mA. Enough to light the LED and confirm the pin can still drive a load.

From what you have said in measuring voltages, something is definitely wrong and something is drawing too much current. The 3.3V pin on the Pi Zero can only supply 50mA. If its measuring 2.4V it is being loaded too much. ‘LED 5V in is reading at 2.7V’, this means the 5V supply is being loaded too much. If you are trying to drive all the LEDs in the strip, that could be the problem. If possible try to drive a few or even one and measure the voltage.

If you can provide more information, we might be able to help more.

cheers
Jim

PS 40 pin header pinouts.

2 Likes

Hi James, I apologise for wasting your time, I appreciate the effort in helping me solve the problem, I only wish it were something that was a bit weird, as it was actually just stupid.
I measured the psu voltage the wrong way, misidentified the positive wire, so of course everything from there was kind of pointless.
Turns out the ws2812b strip I have doesn’t even need the logic level conversion, just a 5v supply actually supplied properly…
So it’s now working most of the way up the 5m strip, I think the rest maybe just needs my other 5v 3A supply fed to the other side.
Thanks again, sorry your effort wasn’t utilised :confused:

1 Like

Hi Tallis,

Glad you got it working. The simplest things sometimes. A lot of devices have protection against reverse polarity now, makes mistakes less of a problem.

Yeah, I was looking at the Tutorial and how it was wired together, and agree the level converter is not really needed. The output level from the Pi is enough to be recognised as a 1 or 0 by the LEDs logic. A Level Converter is definitely needed if you are sending to the Pi from a 5V device.

Check the number of LEDs the software is programming, the ones not working may not be getting addressed. The signal daisy chains along the strip. Also check the current drawn by the LEDs to ensure your supply is up to it.

EDIT: Checked the Python script on GitHub for strandtest.py. Found the following. Probably this is the code that is loaded by Core Electronic script. You would need to change LED_COUNT to equal the number of LEDs you have, keeping in mind each LED can draw up to 50mA.

# LED strip configuration:
LED_COUNT      = 16      # Number of LED pixels.
LED_PIN        = 18      # GPIO pin connected to the pixels (18 uses PWM!).
#LED_PIN        = 10      # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).
LED_FREQ_HZ    = 800000  # LED signal frequency in hertz (usually 800khz)
LED_DMA        = 10      # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 255     # Set to 0 for darkest and 255 for brightest
LED_INVERT     = False   # True to invert the signal (when using NPN transistor level shift)
LED_CHANNEL    = 0       # set to '1' for GPIOs 13, 19, 41, 45 or 53

Cheers
Jim

1 Like