DMX output via Art-Net / sACN limited to 108 channels + network interface selection + RGBW support

  • Hello everyone,

    I am currently using Hyperion to output DMX via Art-Net and sACN (Streaming ACN), and I have encountered some issues for which I would like to ask for support.

    1. Limitation to 108 channels with Art-Net / sACN

    Regardless of whether I use Art-Net or sACN, only channels 1–108 are transmitted correctly.

    All channels above that (109–512) do not seem to work properly, although up to 512 channels (approx. 170 RGB devices) should be possible per universe.

    2. Unstable values from channel 109 onwards when using Art-Net

    When using Art-Net, I also noticed that from channel 109 to 512, “random” or unstable values appear:

    • The visible image does not change

    • DMX values are constantly changing

    • Channels are not stable

    I tested this with a Swisson X MT-500, which supports both Art-Net and sACN.

    3. Support for full 512 channels / multiple universes

    Therefore, I would like to ask:

    • Is full usage of channels 1–512 per universe planned?

    • Is there currently or in the future support for multiple universes?

      For example:

      • Universe 1: channels 1–512

      • Universe 2: additional channels

    This would be very helpful for larger setups.

    4. RGBW output support

    Is it possible (or planned) to support RGBW output instead of RGB only (3 channels per pixel vs. 4 channels per pixel)?

    For installations using RGBW pixels, native RGBW output would allow proper and more efficient use of the white channel.

    5. Network interface selection

    Another point concerns the network interface:

    At the moment, Hyperion seems to automatically select a default network adapter.

    On systems with multiple interfaces (LAN, Wi-Fi, VLAN, etc.), this can be quite confusing.

    Would it be possible to add an option to manually select the network interface used for Art-Net/sACN output?

    This would greatly simplify configuration.

    If I made any configuration mistakes or if there is already a solution, I would appreciate any hints.

    Thank you very much in advance.

    Best regards,

    Bastian

    Hallo zusammen,

    ich nutze Hyperion aktuell zur Ausgabe von DMX über Art-Net sowie sACN (Streaming ACN) und bin dabei auf einige Probleme gestoßen, zu denen ich gerne um Unterstützung bitten würde.

    1. Begrenzung auf 108 Kanäle bei Art-Net / sACN

    Unabhängig davon, ob ich Art-Net oder sACN verwende, werden bei mir maximal die Kanäle 1–108 korrekt ausgegeben.

    Alle Kanäle darüber hinaus (109–512) werden offenbar nicht korrekt genutzt, obwohl pro Universum ja eigentlich bis zu 512 Kanäle bzw. ca. 170 RGB-Geräte möglich sein sollten.

    2. Unstabile Werte ab Kanal 109 bei Art-Net

    Bei Nutzung von Art-Net ist mir zusätzlich aufgefallen, dass ab Kanal 109 bis 512 scheinbar „wilde“ Werte auftreten:

    • Das Bild verändert sich nicht sichtbar

    • Die DMX-Werte ändern sich aber permanent

    • Die Kanäle sind nicht stabil

    Getestet habe ich das Ganze mit einem Swisson X MT-500, der sowohl Art-Net als auch sACN unterstützt.

    3. Unterstützung für volle 512 Kanäle / mehrere Universen

    Daher meine Fragen:

    • Ist geplant, die vollständige Nutzung von Kanal 1–512 pro Universum zu ermöglichen?

    • Gibt es aktuell oder zukünftig eine Möglichkeit, mehrere Universen zu unterstützen?

      Zum Beispiel:

      • Universum 1: Kanäle 1–512

      • Universum 2: weitere Kanäle

    Das wäre besonders für größere Setups sehr hilfreich.

    4. RGBW-Ausgabe

    Besteht außerdem die Möglichkeit, die DMX-Werte nicht nur als RGB (3 Kanäle pro Pixel), sondern auch als RGBW (4 Kanäle pro Pixel) auszugeben?

    Für viele Installationen mit RGBW-Pixeln wäre das sehr hilfreich, insbesondere um den Weißkanal sauber und effizient zu nutzen.

    5. Auswahl der Netzwerkkarte

    Ein weiterer Punkt betrifft die Netzwerkschnittstelle:

    Aktuell scheint Hyperion automatisch eine Standard-Netzwerkkarte zu verwenden.

    Bei Systemen mit mehreren Interfaces (LAN, WLAN, VLAN etc.) ist das sehr unübersichtlich.

    Wäre es möglich, in den Einstellungen eine konkrete Netzwerkkarte auszuwählen, über die Art-Net/sACN gesendet wird?

    Das würde die Konfiguration deutlich vereinfachen.

    Falls ich irgendwo einen Konfigurationsfehler gemacht habe oder es dafür bereits eine Lösung gibt, freue ich mich über Hinweise.

    Vielen Dank im Voraus und viele Grüße

    Bastian

  • BastianBee Thank you for sharing the detailed outline.

    1. and 2. are related to a bug.

    PR1983 will likely already address the issue.

    3. If one universe is full, the next universe in sequence should be used…

    This might currently not work correctly because of 1. and 2.

    4. Please create a new feature request at

    hyperion-project/hyperion.ng
    The successor to Hyperion aka Hyperion Next Generation - hyperion-project/hyperion.ng
    github.com

    5. Currently, binding an UDP broadcast to a dedicated network adapter is not supported.

    The current behaviour is as following:

    Qt passes the destination address to the OS. The OS then:

    1. Looks up the best route to destination IP
    2. Selects the corresponding network interface (e.g., eth0, wlan0, enp3s0, etc.)
    3. Sends the packet via that interface

    So the chosen interface depends on:

    • Destination IP
    • Routing table
    • Interface metrics
    • Active connections

    Edit: See https://docs.hyperion-project.org/user/advanced/Testing.html#linux on how to test PRs. so you can check, if the fix works.

  • Hello Lord-Grey ,

    first of all, thank you very much for your detailed reply and for fixing the issues in PR1983 – I really appreciate it.

    Also, I want to apologize for my late response. I was on vacation and only just got back to this.

    Regarding the pull request:

    Unfortunately, I have no experience compiling software from source. I am familiar with Art-Net and sACN from the lighting side, but I do not have experience with software development or the build process.

    Would it be possible to provide the changes as a ready-to-use version, for example as a .exe, so that I can use them directly? This would help me a lot to test the improvements without having to compile the code myself.

    Universe limitation (RGB case)

    Regarding universe handling:

    I have seen that for sACN the ability to limit or define universes has already been implemented (I will attach a screenshot for reference).

    Would it be possible to implement the same behavior for Art-Net?

    The reason I am asking:

    When using RGB LEDs (3 channels per pixel), one universe can only be used practically up to channel 510.

    Channels 511 and 512 are not practically usable, because the third color channel (Blue) would be incomplete.

    Ideally, the next universe should start again at channel 1 with Red.

    This behavior seems to be implemented for sACN, so I was wondering if it could also be applied to Art-Net.

    Network interface feedback

    Regarding the network interface:

    On my laptop, I am using:

    • A USB-C dock (which receives a DHCP address from the router)
    • An additional USB-C Ethernet adapter with a fixed IP address for Art-Net/sACN

    As soon as the dock is connected, Hyperion no longer sends Art-Net/sACN data through the dedicated USB-C adapter with the static IP.

    This is why I originally asked about selecting a specific network interface.

    I understand from your explanation that Qt passes the destination IP to the OS, which then chooses the interface based on routing tables, metrics, and the destination address.

    However, in setups with multiple active interfaces (especially with a mix of DHCP and static IPs), this can lead to unexpected behavior.

    Again, thank you very much for your work and for taking the time to explain everything clearly.

    Best regards,

    Bastian

    • Official Post

    Would it be possible to provide the changes as a ready-to-use version, for example as a .exe, so that I can use them directly? This would help me a lot to test the improvements without having to compile the code myself.

    I am sorry, I missed to add the link how to test a PR which includes already a ready made version.
    Here it is: https://docs.hyperion-project.org/user/advanced/Testing.html#linux

    It will download the PR next to your current installation and you can remove it after successful testing...

  • Lord-Grey

    I have tested the new version and here is my feedback:

    Current behavior

    • I am receiving sACN output, and it works correctly in RGB.

    • However, I am not receiving any Art-Net signal.

    On my Swisson tester, the Art-Net indicator would normally turn green when Art-Net data is received.

    At the moment, this does not happen, which indicates that no Art-Net data is being transmitted.

    I have attached:

    • A screenshot of the Hyperion configuration

    • Two pictures from my Swisson tester

    You can see that sACN in RGB works correctly, but Art-Net is not sending any data.

    Additional observation (Hyperion 2.2.0)

    I also tested the official 2.2.0 version again.

    After restarting the Hyperion Agent from the system tray (Restart), the previously described Art-Net artifacts disappeared.

    It seems that the software may require a restart after certain configuration changes.

    If you need any additional information (logs, configuration files, network details, test scenarios, etc.), please let me know. I am happy to provide whatever is necessary to help analyze the issue.

    Again, thank you very much for your support — it is really appreciated.

    Best regards,

    Bastian

    • Official Post

    @BastianBee I did some corrections and using an ArtNet monitoring program it looked ok for me...
    Would you mind testing the PR again?

    Just download the PR build again as before.

  • Hello Lord-Grey,

    thank you for the update.

    I downloaded the PR build again and tested it.
    Art-Net is now working perfectly, and sACN is also working correctly.
    I can also confirm that R, G, B and W channels are now being transmitted, which is great. Thank you very much for the fix!

    However, there is one thing I have not fully understood yet.

    When I display pure white on the screen (R=255, G=255, B=255), I only receive a DMX value of about 85 on the white channel.

    For comparison:

    • When I set the screen to R = 255 only, I correctly receive DMX value 255 on the red channel.
    • But when the screen is pure white (255 / 255 / 255), the white channel only reaches around 85, and I never see values higher than that.

    I also checked the image processing settings, but I could not find anything that would explain this behavior.

    Did I possibly overlook a setting somewhere, or is this the expected behavior of the RGBW conversion?

    Additional question (Hyperion 2.2.0)

    I also tried to install the official 2.2.0 version again, because I wanted to check something there.
    However, Hyperion does not start anymore after the installation.

    Do you maybe have an idea what could cause this?

    If you need any additional information or tests from my side, please let me know.

    Best regards,

    Bastian

  • I downloaded the PR build again and tested it.
    Art-Net is now working perfectly, and sACN is also working correctly.

    It is great to hear that it is working now.

    I also checked the image processing settings, but I could not find anything that would explain this behavior.

    Just looking at the code, white values depend on the algorithm chosen.

    RGBW will be calculated when updating the LEDs. Image processing was done already done before and provide RGB values into the calculation.

    Just check out the way RGBW is calculated:

    hyperion.ng/libsrc/utils/RgbToRgbw.cpp at master · hyperion-project/hyperion.ng
    The successor to Hyperion aka Hyperion Next Generation - hyperion-project/hyperion.ng
    github.com

    Or share the way you configured and we have a joint look.

    I also tried to install the official 2.2.0 version again, because I wanted to check something there.
    However, Hyperion does not start anymore after the installation.

    Do you maybe have an idea what could cause this?

    It is likely that v2.0.0 complains that the database is already at a newer version.

    You should see this reported as an error in the output or system log.

    When testing PR normally a separate database is installed to avoid this. Not sure how you testen getting into the situation…

    To fix this:

    when a new version updates the configuration database, it stores an export in an backup folder next to the existing database. You should find a file with 2.2.0 in it.

    If hyperion is stopped you can import the file via the commandline (filename is illustrative).


    # Import a HyperionBackup JSON file

    hyperiond -i --importConfig ./HyperionBackup_2025-05-28-151224-615_v2.2.0.json


    Alternatively, wait for the next nightly build after I merged the PR and install that one.

  • Hello Lord-Grey,

    thank you again for your detailed reply and for looking into this. I really appreciate your help.

    Regarding your question:

    Or share the way you configured and we have a joint look.

    To generate mainly only the white value, I am currently using the “Auto Accurate” or “Subtract Minimum – White LED” algorithm.
    I hope this is what you meant with your question about the configuration.

    When I use the other RGBW modes, I always get RGB values in addition to white when displaying white on the screen. With these two algorithms, the white channel seems to be used predominantly.

    Do you plan to include the RGBW functionality in a future official release, so that users can enable or disable it in the settings? That would be very useful for setups with RGBW fixtures.


    I also have another question regarding Art-Net:

    If someone only needs RGB output, would it be possible to limit the maximum DMX channel count for Art-Net, similar to how it works with sACN / udpe131?

    The advantage would be that if the limit is set to 510 channels, the next universe would start again at DMX address 1. This avoids the situation where channels 511 and 512 are incomplete when using RGB LEDs (3 channels per pixel).

    I hope I explain this clearly 🙂
    With RGB, each LED uses three channels. After channel 510, channel 513 would normally contain the Blue value. Since a DMX universe ends at 512, this information would be missing and one LED could receive incorrect color data.

    Also, I tried your tip with the Nightly Build, and it worked perfectly. Many thanks for that as well!

    Best regards,
    Bastian

  • Quote

    This avoids the situation where channels 511 and 512 are incomplete when using RGB LEDs (3 channels per pixel).

    The current artnet code already considers this. One LED which is mapped to a defined fixture length, must be always within the same universe. If not, the next universe will start with it.

    Quote

    Do you plan to include the RGBW functionality in a future official release, so that users can enable or disable it in the settings?


    Everything currently in the nightly release will be made available via an official release at one point in time; no ETA defined yet.

  • To generate mainly only the white value, I am currently using the “Auto Accurate” or “Subtract Minimum – White LED” algorithm

    With those two algorithms you should get a white = 255 for full white RGB (255,255,255) and not 85.


    On SUBTRACT_MINIMUM you should get RGBW = 0,0,0,255

    Is this not the case?


    Edit: In case the color correction ends with RGB < 255, then RGB will be greater than zero… White get the smallest value of RGB and R,G and B will get white subtracted.

  • With those two algorithms you should get a white = 255 for full white RGB (255,255,255) and not 85.


    On SUBTRACT_MINIMUM you should get RGBW = 0,0,0,255

    Is this not the case?

    Yes, that's correct. In those two modes I do not receive a value of 255, but only 85, even though I display white on the screen with RGB values of 255 red, 250 green, and 255 blue.

    For testing, I simply use PowerPoint and color the background slides accordingly. However, when I display red, green, or blue with a value of 255, I receive a value of 255 via Art-Net for the corresponding color.

    I can also vary the value of 85 by adjusting the color temperature in the Hyperion settings.

    Best regards,
    Bastian

  • Hello Lord-Grey,

    that solved the issue! Setting Brightness Compensation = 0 fixed it.

    Thank you very much for your support and for taking the time to help with this. I really appreciate it — it is not something that can be taken for granted.

    It looks like I simply overlooked that setting, so thank you for pointing me in the right direction.

    Thanks again for your help!

    Best regards,
    Bastian

  • BastianBee You are welcome.
    While digging for through the code, I also learned more about the question at hand :).

    … and it triggered the question, if a default value of 100% makes sense…

  • Hello Lord-Grey ,

    yes and no 😅 I think it makes sense in some cases, but it’s really good that it can be changed depending on the use case.

    I was thinking of trying to send it into a lighting console, like a GrandMA, and then control moving lights with it — but I’ll have to see when I find the time to do that 😊

    Best regards,
    Bastian

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!