Possible to show video on cheap RGB Matrix Display

Status
Not open for further replies.

gavspav

Well-known member
So a friend of a friend is in a band and wants me to make a 64 x 16 display which will fit in a 19" rackmount case.
I'm thinking of using two of these

I've made a giant 32 x 16 ws2801 wall before and I've been using the Syphon framework to stream (low res) video from vj apps via a Processing app I hacked together to my teensy.

What I'm wondering is if it is possible (or straightforward) to do something similar with the rgb panels and a teensy?

I've looked at a few threads on the forum and could only find gif playback but there does seem to be some kind of screengrab java app so should be possible?

Also is the smartmatrix shield compatible with the teensy 3.2?

Thanks
 
The last question I may answer: yes! I have this combination and it runs fine, but be sure to get v3 of the shield with the output buffers on it.
 
I've looked at a few threads on the forum and could only find gif playback but there does seem to be some kind of screengrab java app so should be possible?
Regarding java video screengrab app, I have used pixelcontroller to do this, without too much bother. You just change a couple of settings in the pixelcontroller config file. a video of it is here, very basic and low res output to ws2811 strips: http://orchardelica.com/wp/?p=481
You find it easier just to buy a couple of the ws2811 strips, rather than the matrices.
 
Thanks - I know I can do it with strips but they won't fit in the enclosure unfortunately.

I'm just trying to get some idea of any problems ahead if I try to use Matrices!
 
Xenoamor: the gammaCorrect function mentioned in the last post of the thread you mentioned can be made much more efficient by calculating the gamma values for each value 0..255, and putting them in a const uint8_t array. Otherwise, you are calling pow 3 times on a machine that has no hardware floating point, and it probably takes tens of thousands or maybe hundreds of thousands of cycles to calculate this, when it is easily calculated ahead of time.

If you don't want to pre-calculate the results and use a const array, you could still use a 256 byte array that you calculate once in the setup function.

If you still want to use pow, at least use the powf function, which takes single precision arguments, and produces a single precision result. When the so-called Teensy 3.x++ is released, it will have single precision hardware support, but not double precision. If you call the double precision function, the compiler will need to convert single precision to double precision, then do the pow function via emulated double precision arithmetic and then convert it back to single precision after the function is called.
 
I'm late to this thread, but I ported Fadecandy firmware to run on SmartMatrix and added a new "smartmatrix" device to a fork of the Fadecandy server. Instead of dithering with a high framerate, the SmartMatrix port drives the panel with 36-bit color directly. For a 32x32 panel the refresh rate is around 110fps, and 64x32 is around 90fps. Fadecandy includes a lookup table for color correction.

The firmware is here: https://github.com/pixelmatix/SmartMatrix_Fadecandy
The server and examples are here: https://github.com/pixelmatix/fadecandy/

It's lacking complete documentation, but if anyone is interested and posts questions here or in the SmartMatrix Community, that will motivate me to finish it up.
 
I finally got the board wired up and the panels working (thanks Mortonkopf) but can't get any of the examples in the thread mentioned or the fadecandy stuff to work. (posted in smartmatrix community about that).

Not sure whether to post in this thread or resurrect the old one...um... maybe the old one is better.
 
Xenoamor: the gammaCorrect function...

I actually ripped out almost all the code as I have my own graphics backend. All the heavy lifting is done by the computer as that's hardware accelerated. I'm not sure which codeblock you were looking at but the one I ended up using only called pow during setup()
 
I actually ripped out almost all the code as I have my own graphics backend. All the heavy lifting is done by the computer as that's hardware accelerated. I'm not sure which codeblock you were looking at but the one I ended up using only called pow during setup()

As I look at the code again, it looks like the gammaCorrect function is only called in Setup, which is fine. You don't want that amount of processing in Loop however.
 
Status
Not open for further replies.
Back
Top