Artnet to OctoWS2811?

Not open for further replies.

what is the maximum number of artnet universes per teensy? In the code I always see a kind of limit to four universes. Why?
I think I've read somewhere that it's a artnet specification : 4 universes max by hardware. Don't know why.
I mean by hardware fully compliant with artnet protocol. Teensy (arduino) implementation of artnet is not full as far as I've seen, for instance there is no artnet poll reply implemented, I've seen the function somewhere in the artnet library but it does nothing.
I didn't meet this universes limitation with the teensys, I've been running up to 6 universes by teensy. Didn't try more but I don't see why it wouldn't work.
Indeed, I did not implement ArtPoll reply yet (although I plan to at some point).
There is no universe limit in the Artnet library provided with the Teensyduino installer. There's probably a limit of how many universes you can parse due to the speed of ethernet/memory limitations but it's much higher than 4...
There's no universe limit in the code (for the teensy at least)
But i have seen some librairies for Arduino Mega that are limited to 4.
Ok found it, it's in the protocol description : ArtPollReply messages have a NumPorts value, in its description you can read "The maximum value is 4". I guess there's no hardware limitation, just a protocol limit.
Regarding mega beeing limited to 4 universes, is it not a CPU limitation ? I've seen that arduino is somewhat limited to driving a few hundred ws2812, maybe that's the reason for this limitation ?

niecaude, that's nice to hear that ArtPollReply could be implemented at some point ! The current code is already really good and works flawlessly, but I've been dreaming of this day when I will be able to scan the teensy, and even reconfigure their IP and universe through the controller. Wow !
When I try to set

const int ledsPerStrip = 160;
const byte numStrips= 8;

Artnet does not work. I see the test colors flashing on each of the 8 strips, but artnet does not seem to be processed. No output appears on any strip.

When I set

const int ledsPerStrip = 160;
const byte numStrips= 1;

It works perfectly. Is there any limitation I don't see?

Might be because the teensy doesn't get all the universes data, the "sendFrame" check never gets true. Try and comment the check (all the paragraph below, lines 58 to 70 of the code) and see if it's working

// Store which universe has got in
if (universe < maxUniverses)
universesReceived[universe] = 1;

for (int i = 0 ; i < maxUniverses ; i++)
if (universesReceived == 0)
sendFrame = 0;

If this solves your problem, then either you leave this commented, or find what is wrong with the controller software (probably a node configuration issue)
Thank you Titi, now all stripes at least work. What I want to achieve is that each stripe has its own universe.

At the moment the code seem to assign the channels for the stripes continously over artnet borders. Is there a way to do it like I mentioned?
The only way I see to achieve one universe / strip without modifying the code is to declare 170 leds per strip. 170 leds is the maximum on one universe. I assume you had the frame check issue because you refresh only one universe at a time ?
for instance there is no artnet poll reply implemented, I've seen the function somewhere in the artnet library but it does nothing.
@Titi, you could always experiment by adding in something after the "if art_net" statement along the lines of

else if( == ART_POLL)
  //send ip address or something else as a signifier of the node
   Udp.write( /*ip &/or MAC address in correct byte arrangement*/);

ART_POLL along with ART_NET is available. nlecaude kept this in the artnet.h file, so it should be possible if you know what the artnet controller is expecting to receive in reply obvious that I didn't see this one ! must say I'm not really in .h and so, until now I always found a way without putting my hands in it. I'll give a try, thans for the tip !
Hi everyone,

Iv been struggling for a while now and I am not getting anywhere. I have tried various codes people have posted on this forum and have no results to show for it. for instance post #329 from Titi and also other code from natal. I always get the short colour tests to the strips I'm working with but after that i can't get anywhere. I have used the basic test, fire and other example sketches from the OctoWS8211 folder and they all work fine.

My goal is to get Mad Mapper to connect to my Teensy 3.1 so i can output video data from that, to my led strips. After uploading a Sketch i go to MM and try and connect but never get any "online' Options.

Maybe someone could recommend a different program that be easier to see a connection between the devices and just give me some help in general please?

Im using a
Teensy 3.1
OctoWS2811 Adaptor
Wiz812 Adaptor
WIZ812MJ Ethernet

2015-02-17 18.25.28.jpg2015-02-17 18.24.50.jpg
The W5100 chipset you are using is probably too slow if you want to control a lot of LEDs... You would need the wiz820io (W5200) with the wiz820 adaptor....

If you check in the Artnet examples there is an ArtnetReceive example that will just print incoming data. Did you try this to see if you were getting data in ?

Can you post your full IP configuration (IP, Subnet mask, gateway) of both your mac and Teensy ? Posting full code also helps.
Hi nlecaude, thanks for the quick reply. Ok i have ordered the wiz820 now. I did notice no one mentioned the wiz812.

Ok i have but i don't know if i have done it properly. (iv been using ardunio n teensy since the start of the year so new to it all). I have upload the Artnetreceive example and changed the it to my ip on line 15 "byte ip[] = {192, 168, 1, 67};" and thats it. Should I have something else running? how do it get the teensy to display if I am getting data in? do i use the serial monitor?

Subnet Mask
@Marc W - when you load the ArtnetReceive sketch to the Teensy, you wait till it has completed updating and then open the serial monitor. That sketch is specifically designed to view the data packets being received by the Teensy. It will spit out the data received via artnet to the serial monitor with some useful text to describe the universe and packet numbers coming in. If this sketch does not print data to the monitor you most likely have a problem with either data not being sent from your artnet data software or with the ethernet module. This is the simplest sketch to get going in the first instance.
there must be a problem with my hardware, as i have now tried it with the JV Lightning DmxControl app and the serial monitor does nothing. Ill be receiving the Wiz820 components tomorrow so ill check again when i have them.

In the mean time is there any other programs anyone can recommend to test my connection out?
I have come across that one but it confused me, so will try again! which program would I use to open that file (
I have come across that one but it confused me, so will try again! which program would I use to open that file (
You can open the file in a text reader. Depending on your computer, you might be able to right click and choose which application to open it with, such as textedit on mac.
It is a confusing process for pixelcontroller, you are right.
You seem to use the same IP address on both your computer and teensy ( That will not work... the computer needs to have it's own address
A good tip. let your microSD card not in the teensy. Now 2 months (with lots meantime) searched for the problem and it was solved by removing the SD card :confused:
@nlecaude, I am currently using IP of 2.x.x.x. I read in the specifications: "Products implementing Art-Net should default to the Primary IP address of 2.?.?.?.". Both options work, except that the 192.168 would sometimes have issues with my network setup. It may be that some artnet output devices will default to 2.x.x.x?
@mortonkopf That's totally possible. Software implementations are usually more lax and allow to send on a any subnet but in the case of hardware it will most of the time only work on a 2.x.x.x network. Furthermore, according to spec the full IP address of a device is derived from it's mac address to ensure it is unique.
Not open for further replies.