Results 1 to 7 of 7

Thread: Pixel Grid Problems - Please Help!

  1. #1
    Join Date
    Nov 2016
    Posts
    6
    Post Thanks / Like

    Default Pixel Grid Problems - Please Help!

    Hello group!

    I have the Boscoyo Stocking w/matrix and am using Vixen 3.4. When I set up the matrix which is horizontally placed (7 high, 20 across) and place text - it scrolls vertically and you can barely read it. I am wondering if I've pushed the pixels incorrectly. Here's a mock up of how I pushed them....the number represent the pixel ;)

    20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
    21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
    60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41
    61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
    and so forth.

    Can someone please help me?

    Thanks so much,
    PP

  2. #2
    Join Date
    Jan 2016
    Location
    West Bloomfield, MI
    Posts
    722
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    Make sure that in both Display setup and Preview setup you have your strings going horizontally.
    Ed
    Happily retired

  3. #3
    Join Date
    Nov 2011
    Location
    Chicago - Southwest Suburbs
    Posts
    8,290
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    In vixen, the order of the elements is always bottom left to top right.
    If it's set up horizontally, it's like this...

    61 ... 80
    41 ...60
    21 ...40
    1 ... 20

    That doesn't mean that's how you need to push your pixels. But if you don't, you then need to do the translation when you're patching.

    So since you did it top right, to bottom left, AND you zig zagged, you need to patch one row at a time.
    First select the whole matrix group, then click the button below to show the patched controller channels.
    Then hit the "unpatch controllers" button. Make sure to use the "unpatch controllers" button and NOT the "unpatch elements" This will unpatch all those controller channels.
    Leave those controller channels selected.

    Now select the first group, check "reverse elements" (not reverse outputs) and hit patch
    Select the second group. do NOT check "reverse elements" and hit patch
    3rd group, reverse and patch
    4th group, no reverse and patch.
    etc....


    Now back in the sequencer, make sure your effects are set to horizontal string orientation, and you'll be all good.

  4. #4
    Join Date
    Mar 2015
    Location
    Kent, WA
    Posts
    29
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    here is a code that prints test on matrix, would like to use it for multiple grids as serial read anyone have ideas

    Code:
    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
     
    #define PIN 12
     
    // MATRIX DECLARATION:
    // Parameter 1 = width of NeoPixel matrix
    // Parameter 2 = height of matrix
    // Parameter 3 = pin number (most are valid)
    // Parameter 4 = matrix layout flags, add together as needed:
    //   NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
    //     Position of the FIRST LED in the matrix; pick two, e.g.
    //     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
    //   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
    //     rows or in vertical columns, respectively; pick one or the other.
    //   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
    //     in the same order, or alternate lines reverse direction; pick one.
    //   See example below for these values in action.
    // Parameter 5 = pixel type flags, add together as needed:
    //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
    //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
     
    Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(32, 8, PIN,
      NEO_MATRIX_BOTTOM    + NEO_MATRIX_RIGHT +
      NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
      NEO_GRB            + NEO_KHZ800);
     
    const uint16_t colors[] = {
      matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(255, 255, 0),matrix.Color(0, 0, 255), matrix.Color(255, 0, 255), matrix.Color(0, 255, 255), matrix.Color(255, 255, 255)};
     
    void setup() {
      matrix.begin();
      matrix.setTextWrap(false);
      matrix.setBrightness(5);
      matrix.setTextColor(colors[0]);
    }
     
    int x    = matrix.width();
    int pass = 0;
     
    void loop() {
      matrix.fillScreen(0);
      matrix.setCursor(x, 0);
      matrix.print(F("Test"));
     
      if(--x < -30)
    {
        x = matrix.width();
     
        if(++pass >= 8) pass = 0;
        matrix.setTextColor(colors[pass]);
      }
      matrix.show();
      delay(30);
    }
    will post the one i have tried to implement with no success when i find it again

  5. #5
    Join Date
    Dec 2011
    Posts
    7,262
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    Quote Originally Posted by skykicker View Post
    here is a code that prints test on matrix, would like to use it for multiple grids as serial read anyone have ideas

    Code:
    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
     
    #define PIN 12
     
    // MATRIX DECLARATION:
    // Parameter 1 = width of NeoPixel matrix
    // Parameter 2 = height of matrix
    // Parameter 3 = pin number (most are valid)
    // Parameter 4 = matrix layout flags, add together as needed:
    //   NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT:
    //     Position of the FIRST LED in the matrix; pick two, e.g.
    //     NEO_MATRIX_TOP + NEO_MATRIX_LEFT for the top-left corner.
    //   NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: LEDs are arranged in horizontal
    //     rows or in vertical columns, respectively; pick one or the other.
    //   NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: all rows/columns proceed
    //     in the same order, or alternate lines reverse direction; pick one.
    //   See example below for these values in action.
    // Parameter 5 = pixel type flags, add together as needed:
    //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
    //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
     
    Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(32, 8, PIN,
      NEO_MATRIX_BOTTOM    + NEO_MATRIX_RIGHT +
      NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
      NEO_GRB            + NEO_KHZ800);
     
    const uint16_t colors[] = {
      matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(255, 255, 0),matrix.Color(0, 0, 255), matrix.Color(255, 0, 255), matrix.Color(0, 255, 255), matrix.Color(255, 255, 255)};
     
    void setup() {
      matrix.begin();
      matrix.setTextWrap(false);
      matrix.setBrightness(5);
      matrix.setTextColor(colors[0]);
    }
     
    int x    = matrix.width();
    int pass = 0;
     
    void loop() {
      matrix.fillScreen(0);
      matrix.setCursor(x, 0);
      matrix.print(F("Test"));
     
      if(--x < -30)
    {
        x = matrix.width();
     
        if(++pass >= 8) pass = 0;
        matrix.setTextColor(colors[pass]);
      }
      matrix.show();
      delay(30);
    }
    will post the one i have tried to implement with no success when i find it again
    You should start your own thread for help with this .

  6. #6
    Join Date
    Mar 2015
    Location
    Kent, WA
    Posts
    29
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    here is the one I tried to comple for serial read
    Code:
    
    // You must download and install the library from http://fastled.io/
    #include <FastLED.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_NeoMatrix.h>
    #include <Adafruit_NeoPixel.h>
    #ifndef PSTR
    #define PSTR // Make Arduino Due happy
    #endif
    
    #define NUM_STRIPS 44                             // Changed from original for 3 strings
    #define NUM_LEDS_PER_STRIP 22                    // Using 63 pixels per string
    #define NUM_LEDS NUM_LEDS_PER_STRIP * NUM_STRIPS // Total number of LEDs
    #define PIN 8
    
    
    CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
    
    
    Adafruit_NeoMatrix matrix1 = Adafruit_NeoMatrix(NUM_STRIPS, NUM_LEDS_PER_STRIP, PIN,
                                 NEO_MATRIX_TOP     + NEO_MATRIX_LEFT +
                                 NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
                                 NEO_GRB            + NEO_KHZ800);
    
    const uint16_t colors[] = {
        matrix1.Color(255, 0, 0), matrix1.Color(0, 255, 0), matrix1.Color(255, 255, 0), matrix1.Color(0, 0, 255), matrix1.Color(255, 0, 255), matrix1.Color(0, 255, 255), matrix1.Color(255, 255, 255)
    };
     
    
    void setup() {
      // Define the speed of the serial port
      Serial.begin(115200);
        matrix1.begin();
      matrix1.setTextWrap(false);
    
    }
    
    void loop() {
      // Set some counter / temporary storage variables
      int cnt;
      unsigned int num_leds;
      unsigned int d1, d2, d3;
    
      // Begin an endless loop to receive and process serial data
      for (;;) {
        // Set a counter to 0. This couter keeps track of the pixel colors received.
        cnt = 0;
        //Begin waiting for the header to be received on the serial bus
        //1st character
        while (!Serial.available());
        if (Serial.read() != '>') {
          continue;
        }
        //second character
        while (!Serial.available());
        if (Serial.read() != '>') {
          continue;
        }
        //get the first digit from the serial bus for the number of pixels to be used
        while (!Serial.available());
        d1 = Serial.read();
        //get the second digit from the serial bus for the number of pixels to be used
        while (!Serial.available());
        d2 = Serial.read();
        //get the third digit from the serial bus for the number of pixels to be used
        while (!Serial.available());
        d3 = Serial.read();
        //get the end of the header
        while (!Serial.available());
        if (Serial.read() != '<') {
          continue;
        }
        while (!Serial.available());
        if (Serial.read() != '<') {
          continue;
        }
        // calculate the number of pixels based on the characters provided in the header digits
        num_leds = (d1 - '0') * 100 + (d2 - '0') * 10 + (d3 - '0');
        // ensure the number of pixels does not exceed the number allowed
        if (num_leds > NUM_LEDS) {
          continue;
        }
        /*  ----have commeted this section to try and use matrix only----
            // CODE ADDED - tell FastLED there's 63 PIXEL leds on pin 8, starting at index 0 in the led array
            //this line change for one long string
            FastLED.addLeds<WS2811, 8, RGB>(leds, 0, NUM_LEDS_PER_STRIP);
            // CODE ADDED - tell FastLED there's 63 PIXEL leds on pin 9, starting at index 64 in the led array
            FastLED.addLeds<WS2811, 9, RGB>(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
            // CODE ADDED - tell FastLED there's 63 PIXEL leds on pin 10, starting at index 127 in the led array
            FastLED.addLeds<WS2811, 10, RGB>(leds, NUM_LEDS_PER_STRIP * 2, NUM_LEDS_PER_STRIP);
            // CODE ADDED - tell FastLED there's 63 PIXEL leds on pin 11, starting at index 190 in the led array
            FastLED.addLeds<WS2811, 11, RGB>(leds, NUM_LEDS_PER_STRIP * 3, NUM_LEDS_PER_STRIP);
            // FastLED.addLeds<WS2811, 8,RGB>(leds, 0, 256);
        */
        do {
          while (!Serial.available());
          leds[cnt].r = Serial.read();
          while (!Serial.available());
          leds[cnt].g = Serial.read();
          while (!Serial.available());
          leds[cnt++].b = Serial.read();
        }
        while (--num_leds);   // Tell the FastLED Library it is time to update the strip of pixels
    //    FastLED.show();       // WOO HOO... We are all done and are ready to start over again!
        matrix.show(); //hopefully will display
      }
    }

  7. #7
    Join Date
    Mar 2015
    Location
    Kent, WA
    Posts
    29
    Post Thanks / Like

    Default Re: Pixel Grid Problems - Please Help!

    sorry though i clicked back to mine

Bookmarks

Posting Permissions

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