0

I am working on a project to run an RGB strip around a large room and have the colour change driven by an Arduino Uno. I have encountered a number of issues and am looking for clarification.

The first strip I used was a 12V strip at 1A/m. This would work fine except the power requirement is slightly ridiculous and it seems I need to put my array of MOSFETs in at every power injection point.

This was when I decided to experiment with a 5V addressable strip to do it. Working with a 5V system gave me more ease as the power requirements are lower and the parts list is also minimal, but after some research, it seems that the signal line will degrade significantly on that many WS2812B's / line length.

I suppose I could but a transistor inline every n-number of 5m strips (similar to the power injectors), however I would like to ask for some opinions from the community around other issues I may encounter, and whether or not this is the right solution for the job.

The scope of the project is to hold a colour for a number of seconds then switch colour based on a predefined program. This program is defined on an external device that uses the Arduino's serial port to communicate the desired colour. The implementation itself is very simple.

The main issues I can see are the power requirements (I think I have this sorted for the 5V version but not the 12V version) and getting the signal to the final LED. On a 60 LED/m strip this could be in the order of around 6000 LED's and that seems like a lot.

What are your views/recommendations?

Cheers!

10
  • 1
    What makes you think the signal will degrade over that number of LEDs?
    – Majenko
    Mar 21, 2022 at 12:30
  • @Majenko I read it on the arduino forum somewhere. If that is not the case then that is cool. I think the post on the forum said they were getting interference from other wires in the vicinity of the signal line (maybe power or something) I'm essentially a n00b at this - it has been ages since I messed around with micro electronics and I'm re-learning everything again lol. If my assertions are incorrect I am happy for constructive criticism :) Mar 21, 2022 at 12:34
  • 1
    The WS2812B datasheet states: Built-in signal reshaping circuit, after wave reshaping to the next driver, ensure wave-form distortion not accumulate. -- Basically the "distance" is only ever the distance between two adjacent LEDs.
    – Majenko
    Mar 21, 2022 at 12:37
  • @Majenko That's awesome news. So there shouldn't be too much of an issue driving that many LED's with a Uno? From my research, 60(LED's per metre) * 100 * 3(bytes/LED) gives me 18K of memory needed to store the state. Since the Uno has 32K I should be fine right? Mar 21, 2022 at 12:51
  • ... I think there are some youtube videos that show where voltage drop can affect color on long runs. Probably due to PWM variations due to slight voltage differences betwen the power injection point and the far end. Also the longer the string of addressable LEDs the larger the amount of data to be sent the slower the rate of intentional change. I would at least run larger power wires and inject power at several locations.
    – st2000
    Mar 21, 2022 at 13:32

1 Answer 1

1

Signal degradation: This is pretty much not a problem, as long as you just send the signal through the LED strip. Each WS2812B chip has circuitry to ensure, that the output signal is shaped correctly. As long as you don't have long runs of pure cable for the signal in between you will be good.

Power requirements: Using WS2812Bs lets you ditch your own MOSFET driving circuits, though the overall power will be in the same range. When you drive the LEDs at full intensity white (R, G and B full intensity) each LED will draw about 60mA. With 60 LEDs/m and 100m length you have 6000 LEDs, which equates to a max current of 360A. Thats a lot. You will probably need multiple power supplies. I think you can get 5V power supplies with like 70A from typical retailers. Of course there are also some which, provide more, but you will also want to reduce the max length of cable the current will flow (putting each power supply near the strip part, that it is powering).

Also you should inject power to the strip every 1 to 1.5m to stay safe. Above that you can see degradation after some time (I injected every 2.5m once and the LEDs still work, but you can see the degradation on the strip material and it gets hot when being on).

IMPORTANT: When you buy the typical brick power supplies, they often use a barrel connector. But with these currents you shouldn't use them. In one of my own projects I currently have to replace those with better connectors, because the barrel connectors started to melt from the heat and smoked. I know use small banana connectors, which are also used for drone motors. They can handle way more current without getting hot. Also your cable should be thick enough to handle the current without getting hot.

Controller:

As you already know you will get into the memory limit with the Uno. Your assessment of the needed memory for using the FastLED library (or the NeoPixel library) is correct. You will need 18kB only for the buffer (not including the rest of the programs variables).

Now you can either

  • change to a microcontroller with enough RAM to handle that buffer
  • or send the data out on demand instead of first filling it into a buffer.

The first option will definitely be easier with programming. The second option will require you to do some handwork. The libraries that I know of all use a buffer. Though I've once read this article about the timing on WS2812B LEDs. In the end the author also links to his working code, which puts out the data directly without using a buffer. You might wanna have a look at it. Also you could look at the code of the FastLED or Neopixel library. They of course also have the code to send the data and you might be able to copy and adapt that code for your case.

11
  • Thanks for this - really informative. The power requirement is what scares me really. I was thinking of a 8-10A power supply every 5 metres product I might use - the manufacturer says 6-8A should run 5m. Mar 21, 2022 at 14:11
  • 1
    use 10A per 5 meters at least. A power supply can get less efficient when near max capacity and it will get rather hot with 8A. Used 8A supplies with the project I mentioned and they get really hot. The power is nothing really dangerous. With 5V you cannot do much harm to humans. Though you need to make sure, that every part of the project is able to handle way more current than you need. If they get too hot they might cause a fire.
    – chrisl
    Mar 21, 2022 at 14:18
  • 1
    And please don't use the barrel connectors, that are used by most brick power supplies. Those cannot handle currents over a few amps. Mine were melting with 8A, so I currently replacing them with small banana connectors.
    – chrisl
    Mar 21, 2022 at 14:22
  • And that is my ultimate worry. It will switch between colours every 40 secs or so but I can program the system that I am building to either exclude white or make it dull. The only colours I am supporting are RGB values from here so I don't think the power requirements will be huge but will still be enough to require multiple injection points. Mar 21, 2022 at 14:25
  • 1
    With a 100m strip you are already in a really high territory, even when you dim the LEDs down. In this situation I would plan with the full possible power. It gets more safe, when your system is able to handle more power, but needs less. And it gets less safe, when your system can handle less power and the needed power approaches the max power. So planing with a big headroom is more safe.
    – chrisl
    Mar 21, 2022 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.