Is the Mega enough controller for 1400 LED strip?

Hi,
I am working on a ceiling install of about 1400 LEDs, a strip of SK9822, 5v. Actually 3.5 strips daisy chained. I have 4 60A power supplies injected every few feet so I think I have enough power. I don't have a dimming problem, but a breakdown in the serial code around LED #800 or so.

When I run tests, I can get good color representation up to the 800 point and then at that point it responds with incorrect color patterns.

I am controlling the strips with a Mega. It worked really well when I had my prior installation of 300 LEDs. When I swapped, upgraded the strips and went from 30/m to 60/m, I am getting the problems above. My data line is about 8 feet long. I used a sacrificial LED to make sure the signal to the first LED is strong.

Is my issue a lack of memory or speed with the Mega? I haven't had a chance to run speed tests because I can't even get a solid color to display completely. Will I have FPS issues too?

I don't mind the expense of a better/faster controller, but I'm not excited to rewire the control board if that is not my problem.

Any thoughts are greatly appreciated!

Hi,
Can you please post your code?
Can you please post a schematic of your project?
Ofcourse not all 1400 LEDS. :laughing:

Also link to specs of SK9822 strip.

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

Sure, here is the code. I am just running tests with the fastled library:

#include <FastLED.h>

#define NUM_LEDS  1200
#define DATA_PIN 51    
#define CLOCK_PIN 52
#define BRIGHTNESS  200
#define FRAMES_PER_SECOND 60

CRGB leds[NUM_LEDS];
bool gReverseDirection = false;



void setup() {
  delay(3000); // sanity delay
  FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, BGR>(leds, NUM_LEDS);  //the BGR sets the order of the LEDs, it corrects the red-blue reverse
   FastLED.setBrightness( BRIGHTNESS );
}

void loop()


{

  fill_solid(leds, NUM_LEDS, CRGB::Green);
  FastLED.show();
  delay(500);
  
  fill_solid(leds, NUM_LEDS, CRGB::Blue);
  FastLED.show();
  delay(500);
}

As for the circuit, there is not much to it. Just a 220 resistor on the data line. Data and clock pins go straight to the first LED.

Hi,
This may help.

or Google;

fastled library how many leds

Tom.. :smiley: :+1: :coffee: :australia:

Thanks for the direction. I was searching for stuff like "max sk9822 length" and kept finding discussions on power injections. Sounds like maybe I need a different controller like a teensy 3...

1400 RGB leds require 4200 bytes of memory (add another 1400 bytes if your strip is RGBW); a Mega should be OK for that.

Speed wise, your refresh will be 50% of the original as you have to update twice as many leds. I'm not familiar with your strip but i doubt a faster processor will give a higher refresh rate; it would definitely not help with a WS2812B strip as updating a single led takes a certain amount of time defined by the led; check the datasheet of your led.

Thanks, yeah, I think the Mega should be able to light them accurately, even if the refresh rate would suck. Something else is going on and I want to get to the bottom of it before I make any controller changes.

The sk9822 is like a APA102 clone. It has separate data and clock lines so allegedly can update faster. I am still trying to figure out if FastLED supports parallel output only for single data lines or if it can also work with the 2-wire data/clock combo...

A trick I have used is to take a few CAN buffers (line driver/ only) input my serial data, it is always on transmig and the receiving ends using them again where they are always on receive. I see no reason you cannot get several thousand feet. Do not forget to put termination 120 Ohm resistors on the two physical ends of the bus.

I have a really weird update. Since all my problems were occurring not far from the halfway point, I broke the daisy chain halfway through to independently test the second half of the strip.

I was getting nothing out of the LEDs at all. Since the test was with temporary connections to the data/clock lines (power feeds remained the same), I was checking my temporary wire twists on the data lines. Lo and behold, if I physically touch the DATA line, the strips work perfectly. But, if I do not touch the data line, nothing at all...

What does this mean? Some kind of grounding issue? I've tested the whole circuit and everything between all power supplies are grounded together. Something is amiss but I cannot think of what to even test!

Hi,
Can you please post an image(s) of your project?
So we can see your component layout.
The 220R resistor is 220R?
Have you measured it with a DMM?

You have got the gnd of the strip connected to the gnd of the Mega?

Tom... :smiley: :+1: :coffee: :australia:

Yes confirm 220 and all grounds connected.

Here is a pic, kind of hard to get a good one as it is all post-install.
This is just the junction point between the first and second halfs of the strip.

I tried adding a resistor when I tested the back half of the strip too and it works fine. So I can run either the first half or the second half independently without issue. But if I daisy chain them together the strip wigs out about 50 LEDs into it. Frustrating...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.