A few Teensy 3.0 & addressable LED Questions

Status
Not open for further replies.

wasaler

Member
Hi All,

I was referred to the Teensy 3.0 from the Arduino forum by MichaelMeissner, and so Far I'm very impressed with it's capabilities and am seeing it add many possibilities to a project I am currently working on. I've briefly gone through the OctoWS2811 library (will read it in more detail later), and have a few questions pertaining to the feasibility of a project I am working on.

First things first: is the OctoWS2811 library compatible with the new WS2812b drivers? Given their differences are in mechanical construction and not programming protocol (same time based signals), I'm assuming yes?

--

The project I'm attempting is a sort of modular LED array setup. That is, I'm looking to make a few LED matrices that can interconnect and communicate with one another to form bigger or smaller matrices as tasks demand (probably going to look into using them for custom digital signs). Originally I was going to do this by having a separate ATMega chip for each matrix, then (somehow) figuring out how to have these ATMegas communicate when they are connected.

However, given that the Teensy 3.0 can run up to 8 strips/1000 LEDs at a time, it's likely possible to construct a master control w/ a Teensy board, then having some external hardware setup such that each matrix can plug into this control board. A few questions:
1) Is this feasible?
2) Would the Teensy be able to recognize when a matrix is added/detached? Not a big deal, but would be nice for software purposes.

--

On a slightly unrelated note: I also like to do some light painting once in a while, and have been trying to set this up myself ever since seeing this kickstarter project: http://www.kickstarter.com/projects/bitbangerlabs/pixelstick-light-painting-evolved?ref=category

Basically they store .bmp images in a microSD card, then call these images line by line (i.e. 1pix wide) into their LED strip. I have no idea how the structure of the code for this would even look like; can someone maybe give me a quick breakdown of the process?

Thanks everyone! :)
 
First things first: is the OctoWS2811 library compatible with the new WS2812b drivers?

Yes.

However, given that the Teensy 3.0 can run up to 8 strips/1000 LEDs at a time, it's likely possible to construct a master control w/ a Teensy board, then having some external hardware setup such that each matrix can plug into this control board. A few questions:
1) Is this feasible?

You would need to add extra hardware, and probably use another signal dedicated to reading the external hardware identification.

The WS2811 signal is transmit only.

2) Would the Teensy be able to recognize when a matrix is added/detached? Not a big deal, but would be nice for software purposes.

Only if you add extra hardware and write code to regularly query it. Or have it send a signal that you can recognize.


On a slightly unrelated note: I also like to do some light painting once in a while, and have been trying to set this up myself ever since seeing this kickstarter project: http://www.kickstarter.com/projects/bitbangerlabs/pixelstick-light-painting-evolved?ref=category

Basically they store .bmp images in a microSD card, then call these images line by line (i.e. 1pix wide) into their LED strip. I have no idea how the structure of the code for this would even look like; can someone maybe give me a quick breakdown of the process?

Like this?

http://forum.pjrc.com/threads/24535-OctoWS2811-POV-reading-BMP-from-SD-card
 
regarding your last point, the process for getting a bmp onto the pixels is reasonably straight forward once you think about the flow.
1) You need to have the SD card functioning with your Teensy, so do a basic set up test. such as the SDFat lib which incorporates test sketches withou anything else.
2) You need to have your LEDs functioning with the Teensy, so do a basic set up test with the OctoWS2811 lib and nothing else attached.
3) put both together and set up a routine that checks to see if there is an SD card, then checks to see if the file you want is there, and in the right format. This is where the work by ZTiK.nl comes in. His code does this 24bit bitmaps and then sends it to tft screen.
4) this code will Load the bmp pixel info into a buffer
5) compile the pixel info into a format that can be squirted into the LEDs rather than the tft
6) store this info into a buffer
7) access this buffer and, instead of sending it to tft, send the pixel info to the right LED pixel - this is one whole line of your image
8) show() for the length of time you need
9) go and grab the next line into buffer one, change to the correct format, out the other end and show.

btw, that pixelstick is a very cool project that deserves support imo
 
Last edited:
Status
Not open for further replies.
Back
Top