This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

dmx
#1
Hi, I have a total length of 100 meters of dmx light strips, which are RGB tinted. They are connected every 100 meters to form a branch line, with a total of 5 branches. In addition, there are 40 dmx lights per meter, and I need to achieve unified color control for all light strips。

I have referred to the dmx control method here, and now I face problems that cannot be solved:

1.Currently, I am using a 1-meter light strip for testing and cannot adjust the color temperature. I suspect that the address setting may be incorrect or there is no communication between RS485 and the light strip. How should I set the address of the light strip?How to test whether communication is correct? thank you.

2.How to achieve color mixing of all light strips together?
Reply
#2
DMX-512 devices usually have either use a DIP-switch or a display to set the address. DMX-512 communication is one way so the only way to check if it's working is to see if lights can be controlled from LM.

What kind of strip are you using? Do you have GND connected between LM and the DMX controller? You can also try swapping A/B, sometimes they are labeled incorrectly.

For larger installations it is recommended to use an external Ethernet-DMX gateway that uses ArtNET protocol. See examples here: https://forum.logicmachine.net/showthread.php?tid=1391
Reply
#3
https://openrb.com/example-dmx-lighting-...-with-lm2/
Which parameter in the source script corresponds to the device ID of the Dmx lamp strip?
Reply
#4
channels in DMX.init is the total number of DMX channel addresses that are used (starting from 0 up to 511). This value depends on how many DMX devices are connected to the bus. It's ok to have duplicate addresses if you want to control several DMX devices together.

DMX.set(channel, value) - first argument is channel address (0..511), second is value (0..255).
Reply
#5
1.Dmx control I'm a novice, the command of DMX.set(id, value) not only corresponding to the channel in the RGB light strips, but also related to the address? For example, R, G, and B in the light strip address 1 correspond to channel 1, channel 2, and channel 3; R, G, and B in the light strip address 2 correspond to channels 4, 5, and 6. Is my understanding correct?

2.The IC type of the lamp strip is "UCS512C4". The lamp manufacturer provides a lamp strip and a step-down power adapter. The lamp manufacturer said that the decoder has been integrated into the lamp strip, except for the power cord, only the A and B lines are available. My script refers to the script here:https://openrb.com/example-dmx-lighting-control-with-lm2/ .The lamp strip does not work when I connect it to the gateway RS485 interface.
Reply
#6
1. For RGB devices the address is Red channel, address + 1 is Blue channel and address + 2 is Green channel. You need to take this into account and address each RGB device with a gap between addresses so channels don't overlap.

2. GND should be connected to the power supply GND (or negative pole). You also need to specify a correct serial port in the script. The example has "/dev/RS485", while LM5 has two ports: "/dev/RS485-1" and "/dev/RS485-2".
Reply
#7
Thank you for your reply
I checked the LM script and found no problems. I can control another RGB lamp strip that can be addressed through the DIP switch. Therefore, I guess the reason why the RGB lamp strip under test cannot be controlled is that it has not been addressed

It would be perfect if LM could search for the max device address connected to the 485 bus.
Reply
#8
You need to use an external tool for addressing then. Most DMX devices don't support bidirectional communication so the number of channels has to be specified manually.
Reply
#9
There are many dmx controllers on the market that can search for dmx device addresses, which can easily map the control channels of dmx devices, making the operation very simple. Does LM have any plans to implement the function of searching or setting the address of a dmx device?
Reply
#10
No plans to change anything related to DMX. It is fine for smaller projects as it is. Larger projects should either use an Ethernet gateway for DMX control via Artnet or a different protocol like DALI.
Reply
#11
Admin, I apologize for needing your help again. I want to achieve a circular flow control effect for dmx devices (RGB lamp strips) from ch1 to ch512. Each dmx device occupies 4 channels (R/G/B/W). The script needs to implement the following functions:
When the value of the switch address "1/1/1" is true, the circular control function of the light strip is activated, such as turning off the first light strip immediately after it turns red, and turning off the second light strip again after it turns red... The cycle starts from the first lamp strip until the last lamp strip turns red. When the value of the switch address "1/1/1" is false, the cycle function is stopped.

How to implement it with scripts?
Reply
#12
Create an event script with "Execution mode" set to "Last instance only" (2023 firmware required). If you only want to change the R channel of RGBW then change step to 4.
Code:
value = event.getvalue()
if not value then
  return
end

require('user.dmx')

channels = 512
delay = 2 -- in seconds
step = 1

while true do
  for channel = 1, channels, step do
    DMX.set(channel, 255)
    os.sleep(delay)
    DMX.set(channel, 0)
    os.sleep(delay)
  end
end
Reply


Forum Jump: