Updated: controlling 10x10 LED matrix through DMX

Wim aan de Stegge's icon

Hi all,

A while back I started a project, which involves playing video content on a small LED matrix (8x8 adafruit neopixel matrix). I used MAX jitter to manipulate video content to play on this LED matrix, controlled through an arduino. This setup was fine for a first try, but not adequate for what I want to accomplish. The main problem was the light output of the matrix. I want to create shadow projections using this matrix as a light source, so I need a significant light output. For this purpose I will need to build my own matrix from high power LED's, since I haven't found any ready made solution that can meet my requirements. It will probably be a 10x10 matrix this time around, white only, no rgb.
I know my stuff when it comes to lighting itself, but when it comes to the programming and control systems behind it I am pretty much a beginner, with a good grasp of the basic principles behind it. So I could use some guidance in making the right choices for my system.

One thing I noticed in my first experiments with MAX and the arduino controlled adafruit matrix, was that I ran into some speed issues. I am guessing my beginner level programming was to blame for this, but I want to be sure I don't run into any speed limitations tied to my system choices in my new setup. Inefficient programming is fixable, but limitations of my system aren't.

Basically I have the following two questions:
1. First of all, is MAX the proper tool to use in the first place? The reason I started using MAX was because a colleague working on a different project was using it for controlling his system, but that project hadn't quite the same requirements. So it was more of a convenient choice, rather than a well informed one.
For some more background: I am using MAX jitter to manipulate contrast, fading, speed, cropping, etc. of the video content, and blending two videos together. In the end I would like to use real time video input into the system. I found that MAX is potentially capable of doing all that, but I might be unaware of other tools that could perform the same actions better?
2. What system to use for controlling my Matrix? I used an arduino before, but I could also use some DMX drivers, we have a few 12 channel DMX LED drivers laying around in my office. I know MAX is capable of sending out DMX protocol. It would be convenient to skip the layer of Arduino programming - I know the basics, but am a beginner so it would save me some time and frustrations. But aside from convenience, what would be the best approach with regards to performance of my system? In the end all I care about is that my content is displayed smoothly.

Please also share other solutions I haven't considered, if they might be more appropriate for my purpose.

Cheers,
Wim

Wim aan de Stegge's icon

No one got any insight in this? I'm mainly concerned about the smooth performance of my system. I figured with DMX I could use professional VJ software like Resolume or VDMX5 for what I want to do, but those are rather expensive. I'm not sure I'll keep using that kind of software in the future. MAX is more versatile and affordable (as I can buy and stop a monthly subscription any time) in that regard, but with regards to performance, would software like Resolume perform more efficient than MAX or would it ask more resources of my PC?

Len Richardson's icon

Hi Wim,

I can only guess but i think Max would be suitable for that scenario. As I suspect that a 10x10 Led Matrix is not really a hard task for a computer in terms of data flow. Maybe a dedicated DMX dongle instead of an Arduino would cure the speed problem. It's only guessing so I don't know if that helps you a lot. ;)

Kind Regards

Len

Christopher Overstreet's icon

There are lots of possibilities, but max will certainly work fine with arduino and I assume DMX. Need to keep serial data rate in mind, and arduino memory. But you are in a plenty safe zone at 10X10. ie. 10X10(leds)+identifier(1)X8bit(255 brightness values))X 30fps = 24240 bits per second. Easy fit. However, increase the number of leds to 16X16 and make them RGB = 184320bps. At that point you would need to look into other solutions.

Wim aan de Stegge's icon

Thanks for the feedback so far. I am now exploring my options using dmx, and am getting a bit confused in how MAX would communicate with a DMX universe, and what hardware is really required and what isn't. It seems to be a bit less straight forward than I expected.
In the image below I have made a rough schematic of what I have in mind, with some questionmarks highlighted in red. Right now I have a similar setup working minus the MAX programming and with 12 individual LED's instead of a 10x10 matrix. This was a prototype for a different work project, that didn't require much control beyond some simple dimming over time. I am not sure which DMX interface was used - will get back to that later this week, though my boss probably bought it for cheap off ebay or aliexpress, so am not sure there will be much documentation on it... He used the software that came with it to record some simple presets, which is basically not much more than a bunch of sliders, and the ability to record it - which was perfectly fine for the project it was initially used for, but not so much for this led matrix project.

What I am unclear on is the following:
1. Do I need a DMX interface at all? Or could I simply connect a DMX LED controller directly to my PC, using a controller that also has a ethernet port, or smiply an ethernet-DMX adapter? In other words, would it be possbile with MAX to send out DMX protocol over my PC's ethernet port directly?
2. If the answer to 1 is no: what DMX interfaces can I use with MAX and how? I found this DMX article on cycling74: https://cycling74.com/tutorials/working-with-hardware-dmx-part-1/ What confused me is that the patch used objects that are specific to the LANbox DMX interface that was used, which would imply that this only works with that specific DMX interface. Does each different DMX interface require its own objects in MAX? If so, I am guessing my options are severely limited by whichever manufacturers take the effort of providing objects compatible with MAX? In that case, I'd love to know what these options are, besides the LANbox (if any).
3. Are there different ways of communicating with a DMX interface that aren't as dependent on the hardware used? The article I referred to did imply there are a lot of other ways to do it, but didn't bother to mention what they are, nor did I find much alternatives myself - except for imp.dmx by David Butler, which I am not sure is still up to date, and I can't quite seem to figure out what exactly it outputs to (is it specific to any kind of hardware? or can it be used with anything?).

I hope someone here can clear up at least some of the confusion ;)

Wim aan de Stegge's icon

Ok, I did some more digging around, and think I am starting to have a better grasp of it. I have found 4 general options so far for communictating DMX through MAX:
LANbox, Enttec USBDMX Pro (?), uDMX, OLA + any art-net interface.

1. LANbox, using the max objects provided by the manufacturer. This seems to be a rather expensive option. It has a lot of functionality I don't need.

2. Enttec USBDMX Pro. This seems to be the one that most development has been done for with regards to Max, however it seems the Max Externals are no longer updated and were not developed for Max 7; so it isn't guaranteed to work. It is a bit cheaper though.
2.1 David Butler's imp.dmx seems to be meant to work with Enttec USBDMX Pro, though with this one I am not sure it is still up to date either. Anyone who can shed some light on that, does imp.dmx work with Max 7 and the current Enttec USBDMX Pro (Mk1 or Mk2)?
2.2 Olivier Pasquet seems to have found a way to communicate with USBDMX Pro using the serial object. Does anyone have experience with this in Max 7?

3. DMXKing has some interesting options, especially the DMXKing micro seems a good affordable option; but it works with the same Enttec USBDMX Pro protocol, so the risk of it not working properly is still there; banking on the serial object solution here.

3. uDMX seems like an option that will work, but it is a bit pricy. Though it appears that the schematics for building one myself are available, which should be reasonably affordable. Though I am not very experienced when it comes to building my own circuits. I have done some soldering projects before, so I think I should be able to do it, but it would require some time and research and probably some brushing up of my rusty soldering skills. A ready made solution would definitely be preferable.

4. OLA seems to be the answer to everything else, if you have a Mac... though I'm working from PC, which reduces the usefulness of OLA to any art-net interface. Those seem to be a bit more expensive than USB solutions, but sure to work sending MAX to OLA.

Can anyone tell me if there are some specific advantages I'd need to consider for any of the options, aside from price and reliability? And if there are any other affordable and reliable solutions?

Lastly, I checked what DMX Interface was used in the prototype of the previous project I was talking about. It seems to be a Nicolaudie SLESA U9: https://www.nicolaudie.com/en/slesa-u9.htm Does anyone know if this could potentially work with Max 7? If that is possible that would be a really convenient solution.

Luke Woodbury's icon

I use the Enttec DMXUSBPro MKII box, it is a nice solid metal enclosure and has always been reliable for me. I guess its not cheap cheap, but its not insanely expensive and I think you can programme it to run shows standalone which is nice. You can get the MKI for cheaper if you don't need that functionality. I just use serial to communicate with it, found an example of the protocol format somewhere on the forum.

There are plenty of tutorials for rolling your own DMX controller with Arduino, an extra chip and a few components if you are really strapped for cash, or you can just get a DXM shield. Maybe Arduino isn't that fast for this purpose, you might want to do it on a Teensy or something, not looked into it really. I'm sure someone has done the work for you already somewhere...

Luke Woodbury's icon

PS - I read somewhere you should update the firmware on Enttec box as it often ships with old firmware.

PPS - I also have an old Lanbox at work, its another solid metal box, but massive and expensive. I'm sure I read it is not as fast as the Enttec box too so not sure what added value it has.

PPPS - If you are used to Neopixels you may want to look at Adafruit Pixie LED modules. They are RGB 3W so kick out some serious light and work very similar to Neopixels. However, they aren't cheap and at 10x10 you would have to come up with some power management options!!

Wim aan de Stegge's icon

Hi Luke,
Ok great! Wasn't aware of the standalone functionality of the Enttec Mk2. I won't strictly need it, but it might be very useful at a later stage of the project, so something to consider in the price for sure. Knowing the Enttec protocol will work with Max through the serial object is good to know, that will make the decision much easier. It will then either be the DMXking Micro, which does all the bare minimum I need at a very affordable price point; or it will be the Enttec USB Pro Mk2, for the standalone functionality.

Remains the question though, how will that standalone functionality work with Max?? How would I record it? Is it simply setting some parameter in the serial protocol I send out?

@PS: Had read that too, will make sure to do that.
@PPS: am aware of the LANbox, but it is way too expensive, don't need all the wistles and bells, and speed is important for me.
@PPPS: I looked at the datasheet of those PixieLed's, and honestly am not impressed... I need about 3000 lumens to compete with daylight, the datasheet states about 50 lumens per color. I'm not sure that is right at 3W though, seems quite little. In any case, I need white LED's. Of course RGB can make white, but white composed of RGB is never really actually white (that is why RGBW LED's exist).
I am planning to use some CREE XHP LED's (aren't cheap either, slightly cheaper than those PixieLED's though). They aren't adressable like the pixels from Adafruit, which will make for a lot of wiring, but it will work - probably will go smaller than 10x10 first to test. If someone knows of adressable white LED pixels like the Neopixels, but with a 3000lm output, that would be a great find!

Luke Woodbury's icon

I think the standalone functionality requires their own software or something, I personally don't use it. Don't think it would work with Max.

Wim aan de Stegge's icon

Regarding the stand-alone functionality, I have found that the DMXking art-net interfaces also have the stand-alone functionality. From the documentation on their website it seems apparent that it should work with whatever software you use to send the art-net protocol, so it should work with Max. Think I might go with one of those interfaces, they're better priced than their Enttec equivalents as well.

As for the DotStar, I had looked into that before, but they don't have a datasheet of the white DotStars, just of the RGB ones. So it isn't clear to me what the lumen output will be. Though comparing the specs of the RGB, the dotstars seem to be not even half as bright as the Neopixels, so don't think it will be a better option.

Wim aan de Stegge's icon

Ok, so to update, I ordered an enttec dmx usb pro. DMXking seemed like the more affordable option, but it isn't as easily available here as the enttec (located in Netherlands), meaning getting a DMXking would take a couple of weeks for shipping. That and the price difference being quite a bit smaller after taxes and shipping. Still cheaper, but decided its not cheap enough to be worth the wait. Enttec should arrive within two days. :)

Also decided the standalone functionality is not worth the step up in price at this point. If the project ever finds its way into a project for my paying job (might potentially happen), there might be funds for that.

Thanks for the help so far! Might be back for some questions when I got it all hooked up.

Jake Metz's icon

Have you been able to get the Enttec up and running with Max? Did you find a suitable way to communicate with it? I've just ordered one and I'm wondering if there are still functional externals or if I'll need to use the serial object.

Thanks!