@PaulStoffgren the master...or maybe @mortonkopf
Help please, I am trying to fix an issue with my LED output to Glediator where every other strip is running in the opposite direction.
I currently have it configured as HS-TR in Glediator and Single Pixels output, as I understand this is Horizontal Snake - Top Right, which is where my first LED strip comes in on it's own input wire from OctoWS2811. The first strip is connected through the Octo Ethernet port to Pin 2 on Teensy as I understand followed by pins 14, 7, 8, 6, 20, 21, and 5 for the remaining 7 strips. This first "channel"(as I am referring to it here), according to the documentation is the Orange/and Orange-White pair on the CAT6 cable. Each additional strip has it's own Ethernet cable (pair) back to the Octo board. The *.ino file specifies each strip has 150 LEDs and a total count of 1200 (150 x 8 strips), see code below.
Here is where a lot more assumption begins, Octo seems to output in order on all 8 channels, for example "channel" two (pin 14 on Teensy) seems to output the correct signal for the matrix after channel 1 (pin 2), but it is in the opposite direction as if I had a zig zag LED pattern configured, which I do not. Each strip of 150 LEDs is it's own run into the right side of my matrix with no zig zag.
As I understand, each line of resolution in the array is a "channel" connected to an output pin on Teeensy via Octo. All of these assumptions are based on trial and error observation over the past week.
Is there some code I can include in the Glediator ino file that tells Octo how to send data (parallel, instead of in series...I think), and from there I will need to know how to continue to send more data to additional Octo/Teensy boards in teh matrix, but one step at a time.
Help please, I am trying to fix an issue with my LED output to Glediator where every other strip is running in the opposite direction.
I currently have it configured as HS-TR in Glediator and Single Pixels output, as I understand this is Horizontal Snake - Top Right, which is where my first LED strip comes in on it's own input wire from OctoWS2811. The first strip is connected through the Octo Ethernet port to Pin 2 on Teensy as I understand followed by pins 14, 7, 8, 6, 20, 21, and 5 for the remaining 7 strips. This first "channel"(as I am referring to it here), according to the documentation is the Orange/and Orange-White pair on the CAT6 cable. Each additional strip has it's own Ethernet cable (pair) back to the Octo board. The *.ino file specifies each strip has 150 LEDs and a total count of 1200 (150 x 8 strips), see code below.
Here is where a lot more assumption begins, Octo seems to output in order on all 8 channels, for example "channel" two (pin 14 on Teensy) seems to output the correct signal for the matrix after channel 1 (pin 2), but it is in the opposite direction as if I had a zig zag LED pattern configured, which I do not. Each strip of 150 LEDs is it's own run into the right side of my matrix with no zig zag.
As I understand, each line of resolution in the array is a "channel" connected to an output pin on Teeensy via Octo. All of these assumptions are based on trial and error observation over the past week.
Is there some code I can include in the Glediator ino file that tells Octo how to send data (parallel, instead of in series...I think), and from there I will need to know how to continue to send more data to additional Octo/Teensy boards in teh matrix, but one step at a time.
Code:
// Glediator example with OctoWS2811, by mortonkopf//
// https://forum.pjrc.com/threads/33012-Gladiator-with-OctoWS2811-working-example
// You can also use Jinx to record Glediator format data to a SD card.
// To play the data from your SD card, use this modified program:
// https://forum.pjrc.com/threads/46229&viewfull=1#post153927
#include <OctoWS2811.h>
/* Running 2 OctoWS2811 boards with sync wired together
* Can't figure out how to get the sync to work at all
* each Octo/Teensy has 1200 LEDs 8 stips x 150 each
* Both combined makes 2400 LEDs total and 16 strips
* Each strip is it's own data run with no zig zag or snake/ladder
* Currently the strips are opposing one another on the next row rather than
* all strips moving in teh same orientation left to right
* Scrolling text is split half left/right and half right/left
*/
const int ledsPerStrip = 150;
const int NUM_LEDS =1200;
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_GRB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
void setup() {
leds.begin();
leds.show();
}
int serialGlediator() {
while (!Serial.available()) {}
return Serial.read();
}
void loop() {
byte r,g,b;
int i;
while (serialGlediator() != 1) {}
for (i=0; i < NUM_LEDS; i++) {
b = serialGlediator();
r = serialGlediator();
g = serialGlediator();
leds.setPixel(i, Color(r,g,b));
}
leds.show();
}
/* Helper functions */
// Create a 24 bit color value from R,G,B
unsigned int Color(byte r, byte g, byte b)
{
return (((unsigned int)b << 16) | ((unsigned int)r << 8) | (unsigned int)g);
}