Powering 2 60-LED NeoPixel strips, from a distance
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Powering 2 60-LED NeoPixel strips, from a distance
Here's the big picture first:
I have 1 60-LED strip, in a circle, facing inwards, and another 60-LED strip (though having more pixels per inch), in a circle facing outwards. They will probably be glued to a 'cloudy' donut-shaped piece of plexiglass to see the colors well. And the idea is to place this "ColorRing" on a wall somewhere in the house. And of course, it needs power, GND, and Data (1 or 2 lines) running to it. And I don't just want the power supply & Arduino board just sitting on the floor right below the ring, I'd like it below and off to the side (like behind a bookshelf or something) - so it might be 4-5 meters away from the ring.
My power supply is 5V 10A, so plenty for the 2 strips. Also, I do plan on lighting all 120 LEDs to white at times, so I need to plan on 60mA * 120 = 7200mA running through the wires at times.
I've learned that the longer the wire (and the thinner the wire), the more resistance is has & the more resistance, the greater the voltage drop. I'm wondering if this is something I should be concerned about or not? What's the minimum thickness of wire I should use to power the 2 strips from a power supply that's 5 meters away or so? Also, is there a maximum thickness I shouldn't surpass either?!
Actually, I have the same question for the 2 data lines (1 for each strip) - what's the minimum width I should use? (and max, if there is a max?).
Or maybe I'm asking the wrong question - given that I'll be drawing 7.2A at times, should the question maybe be: what thickness of wire can handle 7.2A of current (at 5V)?
Thank you so much for your thoughts & help!
I have 1 60-LED strip, in a circle, facing inwards, and another 60-LED strip (though having more pixels per inch), in a circle facing outwards. They will probably be glued to a 'cloudy' donut-shaped piece of plexiglass to see the colors well. And the idea is to place this "ColorRing" on a wall somewhere in the house. And of course, it needs power, GND, and Data (1 or 2 lines) running to it. And I don't just want the power supply & Arduino board just sitting on the floor right below the ring, I'd like it below and off to the side (like behind a bookshelf or something) - so it might be 4-5 meters away from the ring.
My power supply is 5V 10A, so plenty for the 2 strips. Also, I do plan on lighting all 120 LEDs to white at times, so I need to plan on 60mA * 120 = 7200mA running through the wires at times.
I've learned that the longer the wire (and the thinner the wire), the more resistance is has & the more resistance, the greater the voltage drop. I'm wondering if this is something I should be concerned about or not? What's the minimum thickness of wire I should use to power the 2 strips from a power supply that's 5 meters away or so? Also, is there a maximum thickness I shouldn't surpass either?!
Actually, I have the same question for the 2 data lines (1 for each strip) - what's the minimum width I should use? (and max, if there is a max?).
Or maybe I'm asking the wrong question - given that I'll be drawing 7.2A at times, should the question maybe be: what thickness of wire can handle 7.2A of current (at 5V)?
Thank you so much for your thoughts & help!
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
For that much current you should run a fairly heavy-gauge wire to avoid the voltage drop. I'd recommend 14 awg or heavier.
The data wire does not carry significant current, so it can be fairly thin. But you may need some buffering for driving that distance. What type of led strips are you using?
The data wire does not carry significant current, so it can be fairly thin. But you may need some buffering for driving that distance. What type of led strips are you using?
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Hi Bill,
Thanks for your reply. The 2 strips I'm using are:
https://www.adafruit.com/products/1461 (60 LEDs / meter)
https://www.adafruit.com/products/1506 (144 LEDs / meter)
What do you mean by "buffering"?
Thanks again!
Thanks for your reply. The 2 strips I'm using are:
https://www.adafruit.com/products/1461 (60 LEDs / meter)
https://www.adafruit.com/products/1506 (144 LEDs / meter)
What do you mean by "buffering"?
Thanks again!
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
The neopixel signal can degrade over long distances due to capacitance in the wire. And Neopixels are pretty sensitive and can be damaged by any noise that might be picked up in the wire.
See this post for an example of a buffer: http://forums.adafruit.com/viewtopic.ph ... 9&p=278523
See this post for an example of a buffer: http://forums.adafruit.com/viewtopic.ph ... 9&p=278523
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Ok, so it looks like the 2 strips I'm using (mentioned above) both use the WS2812B 4-pin chip, which from the buffer example link you sent, I gather that they ARE more susceptible to noise in the wires.
I'm a little concerned that you mentioned that they might be damaged by noise picked up in the wire. I can't picture how that could happen (too much voltage? too little? or just faulty serial data timing?!)
I'd like to be a little more sure of what I'm dealing with here, so my setup works well, & doesn't end up destroying pixels.... Can you point me to a link somewhere where I can learn this subject a little more deeply? (I tried a google search, but words like "buffer" and "wire" and "data signal" are too generic, so I can't seem to find what I really need to read up on.)
Another question regarding the "buffer" - does it affect the data rate? Or does it just basically "clean" the signal up (take out the noise)?
Thanks again so much for your guidance!
I'm a little concerned that you mentioned that they might be damaged by noise picked up in the wire. I can't picture how that could happen (too much voltage? too little? or just faulty serial data timing?!)
I'd like to be a little more sure of what I'm dealing with here, so my setup works well, & doesn't end up destroying pixels.... Can you point me to a link somewhere where I can learn this subject a little more deeply? (I tried a google search, but words like "buffer" and "wire" and "data signal" are too generic, so I can't seem to find what I really need to read up on.)
Another question regarding the "buffer" - does it affect the data rate? Or does it just basically "clean" the signal up (take out the noise)?
Thanks again so much for your guidance!
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
These two posts by Mike from our engineering support staff describe what kinds of things go on at the electrical level on the signal line.I'm a little concerned that you mentioned that they might be damaged by noise picked up in the wire. I can't picture how that could happen
These posts were from early on in our experience with the WS2812B chips as we were trying to figure out why so many first-pixels in the strips were dying.
http://forums.adafruit.com/viewtopic.ph ... 3&p=258323
http://forums.adafruit.com/viewtopic.ph ... 3&p=258323
That is correct.Another question regarding the "buffer" - does it affect the data rate? Or does it just basically "clean" the signal up (take out the noise)?
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Thanks. Though you posted the same link twice. Can you also post the 2nd of the 2 posts from Mike?
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Sorry. They were 2 of his posts in that same thread:
http://forums.adafruit.com/viewtopic.ph ... 23#p258256
http://forums.adafruit.com/viewtopic.ph ... 23#p259404
http://forums.adafruit.com/viewtopic.ph ... 23#p258256
http://forums.adafruit.com/viewtopic.ph ... 23#p259404
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Ok, this information has been helpful - thank you! Now I'm trying to implement it into my circuit, though I'm still having trouble knowing what I should do.
Regarding protecting the data line (to protect the first pixel):
In mid March, in this post (http://forums.adafruit.com/viewtopic.ph ... 3&p=258323), Mike suggested:
Also, however, Mike mentioned in 04 June (http://forums.adafruit.com/viewtopic.ph ... 9&p=278523):
Assuming we just need to add a resistor:
Currently my NeoPixel strips are still in the state that I bought them (the end of the strip has 5 wires (about 10cm in length) already soldered, and 3 of them going to a 3-pin header connector). Given this, where should I connect the 470 ohm resistor? At the 3-pin header connector (which is about 10cm from the first WS2812 chip)? Or should I unsolder the 5 wires, then solder the resistor right where the strip starts?
Assuming we need to build a buffer:
Does it matter where it's placed? Near the Arduino? Near the strip?
Thank you again for the clarifications & guidance.
Regarding protecting the data line (to protect the first pixel):
In mid March, in this post (http://forums.adafruit.com/viewtopic.ph ... 3&p=258323), Mike suggested:
Is this the same resistor that's mentioned in: https://learn.adafruit.com/adafruit-neo ... no-library in red where is says:Putting a series resistor at the WS2812 end of the wire
I would imagine it's referring to the same resistor, though the uberguide doesn't mention WHERE to place the resistor, and Mike says that it's important that it be at the WS2812 end of the wire.Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels can help prevent spikes on the data line that can damage your first pixel. Please add one between your micro and NeoPixels!
Also, however, Mike mentioned in 04 June (http://forums.adafruit.com/viewtopic.ph ... 9&p=278523):
Since this is a newer post, I'm wondering if it's meant as a replacement for the 470 ohm resistor solution?The WS2812B does seem to be a bit more picky about the signals it accepts, but you can make an input buffer with a couple of transistors
Assuming we just need to add a resistor:
Currently my NeoPixel strips are still in the state that I bought them (the end of the strip has 5 wires (about 10cm in length) already soldered, and 3 of them going to a 3-pin header connector). Given this, where should I connect the 470 ohm resistor? At the 3-pin header connector (which is about 10cm from the first WS2812 chip)? Or should I unsolder the 5 wires, then solder the resistor right where the strip starts?
Assuming we need to build a buffer:
Does it matter where it's placed? Near the Arduino? Near the strip?
Thank you again for the clarifications & guidance.
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
Mike talks about two resistors, one in series and one from the signal line to ground. Both should be installed as close to the first pixel as practical.
However, the buffer is a more robust solution. And given the long distance, I would recommend it in your case. It too should be installed as close to the first pixel as practical. You do not need the resistors if you are using the buffer.
However, the buffer is a more robust solution. And given the long distance, I would recommend it in your case. It too should be installed as close to the first pixel as practical. You do not need the resistors if you are using the buffer.
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
On my workbench (still close distances / short wires), I decided to try adding the 470 ohm resistor between Pin 6 and DIN of the NeoPixel Strip. The strip doesn't work at all when I do that. If I take out the resistor, and just directly connect pin 6 to the DIN line again, it works just fine. Sounds like what @Pat01 was saying in his comments.
Are you guys SURE "Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels" is a good idea? Or the "right" idea? Have others in your lab tried it? Just asking because I don't think I could mess up adding a resistor, in series, between 2 points... I'll attach some pictures too (wide angle & zoomed), just to be sure I'm doing the right thing.
Also, FWIW, I also tried connecting the resistor directly into pin 6 (not via the breadboard) - still didn't work. I also measured the resistor with a DMM - 469 ohm.
Thanks for looking into this.
Are you guys SURE "Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels" is a good idea? Or the "right" idea? Have others in your lab tried it? Just asking because I don't think I could mess up adding a resistor, in series, between 2 points... I'll attach some pictures too (wide angle & zoomed), just to be sure I'm doing the right thing.
Also, FWIW, I also tried connecting the resistor directly into pin 6 (not via the breadboard) - still didn't work. I also measured the resistor with a DMM - 469 ohm.
Thanks for looking into this.
- adafruit_support_bill
- Posts: 86258
- Joined: Sat Feb 07, 2009 10:11 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
We build these into the neopixel devices we produce in our own factory. Many of our strip products have them on the first pixel as well. The ideal size for the resistor depends on the length and characteristics of the signal wire, which we have no control over, so the ~470 ohms is a middle ground estimate.Are you guys SURE "Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels" is a good idea?
The active 2-transistor buffer is a better solution. A 74AHCT125 also makes an effective buffer for neopixels. https://www.adafruit.com/products/1787
- briggsm
- Posts: 44
- Joined: Thu Oct 24, 2013 11:17 am
Re: Powering 2 60-LED NeoPixel strips, from a distance
What kind of transistors? (for the 2 transistor solution) I'm not too familiar with them, but I thought there were many different types & characteristics... If possible, can you list some possible part #'s (from you or DigiKey or somewhere)? Thanks.
- adafruit_support_mike
- Posts: 66616
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Powering 2 60-LED NeoPixel strips, from a distance
It's true that there are lots of transistors out there, but the buffer doesn't need anything special. It would take some effort to find a kind that wouldn't work.
The BJTs I use as jellybeans are the 2N3904 (NPN) and 2N3906 (PNP), which have been around since the 1960s and have a whole lot of engineering history behind them. The BC54x series is about the same age and is equally generic.
The PN2222s we have in the shop (http://www.adafruit.com/product/756) can handle a bit more current than the 2N3904, but will work just fine for the buffer in question.
The BJTs I use as jellybeans are the 2N3904 (NPN) and 2N3906 (PNP), which have been around since the 1960s and have a whole lot of engineering history behind them. The BC54x series is about the same age and is equally generic.
The PN2222s we have in the shop (http://www.adafruit.com/product/756) can handle a bit more current than the 2N3904, but will work just fine for the buffer in question.
Please be positive and constructive with your questions and comments.