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

Thread: amplifying/extending ws2812 digital signal?

  1. #1
    Senior Member
    Join Date
    Nov 2012
    Location
    Los Angeles
    Posts
    102

    amplifying/extending ws2812 digital signal?

    Hi all,
    Need some advice, and curious if it's even feasible. I'm working on a project with a t3.2 at the center, using the fastLED library to drive a bunch of ws2812 LED's. No issues controlling the LEDs as needed via the Teensy. I believe my issues are electrical. I have 8 "clusters" of LEDs, with 16 LEDs in each cluster. D-out from 1 cluster connects to D-in of the next cluster (i.e. daisy chained). There's roughly 12' of cable between clusters. Power is injected separately into each cluster. Ground is shared among all components. Using a 74HCT245 Level Shifter at the Teensy. Issue: by the time I get to the 7th or 8th cluster, I start to get flicker. Plenty of power in each cluster, so guessing the issue is that the digital signal isn't "strong" enough by the time it gets to the last couple clusters.

    Question: would it be possible to amplify the digital signal just before it leaves each cluster to help ensure a good signal by the time it gets to the end? Or does anyone have any pointers on how best to ensure the signal gets all the ways to the end? My hope was that it would get a boost of some sort leaving each LED, but doesn't appear to the be the case (at least with these LEDs).

    Thanks in advance for any pointers,
    David

    P.S. currently using 28awg wire for data signal. Thinking of going to 26awg. Will certainly test, but curious if smaller gauge wire could theoretically help as well.
    Last edited by virtualdave; 02-12-2020 at 06:18 AM.

  2. #2
    Senior Member
    Join Date
    Feb 2016
    Location
    Australia
    Posts
    251
    Quote Originally Posted by virtualdave View Post
    Question: would it be possible to amplify the digital signal just before it leaves each cluster to help ensure a good signal by the time it gets to the end? Or does anyone have any pointers on how best to ensure the signal gets all the ways to the end? My hope was that it would get a boost of some sort leaving each LED, but doesn't appear to the be the case (at least with these LEDs).
    My understanding is each ws2811 chip gerates the signal for the next chip. Perhaps its a noise issue.
    The popular way people extend the ws2811 signal from your controller is a cheap pair of rs485 boards. I suppose this would work having a pair between each cluster but I don't think thats your problem.

  3. #3
    Senior Member
    Join Date
    Nov 2012
    Location
    Los Angeles
    Posts
    102
    thanks for your help. never considered rs485 for this. I built a quick circuit but only the first LED in the chain lights up, and flickers like crazy. I'll keep digging into this option, tho!

  4. #4
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,303
    If you're using the default FastLED driver, try adding this before the FastLED.h include.

    Code:
    #define FASTLED_ALLOW_INTERRUPTS 0
    Usually interrupt problems manifest as flicker or corruption after about 70 LEDs, so this is unlikely to matter if you're seeing problems after so few LEDs. But it's so easy to try, before you spend so much time changing wires.

    This is a non-issue if you use the WS2812Serial driver & library, which also gives you non-blocking updates, but requires more memory. Usually on Teensy 3.2 that's a good trade-off, since there's plenty of memory.

Posting Permissions

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