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

Thread: max leds for one port

  1. #1
    Junior Member
    Join Date
    Nov 2020
    Posts
    4

    max leds for one port

    What is the maximum leds recommended for one port of teensy3.2 with octows2811

  2. #2
    Senior Member
    Join Date
    Apr 2020
    Location
    DFW area in Texas
    Posts
    511
    Quote Originally Posted by morry View Post
    What is the maximum leds recommended for one port of teensy3.2 with octows2811
    @morry:

    From this <URL>, here are some stated limits (Note that these are assumed when using the OctoWS2811 Adapter, which supports 8 strips . . . may not be exactly what you were asking, but should give you some ideas):

    Code:
     LED Limits
    (per Teesny)
    
    What limits the number of LEDs can you use with each Teensy?
    
    1872: Teensy 3.0's RAM limit (90% used)
    
    4320 tested in this project
    
    4416: 60 HZ refresh
    
    6000: 120V USA power*
    
    8800: 30 Hz refresh (uses 86% of Teensy 3.2's available RAM)
    
    10920: Absolute maximum limit due to DMA hardware
    
    To connect more LEDs, use multiple Teensy and OctoWS2811 Adaptors with their SYNC signals tied together.
    
    * - Approximate, based on typical power supply efficiency and standard 15 amp circuit breakers
    Mark J Culross
    KD5RXT

  3. #3
    Junior Member
    Join Date
    Nov 2020
    Posts
    4
    OK guess I need to be more specific I was using the code below with ledsperstrip set to 1200 and Pixelcount set to 4800 and all seemed to work fine when I upped the Pixel count to 6000 to support added mega tree it seemed to work but then random leds started flashing on when they weren't supposed to using fpp 3.3 looks fine in xlights but display is different on fpp using code below. Have I exceed some limit? the random leds are in the mega tree where I added 830 leds connected to the 5th port of the octows2811
    /*
    ************************ Heinz Doessegger - www.technikfreak.ch ******************************

    Vchristmas v1.0 - January 2015
    Documentation for the project:
    Http://www.technikfreak.ch/category/...tsbeleuchtung/

    HARDWARE: TEENSY 3.1 / 3.2

    ARDUINO PLUGIN: TEENSYDUINO with OctoWS2811 library
    Http://www.pjrc.com/teensy/td_download.html

    LED: WS2811

    SOFTWARE: Vixen Lights 3.x
    Program to control WS2811 RGB LED by Vixen Lights 3.x http://www.vixenlights.com/
    DISPLAY CONFIGURATION - COMx (x = COM port of Arduino) 115200, None, 8 One
    SEND A TEXT HEADER: VIXStart
    Channels: Pro LED requires 3 channels (red / green / blue)
    Color Handling: RGB

    TIP: For beginners
    Start with a 50 series LED. LedsPerStrip and PixelCount to 50.
    In Vixen Lights, create 50 LED elements and map to 150 outputs via the Color Handling RGB.

    ************************ Heinz Doessegger - www.technikfreak.ch ******************************
    */

    #include <OctoWS2811.h>

    const int ledsPerStrip = 1200; // Maximum number of pixels per string
    int PixelCount = 6000; // Effective number of pixels
    float hell = .65; // Dimmer 1.00 = 100% brightness - 0.50 = 50% brightness

    DMAMEM int displayMemory[ledsPerStrip*6];
    int drawingMemory[ledsPerStrip*6];
    const int config = WS2811_GRB | WS2811_800kHz;
    OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
    int pixelValue = 0;

    void setup()
    {
    delay(300);
    Serial.begin(115200); // Speed of data transmission from Vixen Lights 3 to the Arduino

    leds.begin();
    for (int i=0;i<PixelCount;i++) // Initialization - Once all LEDs light up blue
    {
    leds.setPixel(i, 200*hell, 0, 0);
    }
    leds.show();
    delay (5000);
    for (int i=0;i<PixelCount;i++)
    {
    leds.setPixel(i, 0, 0, 0);
    }
    leds.show();
    }

    void loop()
    {

    if (Serial.available()>5) // Wait for data transmission from Vixen Lights
    {
    waitForVixenHeader(); // Call function: Waiting for start string

    for (int pixCount=0; pixCount<PixelCount;pixCount++) // Do this for as many Pixels defined in PixelCount
    {
    int RGB[3]; // Array for the three RGB color valuesArray for the three RGB color values
    for (int color = 0;color<3;color++) // Three values each form one RGB LED
    {
    while (Serial.available() < 1) // Wait for the next number
    {
    delay(10);
    }
    RGB[color] = int(Serial.read()*hell); // Assign color value to the array with brightness correction
    } // Repeat until all three values are read

    leds.setPixel(pixCount, RGB[1], RGB[0], RGB[2]);

    } // Repeat until all LEDs are read
    leds.show(); // Activate color patterns
    } // Get the next color pattern
    } // Loop end

    void waitForVixenHeader()
    {
    char *header="VIXStart";
    char buffer[8];
    int index = 0;

    while (true)
    {
    int inByte = Serial.read();
    if(inByte==-1)
    {
    continue;
    }

    buffer[index] = inByte;
    if(buffer[index]!=header[index])
    {
    index=-1;
    }

    buffer[index+1] = 0;
    index++;
    if(index==8)
    {
    return;
    }
    }
    }

  4. #4
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    27,081
    Quote Originally Posted by morry View Post
    What is the maximum leds recommended for one port of teensy3.2 with octows2811
    The absolute maximum is 1365 RGB LEDs per pin. With 8 pins, that would be 10920 LEDs. Teensy 3.2 does not have enough memory for double buffering with that many LEDs, 10920 it could be done with a single buffer.

    The latest version supports RGBW, where the limit would be LEDs 1023 per pin.

    These upper limits are imposed by the DMA engine's 15 bits for the DMA transfer minor loop count. Each minor loop count transmits 1 bit, so each pin can transmit a maximum of 32767 bits of LED data. Since a regular RGB LED has 24 bits, this means only 1365 LEDs can be used per pin.

    In terms of recommended limits, usually 1100 or 550 per pin are good limits, since the speed of communication limits the refresh rate to 30 or 60 Hz with those lengths.

  5. #5
    Junior Member
    Join Date
    Sep 2022
    Posts
    1
    Quote Originally Posted by PaulStoffregen View Post
    The absolute maximum is 1365 RGB LEDs per pin. With 8 pins, that would be 10920 LEDs. Teensy 3.2 does not have enough memory for double buffering with that many LEDs, 10920 it could be done with a single buffer.

    The latest version supports RGBW, where the limit would be LEDs 1023 per pin.

    These upper limits are imposed by the DMA engine's 15 bits for the DMA transfer minor loop count. Each minor loop count transmits 1 bit, so each pin can transmit a maximum of 32767 bits of LED data. Since a regular RGB LED has 24 bits, this means only 1365 LEDs can be used per pin.

    In terms of recommended limits, usually 1100 or 550 per pin are good limits, since the speed of communication limits the refresh rate to 30 or 60 Hz with those lengths.
    My bad for reviving for an old thread, but this is via Google one of the first hits concerning this subject. Is the above still true for the Teensy 4.1? Or maybe improve or actually became less? Or is this is a limit of the chip used in the led strip itself?

Posting Permissions

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