MegaBrite & DMX video ceiling

Hi everyone,

I'm currently doing R&D for an RGB LED video ceiling I've been commissioned to make for a club in Japan. I've been looking around at all the options and how others have solved similar problems. MegaBrites and DMX control seem to be top of the list of solutions. I'd appreciate any advice anyone can offer. I've read all other threads about similar issues, but still have a few questions. Here's a bit more info about the project...

ceiling panel dimension = 18m x 5m
pixel pitch = 25px per square meter
total pixel count = 2250 MegaBrites

If I control this through DMX...
2250 MegaBrites = 14 DMX universes (2250 MegaBrites x 3 LEDs each = 6750 DMX channels, 6750/512 = 13.2)
So I'm planning to have 14 arduinos receiving different DMX signals, each driving a MegaBrite chains.
And I plan to use Madrix software (madrix.com) linked to 14 DMX interfaces, or a couple of art-net dmXLAN.

Questions...

  1. does anyone know how many MegaBrites can be chained together from one arduino?
    I'd like to run up to 170 per arduino, i.e. 1 arduino per DMX universe.
    (512 DMX channels / 3 LEDs per MegaBrite = 170 MegaBrites)

  2. are there any issues with latency when using such a long chain of MegaBrites?
    Will MegaBrites at the end of the chain respond at the same time as the ones at the start of the chain?

  3. Can a good refresh rate be maintained?
    Would I be able to refresh the whole chain at at least 25fps?

  4. Does anyone know any pitfalls or issues with controlling MegaBrites with DMX?

Anyone got any better ideas of how I should approach this? Is my approach even possible?!

Thanks!
:slight_smile:

It will work, the only difficulties I see might be latency and finding high amperage power supplies. Danjel from intellijel has done this with good success, check the link for some examples: http://www.intellijel.com/node/41

I think we could ask him for some hints and possibly Arduino DMX receive code. If 25fps is not possible on 170 modules, then you would need to break it up across a few more Arduinos. Not a huge problem as the cost of Arduinos is a smaller part of the project.

Thanks for the advice!

Now I've got a better idea about how I'm gonna install this project in the space and it turns out I'll only need 120 MegaBrites per DMX universe (ie, per arduino) which will hopefully make it all a bit easier. 1680 MB in total

I was worried about the power supplies as that's potentially quite expensive depending on how many I need.
If my calculations are correct the power supply spec for a 120 MB chain would be...
36a (0.3a per MB)
7.5v
270w
I could use something like this per chain...

or this for up to 5 chains...

It would be great to get some hints and example code from Danjel. I've seen the arduino DMX example by Max Pierson
http://blog.wingedvictorydesign.com/2009/03/20/receive-dmx-512-with-an-arduino/
which looks like it covers most of what I need.

If I did have problems with latency even with 120 MB chains, like you suggested, I'll try splitting the MB over more arduinos. Actually, come to think of it, I'm being a bit of a dumb ass...
Since I now only have 1680 MB = 5040 DMX channels = 10 DMX universes (not 14 as I'd planned originally). But how would I go about splitting up a DMX signal to multiple arduinos? Can I just repeat the signal through one arduino to the next one, or use a DMX splitter or maybe I can just use a 3 pin XLR splitter? Then I guess I have to setup each of the arduinos to process only it's assigned chunk of the channels. I guess this will become more apparent when I start delving into the code (not got that far yet). I'm waiting for the bits I ordered from your shop to arrive, then I'll start working on the prototype.

Cheers

New here but been reading as much as possible about the arduino with DMX. Will be interesting to see how you get on with this.

As far as power supplies go, you might want to look at some of Jameco's offerings. Shipping to your location might be a factor. They have them up to 80A or so, for a total cost about half the supply you linked. They have some decent 40A ones. I'd try to distribute things a little more, you don't want to figure out the cabling to get 200 amps where it needs to go. Maybe build up manageable-sized panels with a power supply and controller each, then you can build everything incrementally and have some spares on hand for quick replacement.

Majomo,
yup, thanks to arduino there are exciting possibilities for interactive lighting installations and VJ performance. I'll post everything I discover in this field. A lot of research going into the various options and component sourcing. A project of this size is very costly!

Hi Macegr

yea, you are right. A more modular design is the way to go.
I plan to break the project up into 27 units or 80 MB chains. This will help to distributes the power and each arduino only has to deal with 80 MB, so less chance of having a latency problem. That would mean 2 arduinos per DMX universe. (back to 14 DMX universes again)

so for the power supply this 80 MB per unit setup would need at least:
24a (80 x 0.3a)
7.5v
180w

this jameco power supply seems to fit the bill...
http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_207212_-1
I'll probably be able to find an equivalent here in Japan easy enough.

I'm not an electrician (obviously!). Do you think I'm gonna have problems with 27 units in the same place? I'm not sure how to go about distributing the power. The building is being renovated now, so if I specify my needs to the contractor soon I should be able to get all the power laid out for me.

thanks

I can imagine the cost would be $$... but so much fun, so worth it once this gets put together.

I know for the Olympics shiftbrites were used to great effect in combo with DMX. dmx at the best of times annoys me but now I have made the leap to learning arduino and shiftbrites, it seems much more fun.

too many times I have been looking at controllers from China, while they certainly did their job it has always been my goal to expand on their somewhat slim control offerings.

Just hope the postman comes soon. Going to be a long wait for my shiftbrites.

Splitting a DMX universe over multiple arduino's shouldn't be much of a problem. Max's code is using a addressing() function to specify what channels to listen for based on button presses. You can very easily replace that with a DIPswitch or even hardcode it since you're not likely to change it once installed.

Please let us know your progress. I'm pretty much looking into the same thing. Be it at a much smaller scale with only 2 lines of 22 MegaBrites.

Thanks bart_janssen,

I was hoping it would be simple to rework Max's code. I haven't had a proper look at it yet though. I'll just hard code the address in as they aren't gonna change.

We've just got the OK from the investor and architect, so I'm gonna start building the prototype within the next few weeks. They were keen to have an even denser pixel pitch, so now it looks like we'll be using up 2700 MegaBrites. I'm a little scared as I haven't even tried one out yet! Waiting for the postman to deliver the first batch for prototyping. Exciting times!

One thing that has become apparent is that there is a tiered threshold the more MB you add where you start needing more DMX universes and arduinos. This really effect the budget, so it's important to find the right balance.
I'm currently planning to spread the MB over 33 modules of 81 MB per module. This seemed to be a good compromise between pixel pitch (152mm spacing) and amount of DMX universes and arduinos needed. I'm also trying to limit the amount of MB per arduino to less than 100 and aiming for around 80 if possible. That's just a guess, but from reading other threads on the topic, it seems like 80 MB per arduino should run with no latency problems, while also using about half of the channels available in one DMX universe. And physically that makes a manageable sized module, about 1.5 x 1.5m, which was decided due to limitations in the size of the diffuser material we will be using. We have to be very careful about fire regulations, so cheaper fire retardant cotton has been discarded in favour of extortionately priced "artshade" (as it's called in Japan)
Once I actually start making the prototype I'll write about if latency is an issue and at what point it starts happening.

Will the length of connector affect the latency, or is 80 at any length a possibility.

I am also putting the beginnings of a project togeher. Nowhere near the number of MBs being used, but even using one makes me slightly too excited.

It could be OK for me to simply have the same code on a loop, but the addition of DMX opens up the door to a more intelligent system.

I've read that the connectors can't be too long due to noise and interference in the serial signal. On the macetech shop they sell them up to 19", so I wonder if that can be taken as a hint for max workable length. I'll try testing this once I have a prototype working. I'm assuming that each megabrite boosts the signal it passes on down the chain, so the signal doesn't deteriate if you have a very long chain. Anyone know if that's correct?
If you need a larger gap between the LEDs and controller, it might be worth looking into the shiftbar cos you can keep all the shiftbars near the arduino on short connectors, then have longer connectors directly to the LEDs themselves.

I need a little advice please:
I haven't worked with power sources much other than the usual arduino input, so I'm a little cautious about my choice of power supply and how I should rig it up to the megabrite chain. My initial prototype will only be 10 MB, but the final prototype will have 81 MB. I'm gonna buy a power source for the final prototype, but wonder if I can still use it safely on the 10 MB chain without killing my MBs, which at this stage of the project would set us back when time is really tight. So I'm swallowing my pride and asking stupid questions instead of taking any risks! I've gotta buy the power source asap to meet my prototyping deadline, so no time for any mistakes I might make if I try to figure this out myself.

The 10 MB chain will need...
7.5v, 3a, 22.5w

The 81 MB chain will need...
7.5v, 24.3a, 183w

I think this power source is the correct choice for the 81MB chain (please correct me if I'm wrong)...

It's 7.5v, 26.7a, 200w (switch mode)

So my questions are...

  1. does each megabrite regulate it's own input current? If not, what is the best way to wire up the MBs to the power rail?

  2. Can I use the 7.5v, 26.7a, 200w power source on the 10MB chain as is, or do I need to limit current?

  3. I was planning on having every MB liked into the power rail, so is it necessary to use the serial V+ and GRD pins on the MB? If not I could just use a 4 conductor cable instead of 6, bring down the price a little bit. Considering I'll need about 2600 connectors in the final installation, that actually amounts to quite a saving.

Cheers

but wonder if I can still use it safely on the 10 MB chain without killing my MBs

This is a very big project for someone who doesn't even know ohms law.

The current capability of a power supply is just that a capability. If the load doesn't demand that much current it won't take it. You are perfectly safe using a large supply on a smaller number of lights.

thanks grumpy_mike
That's what I thought, but as I said, I don't have the time to make any mistakes, so it's worth throwing a few stupid questions out there. It is a big project, which has me a little paranoid about making mistakes. But just cos I haven't done something this big in this particular field before, doesn't mean I can't. Throwing yourself in the deep end is always the best way to learn. The arduino and it's supportive community makes it all possible :slight_smile:

Each MegaBrite has its own voltage regulator for the PWM logic and oscillator, and each LED channel has its own current regulator. I think the last time I ran 80 MegaBrites together, I was using a power supply capable of 50 amps.

It's still a good idea to use 6-pin cables between each MegaBrite. First it provides a good ground reference for all the data cables...second it allows you to go several modules before needing to tap in power using the screw terminals. You can connect power and ground to the screw terminals every 5 to 8 modules, in my experience. Definitely cuts down on the amount of wiring needed, since the screw terminals are not as fast to wire as the 6-pin connectors you can just plug together in seconds.

Savings between four and six conductors is probably less than 10 cents.

Definitely inspect every connection before turning it on. It's easy to wire these wrong when you have more than 50 things to get right. I would suggest just adding a few to the chain every time, power it up, make sure it works, power it down. That way you don't risk killing an entire chain of modules.

Hi,

is DMX really suitable for passing this much information ?
I don't know how many frames per second you intend to have but controlling individual pixels by DMX sounds to me a lot like swatting flies with a sledgehammer !!

DMX is just a neverending stream of raw 8-bit values. As long as you have the software to send out the correct values, it's as minimal and efficient as you can get without some kind of compression scheme.

Here's a video of the first prototype.

It just uses 9 MegaBrites at the moment and no DMX control yet. I've just made a very simple controller which allows me to set colours for testing out different diffuser materials and spacing of the MB. Also tried separating the MB into their own cell, which gives clearer colours, but not sure if it's the look we'll go for.

Hi Shodan,
DMX seems to be the standard solution to this kind of LED video installation. Check out software like Madrix, http://www.madrix.com/
It has some decent effects and video in via a video card. I plan to use my normal VJ setup on a separate computer and just feed the video out into the PC with Madrix running.
The resolution of even a massive video wall is very low (compared to normal video). Our planned installation is about 27 x 99 px (5 x 16 meters). So that's 2673 pixels = 8019 DMX channels. Spread that over 16 DMX universes (2 arduino megabrite chains per universe) and (fingers crossed) it will be ok. One of the guys from Madrix said they had run over 80 DMX512 universes no problems.
Because DMX512 is a standard for lighting and other devices, it's a good choice for future compatibility of the video wall.
But if you think there is a better way, please let me know. Buying 16 DMX USB interfaces is expensive. I'm not committed to using DMX yet, but will be soon once I buy those interfaces.
Thanks