Pov project / Teensy - Beaglebone - ?

Status
Not open for further replies.

Myslite

New member
Hi !

I want to make a pov project, and need your help to determinate what kind of board I should use.

I bought some ws2812*(http://www.adafruit.com/products/1507)*from adafruit.* I already know that's not the greatest choice because of the*refresh rate, but for my project I just need from 72 to 96 leds (and I need their high density of pixels.)

My idea to solve this problem was to divide each strips into smaller one. That's why I first think to use some teensy board: if each neopixel could be divided into eight part, one teensy will drive 72 to 96 leds, (so 8x9 leds to 8x12 for a refresh rate from 320us to 410us for each teensy module.)

=> 8 ledstrips which contained 9 leds | the refresh rate for 1 led is 30us + 50us at the end of each strips.
So 9*30 + 50 = 320us

In order to see an entire image, it must be printed in the pov range, it means =< 40ms

So 97 to 125 ( = 40/0.320 ) frames. (which would be fine for my project).

I saw a project named Ledscape (I see two thread on this forum, and made some research on it)
If I understand what it does, it should be cheaper for me to use a beaglebone to drive several module of 8x9 or 8x12 leds.
(but I really don't know how to use it, or which files I have to study and modify)
I need a communication between the boards (the ethernet, and sd card from the beaglebone should be nice for that).

Because of the specific refresh rate from the neopixel strips, the project passed from arduino/artnet to teensy/artnet or usb to beaglebone+ethernet

Here is my question :
Am I understanding the ledscape project the good way ? Could it fit my project ?

Thanks in advance.
beaglebone.jpg
 
Myslite, the Teensy 3* can work with upto 1000 leds on the 3.0 and many more on the 3.1. you can arrange 8 led strips from each Teensy (physically and by numbering in software) to give the impression of separate blocks, or odd shapes, and make it seem as though there are multiple 8*9 arrays. From your description, I am not sure what you are hoping for, are you intending to use the beaglebone as the generator of the graphic, and the Teensy as the led driver device? The image in your post is a bit confusing as I don't see a Teensy. Is this project to run without a computer generating the graphic output? Depending on what you are trying to do, you may only need the one Teensy as it is a small array:

Beaglebone----(generates graphic array info)--->Teensy (converts incoming data into structure for array)------->leds
 
Last edited:
You cannot drive the Neopixel Strips directly with a Beaglebone Black! The description on the Adafruit site mentions that due to the very critical timing requirements "but it will not work with the Raspberry Pi" That same applies to the Beagle Bone Black as it also runs a Linux Operating system that cannot guarantee the precise timing requirements.

The only thing that will guarantee these timing requirements are microcontrollers that usually don't run an operation system (hold your horses RTOS fans) and that have a faster clock rate than 16MHz. For your Project the Teensy 3 (or 3.1) would be a perfect solution.

The solution mortonkopf posted above would work.
 
Thanks for your help!

Maybe my question wasn't clear. I already know that teensy will drive my 8 * 9 leds strips.
But for one image shown as POV (= 1 x (8x9) ) , I need one teensy.
And I know the « very critical timing requirements », that's why I wanted to physically divide the strips.

So Mortonkopf's proposition would work :
Beaglebone----(generates graphic array info)--->Teensy (converts incoming data into structure for array)------->leds

But I want to drive several modules, in order to print several images.


Several teensy + several wiznet module + a beaglebone would cost too much compare to the other solutions (if it works).

My attached image show this example. It just works with beaglebone and the ledscape project.
(That make possible the use of neopixel with beaglebone, as shown on the adafruit site (section überguide) )

I don't know well this project, nor beaglebone. So my questions was : do someone knows how it works, and if it's possible to modify it for my installation.
(The ledscape project was made for « the BeagleBone Black that uses the PRU ("Programable Realtime Units") to drive 64*RGB matrices or 32 of the WS2811 LED strips with 0% CPU load. » (source : http://trmm.net/LEDscape) )

Or, do you know an easier and cheaper solution with teensy/arduino/... ?
 
That makes it clearer.
If you want answers to questions revolving around Beaglebone BlacK perhaps ask on a Beaglebone Black forum.
I think the article you linked to is quite explanatory.
Using PRUs is rather advanced stuff.
Using Ethernet for syncing between the boards is not such a good idea due to latencies.

What you have in mind is a rather advanced project. Given your comments it is currently beyond your grasp. So either you just dive in and try a few things and accept set-backs, or you try first with a simpler project. Rome was not built in one day either. Or so they say ;-)
 
Or, do you know an easier and cheaper solution with teensy/arduino/... ?

Well, it seems to me that the reason for using the BBB in those projects was the sheer number of leds. If you are not looking at driving that many, how about:

BBB -> Teensy -> each of the 8 output pins driving 64 leds, but these are snake cabled into an array of 8*8, giving up to eight different 'module' led areas. It just a matter of programming the output to map to certain led number.

OR

BBB -> Teensy1 -> each output drives 8 leds, giving an array of 8*8
. -> Teensy2 -> each output drives 8 leds, giving an array of 8*8

etc - I am not really understanding what you are trying to accomplish, how big your setup is, or what power suppply options you have, but teensy array options exist, and there are loads of different configurations. The number of leds in a strip assigned to one pin will play a big part in time for update, so if this is critical, use short strip lengths and multiple Teensy, if not, you could get away with fewer teensy and longer lengths. It comes down to costs and priorities, here are just two ideas such as:

teensy2.png

But, as Headroom says, the BBB forums look like the place for you to bottom out some key concepts.
 
Last edited:
On the other hand, if you are looking for some sophisticated ASCII graphics then Morton seems to have that doesn to a science :cool:
 
You cannot drive the Neopixel Strips directly with a Beaglebone Black!

You most certainly CAN by leveraging the PRUs (as w/ LEDscape). I'm currently using a slightly hacked-up version of Yona Appletree's fork of LEDscape in my largest (5200 LED) project, but I've stuck w/ the teensy for the rest of my work. I actually built a shield that holds the HCT245's, RJ-45 sockets, etc and can use it as a BBB shield or plug a 3-teensy board into it - this has allowed me to swap teensy/BBB based solutions without having to touch any wiring as I tinker w/ the code side of things.

BBB is impressive in that it can drive up to 32 (or 48 w/ Yona's fork) strips at the same strip-length-limited framerates as the Teensy. On the other hand, there are big disadvantages
  • Teensy produces a much cleaner waveform (a tad more harmless overshoot, but less ringing and noise) to begin with, and BBB starts to show signs of crosstalk when you get above 10+ channels
  • I can't get the channels driven off of the 2nd PRU to work as cleanly as those driven off the first. I really think it's partly due to the implementation, but assembler makes me go cross-eyed... I can't invest the time required to understand WTF the code is doing! :p
  • No instant-on! If the BBB loses power, you need to wait 20+ seconds before it's fully booted and able to control LEDs again. This is the main reason I still have the teensies in the mix - i have a wall switch that controls some of my teensy-based lighting (10 PWM-dimmed 12V LED strips), and with the teensies they can go from completely off to the default "on" lighting scene virtually instantly
  • WS2811 is built to SCALE... just keep adding teensies. BBB+LEDscape is great if you fall into a sweetspot of 20-40 channels. Above that, Teensy is easier to scale, and below that, teensy is cheaper/faster
  • With Teensy, you get the support of Paul and this forum. BBB == you're mostly on your own. It would be impossible to overstate how valuable this is, especially to a beginner/hobbyist like me.
 
On a different (but more on-topic) note, here's a trick to make the WS28xx LED's work a LOT better for POV. Use a good diffuser! In my limited experimentation w/ POV on these modules, I was floored by how vastly improved the POV effect was by adding a diffuser. I suspect it has something to do with the small pinpoint nature of the light sources in these LEDs and how much of your retina is involved per pixel. I used strips cut from these sheets:

http://www.aliexpress.com/store/pro...Light-Transmittance-84/433980_1487946699.html

the downsides, of course, are added weight, complexity, and cost.
 
You most certainly CAN by leveraging the PRUs (as w/ LEDscape).
Copy that! I read the article ;-)

With Teensy, you get the support of Paul and this forum. BBB == you're mostly on your own. It would be impossible to overstate how valuable this is, especially to a beginner/hobbyist like me.
And just because it is impossible to overstate this, let me repeat that yet again: The first hand support on this forum is second to none and that is especially important to beginners!!!
 
Thanks again for your replies.
I'll defintively give a try to the standalone Beaglebone solution.
Thanks tetsuo for your great details, (I keep the diffuser idea in mind !)
I'll run 576 leds max pro BBB so I'll see if I'll have the same problems as you described.

If it works, I'll come back here to explain how I did. If not, I'll may reconsider the use of teensies board for the project, and come back here to ask more about it :)
 
Status
Not open for further replies.
Back
Top