OctoWS2811 and LED signal flow direction to Glediator or Jinx

Status
Not open for further replies.

RokGoblin

Active member
@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.
Glediator Config.JPG
20191103_010657.jpg

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);
}
 
hi there, I had a look at my Glediator settings for a project last year using the octoboard, and I had Pixel Order = HL_TL and Board Order = HS_TL. so perhaps your pixel order should be HL_TR and board order should be HS_TR?
 
hi there, I had a look at my Glediator settings for a project last year using the octoboard, and I had Pixel Order = HL_TL and Board Order = HS_TL. so perhaps your pixel order should be HL_TR and board order should be HS_TR?
YESSSS!!!!!!!!!!!!!! YOU ROCK!!!!!!!!! or OONCE OONCE!!!!!!!!!...whichever you prefer....I'm more of an oonce oonce myself mixed with a bit of rock block.

Thank you so much

Now that I have this resolved and have your attention, do you happen to know how to establish a master/slave relationship between 2 Octo/Teensy combos? I have another thread you could probably find and answer some questions there if you do. I was trying to change the "Borads_X" and "Boards_Y" values under Glediator Output Options to reflect 2 boards in the Y axis (on top of one another), but they are disabled.
 
you may find that boards is greyed out unless you change output mapping mode to "boards of pixels" rather than "single pixels". this is under menu>options>output. but I have not used this option, so am not sure if it will resolve the issue. Once Boards of pixels is selected, you will find that you can alter the number of pixels per board and the row number etc.
 
Status
Not open for further replies.
Back
Top