ArtNode
ArtNode copied to clipboard
Problem with poll reply
Hello,
First, thanks for your very nice and up to date lib! 👍
I'm trying to use your library with teensy and madmapper.
Everything is working pretty ok, but I don't get why madmapper doesn't discover all the universes my teensy could handle (e.g. 16 universes).
In the madmapper interface, I only see 4 universes handled by my teensy.
Your can find my code here: https://github.com/xseignard/artnet-node/blob/master/src/main.ino
Any idea?
Regards
Xavier
The limitation is in the Art-Net specification. It limits the number of "ports" to a maximum of 4. I think the reason for this limitation is network bandwidth. Especially if you only have 10/100base-t (like the Wiz820io) you will probably not get good framerates streaming more than 4 universes.
The solution is to have multiple hardware nodes that each receive 4 universes. But then you need to configure them so that the first node has universe 0 to 3, the second node has universe 4 to 7, and so on.
Hello Tobias, Thanks for your quick answer. I tried this code: https://github.com/vertigo-dk/BlackLED
And with this one I can see the 16 universes in the pref pane of Madmapper. The problem is that I don't get what's different between their code and mine. I also tried their Artnet extension on my code with no success.
Any idea?
Yes, it seems that the Art-Net extension does indeed allow for more than 4 universes per node. But this extension is not a part of the Art-Net specification and will not be supported by all softwares. And even with MadMapper, that does support Art-Ext, you will probably experience bandwidth problems (low frame rates) when increasing the number of universes.
Take a look here: https://github.com/mattbeghin/Art-Ext-Poll
Thanks for the explanations and for your quick responses Tobias!
I got it now.
Regards
Hello, I wake up this old thread, because it seems ArtNet version 4 now can handle more than 4 universes in an ArtPollReply by sending more than one response. See: https://art-net.org.uk/faq/nodes-with-4-ports/
Any idea how to achieve that ? Regards
Hi @xseignard It seems that what you can do is to send multiple ArtPollReply packets. In each of them you can specify a number of ports (NumPortsLo) with corresponding PortTypes and port addresses (SwIn or SwOut). My most recent commit 7063ebfa57d0cca5857851c7514a647f4b205cc0 sets the BindIp to the nodes IP as described in the document.
As mrv96 pointed out in the comments of your pull-request, there is a different way to approach this. The philosophy behind having a ArtConfig is that all ports are configured here. I will be looking for a solution that honours this in a more elegant way.
A possible solution could be to implement a struct that describes a port and include a pointer to an array of ports (defined by the previous struct). In this way, knowing the number of ports by the field in the ArtConfig struct, it should be easy to handle different ports on different universes (with not common net and subnet).