PDA

View Full Version : Teensy 3.0 OctoWS2811 with Raspberry Pi or Beaglebone or ?!?



sam
05-07-2013, 12:47 AM
Hi all,

I have a Teensy 3.0 and I've been experimenting with the OctoWS2811 library. My goal is to build larger rgb LED applications that play videos, and I want to stream video using the smallest/least amount of components. Basically anything extremely small that isn't a laptop. Perhaps an SD card read could store the videos and the Teensy can read it off the SD card. I'm confused at this point and not sure which way to go. Does anyone have any recommendations? Perhaps someone has gone down this road before and I don't have to start from first principles. I have heard wonderful and terrible things about Raspberry Pi, and the Beagle Bone Black is so new I'm not sure if it would work, and maybe there is a board or solution out there I'm unfamiliar with that would work even better.

Another question is, do I need to use the processing movie2serial program on one of these small computers, or is there another way to stream the video in a way the Teensy can understand? The whole streaming video part is a bit fuzzy for me and I am trying to understand it better. What format does the Teensy need to see? If there is already a thread on this please feel free to post a link. Thank you.

PaulStoffregen
05-07-2013, 02:22 PM
I've bringing the 1920 LEDs to Maker Faire in 2 weeks, displaying live webcam video and triggered animation overlays, all running from a Beaglebone Black and 3 Teensy 3.0s for the I/O.

if you're at Maker Faire, just look around for the very bright LED board. I'm bringing a 7x3 foot floor mat with stomp sensors (similar to Dance-Dance Revolution) to trigger the animations.

Instead of Processing, I used the V4L2 library to access the webcam. The animations are loaded from GIF files. All USB devices are detected with libudev. It consumes about 20% to 30% of the Beaglebone Black CPU time while the webcam is streaming. Without the webcam, just playing the animation runs under 10% of the CPU.

Here is the source code. This code is still very much a work-in-progress......

sam
05-09-2013, 04:37 AM
Thanks again, Paul. My BeagleBone is in the mail.

featherodd
06-24-2013, 06:38 PM
Paul: any recommendations on a favorite Aliexpress vendor? (for ordering ~64 meters of 60LED/meter ws2811 RGB strip)

Edit: I made a separate thread opposed to hijacking this one -> http://forum.pjrc.com/threads/23867-Any-recommendations-on-Aliexpress-vendor-for-WS2811-strips

PaulStoffregen
06-24-2013, 11:56 PM
Paul: any recommendations on a favorite Aliexpress vendor? (for ordering ~64 meters of 60LED/meter ws2811 RGB strip)

My one and only WS2811 experience with Aliexpress has been Ray Wu.

I can't say I'm completely satisfied. One of 1920 LEDs, 6 were defective. The first couple were DOA, others failed over time. At Maker Faire, the 6th LED failed on Saturday. It was far too busy to cut it out and solder in a replacement, so I showed up early Sunday. While getting my soldering iron heated up and talking with someone about the problem, I pointed to the bad LED and touched it, which made it start working again. At least with that one, it seems the LED wasn't soldered well to the strip. I had the strip securely mounted to a piece of plywood so it wasn't being moved or flexed, but I suspect the cycling from off to fully on caused temperature shifts that might have stressed the not-go-great soldering on the strip?

So my only advice is this: buy spares.

featherodd
06-25-2013, 01:03 AM
Paul: thanks for the detailed reply. I really appreciate it.

I've definitely had that issue with LED's coming loose on non addressable RGB strip and Adafruit's old LPD8806 model. I wonder if all the Aliexpress vendors are just selling the same exact strips. Hmm.. kinda hard to tell what I'm looking at on that site.

GreenLED also has a new 68 LED/meter model that looks interesting: http://www.gree-leds.com/productshow.asp?ArticleID=Y0YY52S0YX

With Ray Wu, are they otherwise ok to deal with? Like decent shipping (EMS/DHL etc) & payment options?

p.s. i just received my first couple Teensy 3.0 boards and can not stop staring at them. There are SO MANY FREAKING PINS! How was this possible?! The board looks like it ate two Arduino Micros and then folded itself in half. Amazing!

Dewb
08-05-2013, 08:21 PM
Instead of Processing, I used the V4L2 library to access the webcam. The animations are loaded from GIF files. All USB devices are detected with libudev. It consumes about 20% to 30% of the Beaglebone Black CPU time while the webcam is streaming. Without the webcam, just playing the animation runs under 10% of the CPU.

Here is the source code. This code is still very much a work-in-progress......

Thanks, this is really helpful for my own BBB control project! I built your code on the Beaglebone Black, and it detects the Teensy. I don't have a webcam or a DDR board to trigger content, so I'm just filling the framebuffer with a solid color by adding the below code in the while loop, and commenting out the webcam and stomp pad blocks:

memset(framebuffer, 127, 230400);
video_frame(framebuffer, elapsed);

But I'm not seeing anything on the LEDs. Anything I'm likely doing wrong? Is this intended for the stock VideoDisplay firmware on the Teensy, or does it require modifications?

PaulStoffregen
08-06-2013, 12:05 AM
Is this intended for the stock VideoDisplay firmware on the Teensy, or does it require modifications?

Yes, but it expects an exact configuration.

Look at the messages printed to stdout. Does it detect the Teensy boards and is it happy with the 12 number ID message?

Dewb
08-06-2013, 12:32 AM
It did detect the Teensy, but it turns out it was failing silently in receive_line. The Beaglebone USB support seems a little wonky. I'm having better luck with Fadecandy's USB device detection so we'll probably stick with that. Thanks a bunch!

andykoa
02-15-2016, 09:46 AM
Hi Paul,
I am highly interested in this solution.
Did you grab the live video with a usb grabber?
Do you have any more info about the setup of the hardware?

I am looking for a solution that grabbs the video from any external source and puts it on the neopixel matrix.
Would be great hearing from you.
Thanks!

PaulStoffregen
02-15-2016, 01:15 PM
Did you grab the live video with a usb grabber?


The one I made 3 years ago for Maker Faire, when the Beaglebone Black was brand new on the market, used a Logitech webcam. I used the v4l2 library to read the raw frame data right from the camera. As I recall, the library took care of the colorspace conversion and delivered convenient RGB data. I just added on some simple/ugly/inflexible downscaling and conversion to OctoWS2811's pixel format.

It also played animated GIF, with transparency, overlaying them onto the video.



Do you have any more info about the setup of the hardware?


All the info is here:

http://www.dorkbotpdx.org/blog/paul/maker_faire_2013

andykoa
02-16-2016, 11:35 AM
Thanks Paul.
Do you think it would work with a Raspberry Pi2?
I have checked the other project which suits my needs here http://dorkbotpdx.org/blog/armatronix/led_video_wall
maybe this is easier to adapt for me.
Any idea if there is another device than a mini pc for the linux code that would work?

PaulStoffregen
02-16-2016, 12:36 PM
Do you think it would work with a Raspberry Pi2?


I don't know.

Three years ago, I did try on the original Raspberry Pi Model B (the one with 256M RAM). There were terrible bugs with the USB performance using the Logitech webcam. The Beaglebone ran the same webcam at 30 frames/sec with only light CPU usage. Together with the terrible performance of the early RPi and boot bugs with faster SD cards, those early sour experiences and good performance with the same code on Beaglebone Black left me with an enduring dislike of Raspberry Pi... I haven't touched that project since.

Maybe USB and webcam support has improved on Raspberry Pi since then. Or maybe everyone simply uses the official Raspberry Pi camera, which appeared on the market after I did that project. My understanding is that cam uses a special high-bandwidth path into the RPi's GPU, rather than going over USB. If I were to do this over on a Raspberry Pi, I'd look into using that camera. Looks like it can be accessed with v4l2 (https://www.element14.com/community/thread/29551/l/rpi-official-v4l2-driver?displayFullThread=true) (since early 2014 - so probably very stable now), so you could just make a very minor change in the code to read the Raspberry Pi camera with v4l2 instead of the Logitech 9000.

andykoa
02-16-2016, 01:00 PM
Thanks Paul
Actually I am looking for live video input using a usb grabbing device like the Haupauge one.
I am trying to get a mini pc running linux like in the starfucker project.
hopefully this will work it out.

PaulStoffregen
02-16-2016, 01:23 PM
The LEDs, power supplies and construction materials will be much more expensive than all the electronics.

Today there are lots of inexpensive Linux single board computers. Even if you run into USB issues on one type of board, I'm sure several others will be able to work fine. Even if you waste money on 2 or 3 extra Linux boards, I'm sure that'll be a drop in the bucket compared to the cost of the LEDs and fabricating whatever will hold them. And connectors. Don't forget rugged connectors, if you intend to ever move this thing around. They're not cheap, but they're a whole lot cheaper than fixing loose wires, especially if a disconnected wire destroys stuff while it's dangling around.

andykoa
02-16-2016, 01:44 PM
I have already build 2 of 4 Matrixes (with 196 RGB LEDs each) and all the wiring from the teensy is complete - all are connected with XLR DMX cables - every matrix is connected to one of the teensy outs using the OctoWs2811 Adaptor - I just need the standalone device to transform the video input into something that feeds the teensy right. It works already quite good with the processing software running on windows, but this is just for testing now.

andykoa
02-16-2016, 01:46 PM
I am looking forward to buy a Cloudsto EVO Quad Core to do the processing using a HAUPPAUGE WinTV USB Live2 Grabber.