I am looking for some help with ArtNetSharp

  • Hello,

    I work at a not-for-profit hospital as a software developer and have asked to fix an interactive display in the children's hospital used by children in the lobby. The original creator was an outside organization that is now out of business. The computer that operated the display had a fatal crash and the original program is gone. The display uses a couple of Artnet devices that I want to control using the ArtNetSharp library. I see that many of the followers of that repo are associated with this organization. DMX/ArtNet is not my domain so I am struggling with it a bit. Is there anyone her that may be able to answer a few questions about this repo and how to utilize it? Or know where I may be able to get some help? Thank you!

  • JPK April 1, 2025 at 6:51 AM

    Approved the thread.
  • Hi and welcome in our forum,

    actually, we (or more precise our developers) wrote this library and we as a non-profit organization manage it. So you are at the right spot asking about it :)

    Do you have general questions about the usage (how to initialize, send / receive ArtNet messages) or are there specific ones?

    JP

    P.S.: This is a nice display. If it is up and running again, it would be nice to see some images / videos of it :)

    im Falle eines Falles klebt Gaffa einfach alles, denn Gaffa ist dein Freund und Helfer :thumbup:

  • Hello JP :) ,

    Thank you for your reply!

    This is a long message but hopefully with provide a fairly compete description of what I am trying to do and what I have been able to get to work. The display is dramatically over engineered, but my assigned task is to get it to work, not re-design it.


    TLDR version:

    I can discover clients, and they make into the list of clients of an ArtNet Instance and create a NodeInstance but cannot config the ports to get messages to be sent.

    Complete version:

    Yes, I am trying to understand the relationship between ArtNet.Instance, NetworkClients, PortConfig and Universes as the relate to my actual IP network.

    As a first step before trying the ArtNetSharp library I created a virtual console in QLC+. This allowed me to determine and test some basic information about the devices in the display. Unfortunately. QLC+ has some limitations keeping me from creating a complete acceptable solution.

    Under the translucent material you see in the display are 9 LED strips. There are only 7 rivers, but due to physical layout, 2 rivers require 2 LED strips. The basic operation here is the child presses a button and the associated “River” lights up. There is also a video that plays with each river.

    These LED strips are connected to a “Ethernet-SPI/DMX Pixel light controller”. Using QLC+ I have determined and tested that that these strips can be reached at a private local IP address. The ArtNet devices are connected to a PC that has its ethernet adapter configure to a local network all with fixed IP addresses and no router/gateway/DNS. The Wi-Fi adapter of the PC is connected to our internal secure network and that is how I communicate with the PC. This PC is the one which I run QLC+ and hopefully a program written by me utilizing the ArtNetSharp library. I develop the program on my work PC and copy the executable to the display PC.

    The nine LED strips are connected to the SPI outputs on the controller are reachable at the IP address of 10.0.33.20, Universes 1-9 respectively. Using QLC+ I can make them turn on blue.

    Also connected to the “Ethernet-SPI/DMX Pixel light controller”. Is a 9 channel DMX512 Decoder via DMX512 output port 1 with a three-wire connection. Based on the configuration of the Ethernet-SPI/DMX Pixel light controller the DMX512 Decoder should be reachable on Universe 10 but I have been unsuccessful in connecting to it. (Suggestions? I think it may be failed hardware at the test functions controlled by dipswitches do not work.) The DMX512 Decoder drives LEDs in the buttons on the display.

    The Buttons are connected to an Madrix Orion ArtNet input device. Using QLC+ I can detect button presses at the fixed IP address of the input device on/in Universe 20. The short comings of this device are such that it cannot be configured (as confirmed by many messages with support) to send exactly one message that has the value relating to a button press. This results in a random number of messages that a button has been pressed. Each message toggle the button function in QLC+ turning the function on and off each time. This inability to de bounce the button press with either the Madrix Orion or QLC+ is why I have to try to write my own program. (external de-bouncing will not work)

    What I have accomplished with ArtNetSharp.

    I wrote a test program that successfully discovers the two ArtNet devices on the local network. I have enabled those clients and given them names. I have instantiated new NodeInstances both with ArtNet.Instance as their argument. (not sure if I need two, I designated one out and one in.)

    What I cannot do is successfully AddPortConfig with a new PortConfig in way that WriteDMXValues puts anything on the wire as determined by wirehsark.

    I find the PortConfig object very confusing. How does a specific IP address get assigned? The constructors have types that I don’t understand of can find explanations of how they work.

    Any assistance you can provide would be greatly appreciated.

    Thank you!

  • This is to much Text i dont understand.

    First the Library is still in pre Beta, so there is no Docs or anything.

    You need only one Artnet-Instance

    What du you want to do with the Library?
    Send DMX or Receive?

    On which Port-Addresses do you want to do stuff?

    The Lib is ArtNet4 so there is only Data Send if your Receiving Interfaces do reply on ArtPollReply and there is a matching Config.

    Provide me a with SourceCode and Whireshark dump to se whats going on.

  • Hello Qasi,

    Wireshark shows no traffic on port 6454 as I am not sucesful in send anything. Here is my test program. The first 60 lines just have to due with my development environment vs that actual environment where the devices are so just ignore those.

  • There is no output on wireshark on my dev PC but I will capture what happens on the PC where the actual devices are connected and post that tomorrow.
    I cannot write the code on the machine where the devices are but I can run the program on that machine.

    I believe the devices are responding to polls but I will confirm that and post tomorrow.

    Thank you.