Artnet to OctoWS2811?

Status
Not open for further replies.
This is excellent!

Could someone please show instructions and/or pictures on combining the WIZ820io & Micro SD Card Adaptor with the OctoWS2811 Adaptor? Is it straight forward? No pin conflicts? Just solder them together and all good?

Also, I note that the OctoWS2811 Adaptor page includes the statement at the bottom:

TODO: signal quality tests with different length CAT6 cables....

Anyone know what the theoretical and practical CAT6 cable limits are?

Thanks,
Nick
 
Here is my setup. I soldert my Teensy under the octows adapter. No pin conflicts and it works with Jinx.

image.jpg

image.jpg

image.jpg

image.jpg
 
Nice ! I assume you're not using the SD card ? That's where it could cause issues because of the shared pin.
 
now that is a nice clean setup. Input - Output. I have not used Jinx. What made you choose this setup for control?
 
Jinx is free. I'll try some other software later. And the Teensy is cheap and powerful compared to Arduino boards.
 
I got mine assembled too, looks slightly different as I did put the teensy on top of the octo adapter and the wiz adapter on top of that. So I got my teensy sandwiched between two adapters. :)

I am trying the included Artnet example with Madrix and with LightJams to send it data, but I'm not having much luck.

Madrix lights up part of the strip in the correct colors when changing the Universe Port OUT setting between the drop down choices of "1 (0x01)" and "2 (0x00)", but does not continue to change the colors on the strip as expected.

I changed the example code to have an IP address on my network and I set the startUniverse to 1. I also tested with startUniverse = 0 and a similar thing happens only this time the full strip lights up when swapping the config I mentioned bellow but does not continue to change the colors as expected.... I can't figure out what I'm doing wrong. Could someone please nudge me in the right direction? Thanks!

Also, I'm wondering what software are you guys using to send Artnet packets?
 
I got it working when I realized my mistake with the MADRIX DMX and Art-Net settings.

I have 2 x 240 LED strips. There seems to be "glitching" when I turn on a Color Scroll effect, similar to the OctoWS2811 Rainbow example. There seems to be no glitching going on when doing an effect called Flames or Explosions which do not seem to light up as many pixels at a time. MADRIX has an option to send "Full" or "Optimized" DMX frames, and it's not making as much of a differnce in the "glitching" of the Color Scroll effect, but sending "Full" frames "glitches up" the other two effects.

Long story short, I think I need to turn up the speed on the Wiz820 network adapter. I read in this thread a mention about that but it was a bit fuzzy to me. I'd appreciate a few more pointers on that.

Here's a short video of my running test and demo to a couple of friends: Teensy OctoWS2811 Art-Net example sketch, DMX from MADRIX 3

 
I testing the "artnetRecieve" example, but it won't work. I connected a Wiz820io and it works fine with the " WebServer" example. So i know the Wiz820io works. The artnet also work, because i can receive it on my pc. But when i run "artnetRecieve" i see nothing in the serial monitor. I changed the ip adres to my range, but do i also have to change the MAC adress?
 
just the sample with changed IP

Code:
/*
This is a basic example that will print out the header and the content of an ArtDmx packet.
This example uses the read() function and the different getter functions to read the data.
This example may be copied under the terms of the MIT license, see the LICENSE file for details
*/

#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>

Artnet artnet;

// Change ip and mac address for your setup
byte ip[] = {2, 0, 0, 2};  // Sender is 2.0.0.88 
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};  // as sample

void setup()
{
  Serial.begin(115200);
  artnet.begin(mac, ip);
}

void loop()
{
  if (artnet.read() == ART_DMX)
  {
    // print out our data
    Serial.print("universe number = ");
    Serial.print(artnet.getUniverse());
    Serial.print("\tdata length = ");
    Serial.print(artnet.getLength());
    Serial.print("\tsequence n0. = ");
    Serial.println(artnet.getSequence());
    Serial.print("DMX data: ");
    for (int i = 0 ; i < artnet.getLength() ; i++)
    {
      Serial.print(artnet.getDmxFrame()[i]);
      Serial.print("  ");
    }
    Serial.println();
    Serial.println();
  }
}
 
Long story short, I think I need to turn up the speed on the Wiz820 network adapter. I read in this thread a mention about that but it was a bit fuzzy to me. I'd appreciate a few more pointers on that.

is this what you were thinking of?

You can double the speed of the SPI bus from 12MHz to 24MHz by un-commenting this line...

// SPIFIFO.begin(W5200_SS_PIN, SPI_CLOCK_24MHz); // W5200 is 33 MHz max
… in the Ethernet library in utility/w5100.cpp.
 
MagicQ is free ?
If so I'll try testing with it, not sure when I can test yet though. The delay won't help. Can you try the callback example also ?
 
is this what you were thinking of?

You can double the speed of the SPI bus from 12MHz to 24MHz by un-commenting this line...

// SPIFIFO.begin(W5200_SS_PIN, SPI_CLOCK_24MHz); // W5200 is 33 MHz max
… in the Ethernet library in utility/w5100.cpp.

i can only find
Code:
 SPIFIFO.begin(W5200_SS_PIN, SPI_CLOCK_12MHz);  // W5100 is 14 MHz max


And MagicQ is free, there is a text at top (Demo Mode) , but artnet works. Callback example also won't work :-(


this works, so he lives (with correct ip)
Code:
void loop()
{
  // we call the read function inside the loop
  artnet.read();
  Serial.println("hello world");
Serial.println(Ethernet.localIP());
  delay(100);
}

does is matters what the mac adress is?
 
Last edited:
does is matters what the mac adress is?

I have not used my artnet for a bit, as we have changed some of the performance routines, but just looked out my old sketch as I had written in my code:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x4C, 0x8C} ; //the mac adress in HEX of ethernet module/shield
 
pixelinvaders also won't work :( but i am not 100% sure i am sending artnet out of pixelinvaders. If i want to strart from zero, do i have to start with "UDPSendReceiveString ? wit port : 6454 en correct ip?
 
In data/config.properties make sure you uncomment the relevant lines:

Code:
#=========================
#settings for Art-Net devices
#Info: PixelController supports more than 1 universe
#do NOT FORGET to define the output resolution above!
#=========================
#HINT: you define how many artnet panels are in use, in this example we use four panels.
artnet.layout.row1=NO_ROTATE,NO_ROTATE
artnet.layout.row2=NO_ROTATE,NO_ROTATE

#controller ip address
artnet.ip=192.168.1.2

#define the default artnet broadcast address, default is 2.255.255.255
artnet.broadcast.address=255.0.0.0

#define how many rgb pixels are used on a universe, maximal 170 (=510 Channels)
#Example: if you use two 8x8 RGB Led matrix, you connected the first matrix on universe 1
#         and the second matrix on universe 2, you would set artnet.pixels.per.universe=64 
artnet.pixels.per.universe=170

#define the first universe id
artnet.first.universe.id=0
 
Got my setup done. I'm running 1000 LEDs with the Teensy, Octows Adaptor and the WIZ820io & Micro SD Card Adaptor, using Jinx. I set my matrix to 150x8, but on line 7 and 8 are only 50 LEDs. The PC is connected with a 25 feet CAT6 cable to the Teensy and from there 5 cable feet to the LEDs. I got 2 power supply running, one 5v and one 12v, each with 40 amps.

Here a link to the video.
Inside and later how it is running now outside.


If somebody wants to use Jinx, here some tips.

In artnet sketch just change the LEDs per strip and the strip count and the IP for your setup.

In Jinx set your matrix size to the same LED count. Then add the artnet device. If you only use 150 like me you need to set the channel limit to 450 (150x3) on each line. With 20 LEDs, set it to 60 (20x3) and so on. Otherwise some LEDs won't light up or RGB is reversed and you get the wrong colors.

After that you can patch the LEDs, line by line. After that it should work. Good luck.

Thanks to nlecaude and the others for writing or helping with the library and sketch. ;)

Rocket
 
It's the standard Ethernet library, I think it's 12mhz. I can't change it now, the teensy is outside and boxed up waterproof.
 
Woobatron. As requested here is my old sketch for Artnet with CC3000. It is a legacy file, not updated for some time, so might have issues with some of the compiler and lib changes. Untested recently, but at the time it worked, but not fast enough for my needs. It also required changes to the standard common.h file to increase buffer size. Also, this was prior to nlecaude fabulous packaging of all this discussion into something that is actually useful. If it doesn't compile, you might have to dig around …

its got some pretty rubbish coding in my sketch, very sorry about that.
 

Attachments

  • cc3000_Artnet_receive.ino
    12 KB · Views: 236
Last edited:
Status
Not open for further replies.
Back
Top