Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 4 of 4

Thread: OctoWS2811 and LED signal flow direction to Glediator or Jinx

  1. #1
    Member
    Join Date
    Jun 2019
    Location
    Arvada, CO
    Posts
    28

    OctoWS2811 and LED signal flow direction to Glediator or Jinx

    @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.
    Click image for larger version. 

Name:	Glediator Config.JPG 
Views:	2 
Size:	67.7 KB 
ID:	18101
    Click image for larger version. 

Name:	20191103_010657.jpg 
Views:	2 
Size:	193.9 KB 
ID:	18102

    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);
    }

  2. #2
    Senior Member mortonkopf's Avatar
    Join Date
    Apr 2013
    Location
    London, uk
    Posts
    911
    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?

  3. #3
    Member
    Join Date
    Jun 2019
    Location
    Arvada, CO
    Posts
    28

    Cool

    Quote Originally Posted by mortonkopf View Post
    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.

  4. #4
    Senior Member mortonkopf's Avatar
    Join Date
    Apr 2013
    Location
    London, uk
    Posts
    911
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •