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

Thread: fastLED Teensy 3.2 WS2813 Strip- No Joy

  1. #1

    fastLED Teensy 3.2 WS2813 Strip- No Joy

    Relative noob trying to get this setup to work.
    Just using basic examples (blink, cylon, firstlight) that come from the library version 3.2.6
    Compiles & uploads alright but can't get a light to come on.
    Using separate 5V PSU for strip and USB power for Teensy 3.2
    WS2813 has 300 leds but have only been trying to get various small numbers to work with Fastled library. Setting numleds to like 1, 3, 5, 10, etc.
    My base wiring is Teensy 3.2 pin 14 (A0) to 430ohm to DI on WS2813 strip.

    Grounds between PSU, teensy and LED strip are all jumpered together as I've seen recommended in other articles online.

    I tried wiring scenarios where:

    • BI and DI were tied together to same teensy input described above.
    • BI landed to nothing.
    • BI was tied to input described above


    Also tried using different led constructors fastleds.addleds<>

    WS2812, WS2812B, WS2811, DOTSTAR.

    The fastled library includes a bunch of pre-filled in (but commented out) constructors (see code example). There isn't one for WS2813 listed but if you type it in it is recognized so I presume that would have been the best to use. No dice though. I've seen articles online saying the WS2813 strip uses the same communication protocol for WS2812 and WS2812B though so really not sure.

    Any suggestions greatly appreciated.
    Also posted on Reddit/fastLED

    Code:
    #include <FastLED.h>
    #include <arduino.h>
    // How many leds in your strip?
    #define NUM_LEDS 1
    
    // For led chips like Neopixels, which have a data line, ground, and power, you just
    // need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
    // ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
    #define DATA_PIN 14
    //#define CLOCK_PIN 13
    
    // Define the array of leds
    CRGB leds[NUM_LEDS];
    
    void setup() { 
          // Uncomment/edit one of the following lines for your leds arrangement.
          // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
       // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
       //FastLED.addLeds<WS2812, DATA_PIN, GRB>(leds, NUM_LEDS);
           FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
      	  // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
          // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
          
          // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<P9813, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<DOTSTAR, RGB>(leds, NUM_LEDS);
    
          // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
    }
    
    void loop() { 
      // Turn the LED on, then pause
      leds[0] = CRGB::Red;
      FastLED.show();
      delay(1000000);
      // Now turn the LED off, then pause
      leds[0] = CRGB::Black;
      FastLED.show();
      delay(1000000);
    }
    Tried to upload pic of my wiring but kept getting error.

  2. #2
    Removed the resistor and it worked. Output signal thru resister was dropping data line voltage too low.

  3. #3
    Senior Member crees's Avatar
    Join Date
    Dec 2016
    Location
    Utah
    Posts
    145
    Yes . Most of these types of leds really work better with a level shifter. This is why Paul has the octows2811 available to show how to effectively drive the ws281x variants.

    Just recently world semi announced a new led that will work with 3.3g logic. These newer ledís Donít need a level shifter.

Posting Permissions

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