ArtNode icon indicating copy to clipboard operation
ArtNode copied to clipboard

Problem with poll reply

Open xseignard opened this issue 6 years ago • 9 comments

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. capture d ecran 2017-11-28 a 19 57 16

Your can find my code here: https://github.com/xseignard/artnet-node/blob/master/src/main.ino

Any idea?

Regards

Xavier

xseignard avatar Nov 28 '17 19:11 xseignard

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.

tobiasebsen avatar Nov 28 '17 19:11 tobiasebsen

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?

xseignard avatar Nov 28 '17 19:11 xseignard

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.

tobiasebsen avatar Nov 28 '17 21:11 tobiasebsen

Take a look here: https://github.com/mattbeghin/Art-Ext-Poll

tobiasebsen avatar Nov 28 '17 21:11 tobiasebsen

Thanks for the explanations and for your quick responses Tobias!

I got it now.

Regards

xseignard avatar Nov 29 '17 08:11 xseignard

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

xseignard avatar Oct 19 '18 16:10 xseignard

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.

tobiasebsen avatar Oct 23 '18 22:10 tobiasebsen

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.

tobiasebsen avatar Apr 23 '19 08:04 tobiasebsen

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).

mrv96 avatar Apr 23 '19 13:04 mrv96