natcl / Artnet

An Art-Net library for Teensy, Arduino and ESP boards
Other
340 stars 92 forks source link

Issues with greater than 170 LEDs #28

Closed JoeSpinogatti closed 6 years ago

JoeSpinogatti commented 6 years ago

I have a strip of 261 WS2812 LEDs. They are verified to be working correctly with other libraries.

Whenever I try to use the example ARTNETNeopixel.ino, everything works very well with 170 leds. Whenever I update numLeds to something greater than 170, like 171 or 172, LEDs in the strip beyond 170 begin misbehaving. With 171 or 172, the initTest still fires and the strip blinks RGB.

If I update the number to anything greater the 173, the strip does not run the test and does not blink RGB. Any help or suggestions are greatly appreciated.

Thanks!

natcl commented 6 years ago

What microcontroller are you using ?

JoeSpinogatti commented 6 years ago

Arduino Uno.

Chip ATMega328. 2k of SRAM

JoeSpinogatti commented 6 years ago

Started here: https://mega-byte.nl/controlling-ws2812-led-matrix-ethernet-using-arduino/

natcl commented 6 years ago

The Arduino Uno is not fast enough to process Artnet packets and drive LEDs at the same time. Do you have access to a Teensy LC or 3.2 ?

JoeSpinogatti commented 6 years ago

Unfortunately, no. I can only use Arduino Uno. Everything is running at 5v and powered via usb power bricks.

What I’m confused about it why it breaks precisely at 171+. The article I found talks about driving more than one universe (170 3ch leds) with the code so any idea why it’s breaking?

On Mar 1, 2018, at 7:41 PM, Nathanaël Lécaudé notifications@github.com wrote:

The Arduino Uno is not fast enough to process Artnet packets and drive LEDs at the same time. Do you have access to a Teensy LC or 3.2 ?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

natcl commented 6 years ago

Can you try the basic example and see how many universes you get ?

https://github.com/natcl/Artnet/tree/master/examples/ArtnetReceive

-- lecaude.com studioimaginaire.com

Le 1 mars 2018 à 19:56, Joe Spinogatti notifications@github.com a écrit :

Unfortunately, no. I can only use Arduino Uno. Everything is running at 5v and powered via usb power bricks.

What I’m confused about it why it breaks precisely at 171+. The article I found talks about driving more than one universe (170 3ch leds) with the code so any idea why it’s breaking?

On Mar 1, 2018, at 7:41 PM, Nathanaël Lécaudé notifications@github.com wrote:

The Arduino Uno is not fast enough to process Artnet packets and drive LEDs at the same time. Do you have access to a Teensy LC or 3.2 ?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

nanu-c commented 6 years ago

There is not enough space for the buffer on the arduino uno. The arduino has 2 KB (ATmega328P) SRAM. I think with 171 the buffer is full. You can use arduino mega (8 KB SRAM) for something like 450 pixels. The teensy has 65536 KB RAM.

annjohnson commented 6 years ago

Hi

The reason you get errors past 170 pixels is because you have reached the end of your universe. Each pixel is 3 channels, 3×170 is 510... dmx only goes to 512.

Hope this helps!

annjohnson commented 6 years ago

I'm a bit tired right now, reread the thread and realized you are definitely aware of the info I shared. Just trying to be helpful! Best of luck.

natcl commented 6 years ago

Closing this issue as this is not a limitation of the library but the specific hardware used.