Controlling NeoPixel from Teensy

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
paulstoffregen
 
Posts: 444
Joined: Sun Oct 11, 2009 11:23 am

Re: Controlling NeoPixel from Teensy

Post by paulstoffregen »

adafruit wrote:Is there any smaller buffer chips that you think would work? like an 8 or 12 DIP? the 245s are just so huge!
I'm pretty sure 14 pins is the smallest DIP package that's commonly available. 74HCT125 is probably the best choice in 14 pin format.

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Controlling NeoPixel from Teensy

Post by adafruit »

paulstoffregen wrote:My "grumpy" strip came from a might-as-well-be-nameless merchant on Aliexpress. Or maybe it was Ebay? I really don't recall now.

For anyone reading this thread, buying from those no-name sources is risky. With Adafruit you get a known good product from a great company with excellent support. I often buy Adafruit stuff. But as a library author and the developer of the Teensy platform, I also intentionally seek out the very worst stuff so I can test it. Sometimes I even swap some free Teensys for terribly problematic hardware a customer found.
ooh yeah, we get from WS direct! Sorry to hear about the 'grumpy' strip but that will help us debug issues with other customers :)

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Controlling NeoPixel from Teensy

Post by adafruit »

paulstoffregen wrote:
adafruit wrote:Is there any smaller buffer chips that you think would work? like an 8 or 12 DIP? the 245s are just so huge!
I'm pretty sure 14 pins is the smallest DIP package that's commonly available. 74HCT125 is probably the best choice in 14 pin format.
Oh hey we stock that too. we'll try to get that in ASAP :)

User avatar
dsamarin
 
Posts: 3
Joined: Wed Apr 11, 2012 4:34 pm

Re: Controlling NeoPixel from Teensy

Post by dsamarin »

Great thread with lots of info pertaining to a problem I'm currently bumping into (running the black Adafruit 144-led neopixel strip with a Teensy 3.0 and level shifter).

Two questions:

1.) If I bought the 30-pixel/m white strip (pid 1376) from the Adafruit store right now, would I be getting the WS2812 or WS2812B pixels? Currently, the picture shows the pixels with 6 pins (WS2812) as opposed to 4 pins (WS2812B).

2.) On page 3 of this thread, 1chicagodave did some datasheet and library dissection and determined that in Adafruit_Neopixel.cpp, signal timings for the Teensy 3.0 and 3.1 can be changed by altering the divisor in the code:

Code: Select all

#if defined(__MK20DX128__) || defined(__MK20DX256__) // Teensy 3.0 & 3.1
#define CYCLES_800_T0H  (F_CPU / 2500000)
#define CYCLES_800_T1H  (F_CPU / 1250000)
#define CYCLES_800      (F_CPU /  800000)
#define CYCLES_400_T0H  (F_CPU / 2000000)
#define CYCLES_400_T1H  (F_CPU /  833333)
#define CYCLES_400      (F_CPU /  400000)
If I modified one set (800k) or the other (400k) to run at 600khz, could I be in the sweet spot for clocking these pixels? Like dave mentioned, these two options are running on the margins of what the chinese datasheet says to run at. Has anyone tested running at 600khz? (Maybe I'd be first. I've got a month or so till showtime with this project.) I'd love to be able to run the WS2812B's without buying more/different hardware, since we've got a few surplus strips leftover from a project at work, and I've got a teensy3.0 in hand. (I've also got the Arduino mega 2560 which runs the strip nicely, but the board is too bulky for this project).

Thanks for the help everyone.

--d

adafruit
 
Posts: 12151
Joined: Thu Apr 06, 2006 4:21 pm

Re: Controlling NeoPixel from Teensy

Post by adafruit »

All strips are coming in as 'Bs now - you should assume all strips and breakouts and such are moving to B

User avatar
paulstoffregen
 
Posts: 444
Joined: Sun Oct 11, 2009 11:23 am

Re: Controlling NeoPixel from Teensy

Post by paulstoffregen »

If you get a "grumpy" strip that refuses to recognize 3.3V signals, no amount of fiddling with timing parameters will do anything. Many of the "B" ones do work with 3.3V signals, so there's really no way to tell for certain if any particular strip will work, other than just trying it.

If you're planning a large LED project (1000+ LEDs), a 74HCT245 buffer and impedance matching resistors can save you a lot of time. Even if the strips recognize 3.3V signals, when you have so many LEDs, even if you use large wires, you'll get some voltage drop along the ground wires. Typically these problems show up as a (perhaps small) portion of your display flickering when the whole display shows certain colors or combinations of colors. 5V signals will buy you extra margin to allow for imperfect grounds.

PJRC is currently making an adaptor board with the buffer, resistors, and connectors for CAT6 cables to enable the best possible wiring scheme. It's due in about 2 weeks. I know your goal was to not buy anything other parts, but if you're connecting a large number of LEDs, a proper buffer and good quality wiring will save you a lot of time and trouble.

If you're only connecting a couple hundred LEDs, and your strips recognize 3.3V signals, you can probably get away with not using the buffer chip.

User avatar
dsamarin
 
Posts: 3
Joined: Wed Apr 11, 2012 4:34 pm

Re: Controlling NeoPixel from Teensy

Post by dsamarin »

Thanks for the responses.

I currently have adafruit's level shifter board based on the TXB0108. I have no hard proof yet but I think the ground lift is confusing the bi-directionality and causing my 'outputs' to hi-Z at weird times. I'll have to single-point-ground everything and see where I end up. I'm only driving 144 pixels as I prototype, and I plan on only driving 60 in the final project, so I might be able to squeak by with 3.3V signaling and a good wiring scheme.

Thanks again and sorry for digging up the thread!

User avatar
paulstoffregen
 
Posts: 444
Joined: Sun Oct 11, 2009 11:23 am

Re: Controlling NeoPixel from Teensy

Post by paulstoffregen »

The TXB0108 has weak output. Place it as close as reasonably possible to the LED strip. Do not connect a long wire (more than a few inches) between the TXB0108 and LED strip.

User avatar
ALF666
 
Posts: 2
Joined: Wed Dec 13, 2017 9:53 am

Re: Controlling NeoPixel from Teensy

Post by ALF666 »

Hi all :)

I found this topic while searching information about 74HCT245N .. but my question to somebody who knows all :D can I use this level shifter >> 74AHCT1G125W5-7 instead of 72HCT245N ??

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Controlling NeoPixel from Teensy

Post by adafruit_support_bill »

We've been using the quad-gate 74AHCT125 for a while now. https://www.adafruit.com/product/1787
The single-gate "1G" version should work fine too.

User avatar
ALF666
 
Posts: 2
Joined: Wed Dec 13, 2017 9:53 am

Re: Controlling NeoPixel from Teensy

Post by ALF666 »

Ok... will try and let you know how it works. It cost almost nothing :D but it is much smaller than quadgate and for leds I'll be using only one gate :D

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”