Page 1 of 1
Forum

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
For example “MacOS X – Your question“, or “MS Word – Your Tip or Trick“.

Please note that switching to another language when reading a post will not bring you to the same post, in Dutch, as there is no translation for that post!




Assistance request ...
 
Share:
Notifications
Clear all

Assistance request with Arduino LED sketch

Page 2 / 2

(@saeidans)
Active Member
Joined: 1 year ago
Posts: 8
 

I think I answered my own question by making this chnage:

 

void loop() {

colorWipe(0xe9, 0xe9, 0xe9, 200);

}


ReplyQuote
 Hans
(@hans)
Noble Member Admin
Joined: 8 years ago
Posts: 2018
Topic starter  

Awesome haha! 😉 👍 


ReplyQuote
(@davidl)
New Member
Joined: 1 year ago
Posts: 3
 
Posted by: @hans

You're welcome - I had some time on my hands 😊 

You will not able to fix this in code.

Keep in mind: each of the white little squares on the strip contain a controller, and 3 LEDs (one for red, green and blue).

When all the data is send to the strip, data for all 12 leds will arrive at #1.
The controller of #1 will remove the first data block and set the the 3 leds of that LED block, since they were intended for #1 anyway.
After that controller #1 passes the remaining 11 data blocks to the 2nd led block.

The led controller of #2 will do the same thing: remove the first data block, set the leds, and pass on the remaining data (10 data blocks) and pass it on to #3, etc.

So the speed in which this happens, is your limiting factor. So this part is something we cannot really influence that much.

Now when putting 2 smaller strips in parallel, you'd actually get the exact same speed (theoretically anyway).

Hello @hans, with regards to this discussion, you correctly mentioned one of the downside's of the WS2812 is the time needed to pass the data along the chain.
All of the data for each of the three colours in each LED is written serially, in sequence, along a single data line, which means that there is a finite time between each LED along the string receiving it's command and updating. For long strings of LEDs that can become noticeable, however, it takes a very long string.

Earlier in this topic you quoted this information from the FastLED documentation:

WS2812 strips are slow for writing data, with a data rate of just 800khz, it takes 30µs to write out a single led's worth of data.

Link:  https://github.com/FastLED/FastLED/wiki/Parallel-Output

 

In electronics terms, 30us (that's microseconds, or 1/1,000,000 second) is certainly not fast, but it's pretty instantaneous in terms of human perception (I remember reading somewhere that human perception is limited to ~10ms).
Based on this timing, if you were to use a string of 1,000 LEDs, the time between the first LED and last LED receiving their commands would be ~30ms (30/1,000 seconds, or 0.03s). If you were watching these LEDs very carefully, you might be able to see this delay, but it will still appear to be very fast.

So, your comments above are correct, but the effects only become perceptible to most users once you begin to create very long strings. If you are only creating strings of a few hundred LEDs, this affect should never be noticed.

Thanks,
David


Hans liked
ReplyQuote
 Hans
(@hans)
Noble Member Admin
Joined: 8 years ago
Posts: 2018
Topic starter  

Thanks for the math David - you're totally right about the time. 👍 
Having played with 300+ LEDs I had the "delay" but indeed not in a bad way.
I could have been just me, since I never hooked up more than 300 LEDs 😊 

(sorry the late reply - I'm traveling at the moment)


ReplyQuote
Page 2 / 2

Like what you see and you'd like to help out? 

The best way to help is of course by assisting others with their questions here in the forum, but you can also help us out in other ways:

- Do your shopping at Amazon, it will not cost you anything extra but may generate a small commission for us,
- send a cup of coffee through PayPal ($5, $10, $20, or custom amount),
- become a Patreon,
- donate BitCoin (BTC), or BitCoinCash (BCH).

Share: