DMX OUT Chop to make led cube

Hi there!
I am making a 16 x 16x 16 led cube these days. Also I’ve already finished a structure which made by a line sop operator.

I try to turn on my led cube through a DMX OUT. But I heard that it is hard to handle 4096 leds by one arduino mega. Therefore I try to separate it… but It didn’t work properly.

Should I use multicast? Or Is there any idea to control led cube using Arduino? How to separate output signal?

dmx_cube_multiple_arduino.toe (42.3 KB)

Did you have it working with one arduino? Like just half the cube?

1 Like

I am working with two arduino megas! I want to control whole 16 x 16 x 16 led cube. Yet, I heard that it is hard to handle whole cube leds using one arduino mega, therefore, I separated like that image…!
It is possible to control all 4096 leds by one arduino mega??
please help…

It probably is possible to get it working with Arduino Mega, but if you haven’t gotten it working with one yet it would be hard to say how you need to split it for two Arduinos.

If you need help with Arduino code (getting Arduino to listen to DMX) that’s more of an Arduino question and you’d probably be better off searching Like for example, I don’t think Arduino Mega has any networking (ethernet / wifi) so that would be your first step to figure out.

Once you get your Arduino listening to any sort of DMX signal it should be pretty easy to split it into multiple streams to send to multiple Arduino(s?).

I already made my arduino listen to DMX signal using ethernet…!
and it works when I control under 2000 leds using DMX signal with arduino mega!

Yet, I’ve confused that it is possible to using two DMX ethernet output??
Since when I connected two arduinos through two IP address, it doesn’t work properly :frowning_face:
How to split DMX signal??
How to split multiple streams to send to multipule arduinos??
I found a picture but I am not sure about it

“netaddress” is which arduino to send each universe to, so put the two different arduino’s IP addresses in that column depending on which arduino each universe should go to.

or in your original image, you already have it split into two different CHOP chains, so just put the IP address of the other Arduino in the “Network Address” parameter of the second DMXout CHOP. “Local Address” needs to stay the same, and multicast should be off for both DMXout CHOPs.

If you can get some of the LEDs to light up on either Arduino via DMX Out CHOP, and changing the “Network Address” of the second DMX Out CHOP doesn’t light up the other arduino, then there may be something wrong in your Arduino code. For example, is the second Arduino listening for the lower universe numbers or the higher ones? make sure that both DMXout CHOPs are sending the correct universe numbers to the correct IP addresses.

Universe number(s) is (are) determined by the parameters in the DMX Out CHOP or the routing table - which it doesn’t look like you are using. The name of the CHOP channel alone will not determine which universe said channel gets sent to.

1 Like

I’ve changed my code like this!

The question is r0 ~ r8 meaning layer?

Can I reduce this under 16? Because my cube is 161616

first arduino send signal r0~ r7 and second one send r8~r 15
Is it right?

each “r#” channel is one DMX universe. you can send r0~r7 to and then send r8~r15 to

What I’m not sure is: does your second arduino expect to see universe numbers 0,1,2,3,4,5,6,7 or does it expect to see universe numbers 8,9,10,11,12,13,14,15? That depends on your Arduino code, I can not tell how you have that part working on the Arduino side.

Since the second Arduino is a different IP address, you CAN send it’s set of TouchDesigner channels (r8, r9, r10, r11, r12, r13, r14, r15) to the Arduino with the same universe numbers (0, 1, 2, 3, 4, 5, 6, 7)
or different universe numbers (8, 9, 10, 11, 12, 13, 14, 15) if you need to (for coding reasons) but that’s up to you.

Either way, you can just keep adding rows to the bottom of that Table DAT (right click on the last row number when the DAT is in “active” mode and click “Add Below”) and route more TocuhDesigner channels to more DMX universes / IP addresses - as many as you want. And the performance might be better going through a single DMXout CHOP.

Thank you Peeet! You are an angel…!!!

But I have 21 channels. so is there any method that I can reduce them under 16?
Because as I mentioned earlier, my cube is 16^3 one. But I am confused there are 21 channels on Touch designer. Is not a problem?

Oh, yeah there are 21 channels because your “sopto_coordinates1” and “sopto_coordinates2” are both converting 21 DMX universes worth of SOP points to LEDs… - AKA the “Copy19” SOP and the “copy20” SOP which are both being referenced by those sopto CHOPs have 21 universes of pixels in them.

Assuming the "shufle_split"s are set to 510 (as they probably should be) and your pixels are RGB, then each DMX universe can hold 170 pixels (170pixels*3colors(RGB)=510channels and 512channels is max per DMX universe) and 170pixels * 21 universes is 3570 pixels.

So that Copy SOP has somewhere just under 3570 points in it. That’s where you need to adjust your SOP chain so that there are less points / pixels going into the SOPto CHOp, then it will create less DMX universes per CHOP chain. For 16 universes, your SOP should have 2720 points or less. You might have to change how many copies are being made in the Copy SOPs, or go further back to adjust how the SOP points are being created.