New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teensy 3.6, FastLED 3.1.6, Parallel WS2811 fails with < 4 lanes #494

Open
garyd9 opened this Issue Sep 10, 2017 · 1 comment

Comments

Projects
None yet
2 participants
@garyd9

garyd9 commented Sep 10, 2017

Steps to repeat:

With a teensy 3.6 (and perhaps other platforms), attach 1 WS281x strip to pin 2 (and wire up power and ground.) Load up the FastLED "ParallelOutputDemo" example and make the following two changes:

  1. Change the NUM_STRIPS to 1 (or any value less than 4)
  2. Change the first template parameter in the call to addLeds<>() to WS2811_PORTD.

Upload and run the demo. Nothing happens. If you change NUM_STRIPS to 4, everything works again.

More information:

This issue seems to be related to the actual "leds" array, and not to the parameters passed to the template. To demonstrate, change NUM_STRIPS back to 4 (and things work.) Then go into the loop() function of the demo, and alter the first for() loop from "for(int i = 0; i < NUM_STRIPS; i++)" to "for(int i = 0; i < 1; i++)" (only changed "NUM_STRIPS" to "1".) Run that and it fails again. Even if you set all the led[] elements to CRGB::White the the strips beyond 1, it still fails. (On the other hand, if you set the led[] elements to "CHSV( HUE_RED, 255, 255)", it works. That makes no sense to me.)

Expected behavior:

Even if using less than 4 strips might not offer a vast performance improvement, it should still work.

** Even More Info:**

The issue is most definitely related to the leds array itself and not the NUM_STRIPS template parameter passed calling addLeds(). If you leave NUM_STRIPS as 4, but edit the addLeds<>() call to change "NUM_STRIPS" to "1", then everything works IFF the entire leds[] array gets populated each iteration (including elements of the led[] array that provide color data for non-existent LED strips.)

@marcmerlin

This comment has been minimized.

Show comment
Hide comment
@marcmerlin

marcmerlin Jun 19, 2018

Contributor

I'm using teensy 3.6 too, and arduino-1.8.5-teensyduino-1.41
I am currently running code with
FastLED.addLeds<WS2811_PORTD,3>(matrixleds, NUMMATRIX/3).setCorrection(TypicalLEDStrip);
and it works fine.
Maybe the bug got fixed since then?

Contributor

marcmerlin commented Jun 19, 2018

I'm using teensy 3.6 too, and arduino-1.8.5-teensyduino-1.41
I am currently running code with
FastLED.addLeds<WS2811_PORTD,3>(matrixleds, NUMMATRIX/3).setCorrection(TypicalLEDStrip);
and it works fine.
Maybe the bug got fixed since then?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment