Looking for help with amazon ws8212b led panel

  1. i am attempting to run 4 8x32 rgb led panels as a marquise w2812b eco led panel from amazon

i have a 20 amp 5 v power supply injected at panel 1 and 3 to spread the power

just trying to test and using the example neo_pixel strand test out of 1024 leds the max i can light up is 600

i have started with nano then uno and mega same result

it uploads and just hangs

i have moved the panels around all leds work just only up to 600

these have the 3 wire in /out like a led strip red +5 white ground green data
my goal is to make an long marquis and scroll calendar and time data using a rtc module or esp8266 wifi unit
everything im seeing in the forums is using matrix and shift registers
so any links to working code that i can study would be awesome as would any tutorials on this issue i may have missed
this is what i have been using it works on 2 panels only thats 64x8

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#ifndef PSTR
#define PSTR // Make Arduino Due happy
#endif

#define PIN 6

// MATRIX DECLARATION:
// Parameter 1 = width of the matrix
// Parameter 2 = height of the matrix
// Parameter 3 = pin number (most are valid)
// Parameter 4 = matrix layout flags, add together as needed:
// NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
// Position of the FIRST LED in the matrix; pick two, e.g.
// NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
// NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
// rows or in vertical columns, respectively; pick one or the other.
// NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
// in the same order, or alternate lines reverse direction; pick one.
// See example below for these values in action.
// Parameter 5 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_GRBW Pixels are wired for GRBW bitstream (RGB+W NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(64, 8, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);

const uint16_t colors[] = {
matrix.Color(99, 99, 0), matrix.Color(0,99, 99), matrix.Color(99, 0, 99) };

void setup() {
matrix.begin();
matrix.setTextWrap(true);
matrix.setBrightness(55);
matrix.setTextColor(colors[0]);
}

int x = matrix.width();
int pass = 0;

void loop() {
matrix.fillScreen(0);
matrix.setCursor(x, 0);
matrix.print(F(" Hello World! "));
if(--x < -125
) {
x = matrix.width();
if(++pass >= 3) pass = 0;
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(100);
}

with this code i can get to 620 leds

#include <Adafruit_NeoPixel.h>
#include <avr/power.h>
#define PIN 6 //Data pin
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 620
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 5; // delay for half a second
void setup() {
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(99,0,99)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
pixels.clear();
}
}

The UNO/Nano will not be able to handle 1024 LEDs, 600 is about the absolute maximum if you don't have any other code. Each LED takes 3 bytes of ram, 600 LEDs need 1800 bytes, the total ram for an UNO/Nano is 2048 bytes.

The Mega should work, it has 8192 bytes of ram, well above the 3072 bytes needed for 1024 LEDs.

1 Like

Welcome to the forum.

A display like this one ? https://www.amazon.com/AZUOCN-Flexible-Individually-Addressable-Programmable/dp/B09DV9BB1H

It is better to apply power to all four displays, you might even have to power each display from both ends.

4 * 8 * 32 = 1024 RGB leds
1024 leds * 60mA = 61 A
Your "matrix.setBrightness(55);" is good, that should work.
If you bought the cheapest power supply that you could find, then it might not be able to continuously output a lot of current.

When you show a sketch, please use the '</>' button or put the sketch between lines with three single backslash quotes.

```
Your sketch
```

You need Serial output to send messages to the Serial Monitor.

Adafruit has a small function to check the memory runtime: https://learn.adafruit.com/memories-of-an-arduino/measuring-free-memory#sram-370031.
I suggest to put that in your sketch.

I see that you use the matrixtest.ino example.

When I test it with a matrix of 128 * 8 leds and run the freeMemory() function, then there is about 4600 bytes still free memory with a Arduino Mega 2560. So I can confirm the numbers by david_2018.

My guess is that the signal is lost, due to long wires or ground currents.
Connect the GND of the power supply to a GND pin of the Arduino board.
Have you seen pictures with a protection resistor of 470 Ω and a capacitor at the first display ? You really need that.

60 mA per RGB led times 600 equals 36A at full white. I know that you're not using full white at this time. I run 420 leds and use 2 powersupplies of 20A each.

Please edit your posts, select all code and click the </> button to apply so-called code tags and next save your post. It makes it easier to read, easier to copy and the forum software will display it correctly.

YES EXACTLY LIKE THAT
i have gotten the 4 panels to scroll now with the mega 2560
wondering if an esp8266 could run it as well smaller foot print and has wifi and bluetooth
i would just like to have it scroll today is day of week the time is 1:10 pm so working on that code tonight
the power supply is a VOLGEN PSN-05020 it seems to run everything fine
im not using 255 just 50 and that brightness is good to see in my room
i have it connected to the separate v+ and gnd input in the center of the panels

the Wemos mini d1 is working fine so ill go with it

The ledstrip needs a digital signal of 5V, but the ESP8266 and ESP32 are 3.3V boards. You have to amplify the digital signal.

its working right now mine has a +5v


it looks just like this

so after a week of trying
i am giving up and asking for more help
the wemos mini d1 can control the 4@ 32wx8h flexible panels total of 1024 ws2812b leds
ive upgraded to 2@ 5v 20 amp power supply's each feeding 2 panels
using the code above i can add any text i want and count the letters and spaces then x6 and it plays the entire sentence and repeats ant 255 brightness if i want but 55 is totally enough
i have tried so many matrix weather and time sketches modifying trying to add the massive array i have assembled the json6 issue had me stumped them i just loaded an older json and got past that but most ive found dont use a single data input
and help with coding at this point would be so nice im stumped
again i am controlling with an wimos mini d1 esp8266 and 4 panels run horizontally for a 256w x 8 h panel total 1024 ws2812b leds more than enough power
id like wifi enabled time and weather updates using open weather
possible scrolling with "today is (day of week ) the time is ( time in 12 hour format) the weather is (rain snow sun clouds ) and the temp is (temp in F)

Yes, it's powered by external 5V, but that gets down-regulated to 3.3V on the wemos. So, its outputs are all 3V.

Anyway, you have it working. I haven't had any trouble with using 8266 to run WS2812's, but some people get all worked up about it.

The first WS2812 is the critical link - everything after is raised to 5V, having to pass through it.

The ntp.org can be used for online time.
Here is an example with a ESP32: https://randomnerdtutorials.com/esp32-date-time-ntp-client-server-arduino.

I don't know OpenWeather. Those services often need an account and then you have to use your account with password to retrieve data.

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