[SOLVED] Problems with DMX interface (uDMX Device)

edited May 2016 in EmptyEpsilon
Hi,

I recently bought some DMX features. A light device :

https://www.amazon.fr/dp/B00ZP9G8RK/

and a USB2DMX :

https://www.amazon.fr/dp/B00ZQNIAP8/

After some tests (and after download maybe 100 software...), I only succed to control my light device with their own software : Freestytle. And the configuration for EE don't work.

My OS is windows 7, and uDMX is correctly installed.

image
https://www.dropbox.com/s/nkp4cowuas88kzo/uDMX.PNG?dl=0

Windows says me that the port seems to be \Device\USBPDO-8 :

image
https://www.dropbox.com/s/t44fpukhzw7489o/port.PNG?dl=0

Here is the beginning of my hardware.ini :

[hardware] device = DMX512SerialDevice ; port = COM1 ; port = \Device\USBPDO-8 ; port = \Device\USBSER@@@ ; port = Port_#0001.Hub_#0003 channels = 8 [channels] mainLights = 1, 2, 3, 4, 5, 6, 7, 8

As you can see, I test each of this port, without any success.

I don't understand if I forget something : another software, different device name or port location ?

If you have some advice to help me, it will be very nice.

Tito

Comments

  • Your device is most likely an uDMX device:
    https://www.illutzmination.de/udmxdriver.html?&L=1

    EE does not have a device interface for these kind of devices yet. And my virus scanner triggers on all downloads on that site. Information is scare on this device type, as well as example code.
  • I have the iso of the CD with all the drivers (and without virus :) ) if it can help.

    And, if it is not possible to use this interface, what kind of device do you advice me to buy to be sure ?
  • edited May 2016
    I found some documentations about uDMX here : https://www.illutzmination.de/udmx-api.html?&L=1

    I test the vba exemple, it works. I try to understand the vba command and the uDMX functions, it seems no hard to use, but I have not any experiences about that to try to adapt in the EE code.

    what I understand :
    bResult = Configure() to configure the link with the DMX
    bResult = ChannelSet(1, 20) to send the value 20 to the channel 1

    Strange, I didn't notice any virus.
  • I'll see what I can do, but there is a limited amount of stuff what I can do without the actual hardware.

    I have no DMX hardware at all, but some people did manage to get it working with some hardware. I think the info is somewhere in a github issue...
  • Ok, I did something which might just work.

    With the build of today (should show up a few hours after this post on the main site). Try with the following in the hardware.ini configuration:
    
    [hardware]
    device = uDMXDevice
    
    Add extra configuration for outputs after that, see https://github.com/daid/EmptyEpsilon/wiki/DMX-Configuration for details.
  • Thanks a lot for this !

    I just test, according to the log, the info function is not in the uDMX.dll
    As I see, this function is not usefull, isn't it ?

    I try to disabled it, but 1- I can't compile into windows and 2- I can compile into linux but uDMX cannot be test on linux :) . So, I can't test it.

    Could you please make a commit just without the detection of the info function (if you think that I can have right of course :) ) ?

    // UDMX_Info = (bool __stdcall (*)())GetProcAddress(UDMX_dll, "Info"); // if (UDMX_Info == NULL) // { // LOG(ERROR) << "Failed to find Info function in uDMX.dll"; // return false; // }
  • Thanks for the commit, I just test it, and .... it does not work... :(

    But it progress !

    Here is my log :

    [ERROR] uDMX.dll reported device is not connected. [ERROR] Failed to configure device: uDMXDevice [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 1 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 2 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 3 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 4 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 5 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 6 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 7 [INFO] Channel #1, 2, 3, 4, 5, 6, 7, 8: 8 [INFO] Hardware subsystem initialized with: 0 channels [INFO] List of available serial ports: [INFO] COM1 - \Device\Serial@

    So, the connected function return a False value and "think" that the device is not connected. This log is the same whatever if I connect the device or not.

    But, the most interesting part : the light device reacts when I launch the game. If there is not light, I just see a flash ; if I program a light before, the light blink during the game. So the game is connected with the device !! (I tested to use VirtualOutputDevice and, as expected, the light device does not react).

    So, it's better, but not finish... Thanks again for your work and modification, I will continue to search from how the problem append, and if you have some advices, don't hesitate ;) !
  • After a lot of experiments and web research, I don't progress as I would :

    i can confirm that the function info is not in the dll...

    I try to use the function in the dll : configure seems work, ChannelSet I don't sure.

    I succeed to use the uDMX.exe to configure channel and values. So, If it's feasible to call an exe, it could be functionnal, but I don't know if it is a good solution.

    I think that Connected function is not usefull too. Why it does not work with EE, I don't know...

    So, could you please delete the connected function so that I could test (I think for a last time) this interface ?

    UDMX_Connected = (bool __stdcall (*)())GetProcAddress(UDMX_dll, "Connected"); if (UDMX_Connected == NULL) { LOG(ERROR) << "Failed to find Connected function in uDMX.dll"; return false; } if (!UDMX_Connected()) { LOG(ERROR) << "uDMX.dll reported device is not connected."; return false; }

    I still hope that could work so that it could be possible to have a basic lights installation for EE for less than 50€ (if it will work, i promise you I will write a wiki to resume the installation hardware and software :) )
  • I'll leave the call there, but I'll just don't bail if the connected function returns false.

    Alternatively, you could also try the sACN support from EE in combination with:
    https://www.illutzmination.de/udmxartnet.html?&L=1

    Note that sACN hasn't been tested with any hardware. You need the above application to connect sACN with you uDMX device.
    And the following configuration:
    ## sACNDevice
    # Talks the ACN E1.31 protocol. Which is DMX512 wrapped in an UDP protocol.
    # For the ACN E1.31 protocol see: http://tsp.esta.org/
    # (Untested with official hardware)
    device = sACNDevice
    # sACN defines 64000 possible universes you can broadcast in. We default to 1
    universe = 1
    # Delay between UDP messages, defined in milliseconds. Default is 50ms, which is 20 packets per second. Which is about 13kb/s of data.
    resend_delay = 50
    # While ACN E1.31 defines that you should send the UDP messages as multicast with destination depending on the universe number. We broadcast per default.
    # Setting the multicast property to 1 will switch to the behaviour defined by E1.31.
    multicast = 0
    
    You might need to "play" a bit with different settings before it will work.


    Final note, with an Arduino and a relay shield, you're also most likely to build a setup for not that much money. But I haven't got around to do this.
  • It works !!! Thanks you very much !

    There are still a bug because the light cannot stay static even I ask for, but it is a uDMX problem (I have the same issue with the native program) and not a EE issue ^^ (i ask the uDMX developper for that). For now, I will only use it for event, It is very enough for my first sessions.

    I will add a wiki page to explain how to use the device.

    I noticed some issues in the hardware.ini configuration, I will wrote a issue to report them.
  • el.tito said:

    There are still a bug because the light cannot stay static even I ask for, but it is a uDMX problem (I have the same issue with the native program) and not a EE issue ^^ (i ask the uDMX developper for that). For now, I will only use it for event, It is very enough for my first sessions.

    Could also be that the mark/break or gab timings are off for your light. DMX512 can be picky. The DMX512Serial intentionally uses longer timings then required by the standard to be on the safe side.
  • The developper give me the answer : only one DMX software must be used at a time. And, if I launch some software, the connexion remains active even I close it. So, I have to check that before run EE.
Sign In or Register to comment.