My plan is to use a Ethernet controller to receive pixel data via the Artnet protocol from a software and display it on my 32x32 Matrix using the library.
First of i want to point out that i am by no means a advanced programmer, so please forgive me if my code looks pretty hacked together
So i got the Ethernet and Artnet part working fine by attaching an WIZ820IO Ethernet module (W5200 chip). I only had to change the CS and Reset pins in the Teensy library, since the standard pins get used by the SmartMatrix shield.
I then combined an example from the Artnet library with an basic SmartMatrix setup to send the 3072 channels to the leds:
In the main for loop to transfer the data to the leds i had to put in some if cases to offset the channels to the pixels on the matrix. This is because my bitmap program is not capable to split one pixel in two Artnet universes. So there are some gaps in the channelBuffer at the end of each universe.
It basicly works, but there are a few problems with it:
First of all, it is way to slow. The big for loop takes to long to set the individual pixels, in most cases it does not finish before the next frame arrives. This causes the rows at the bottom not to be updated most of the time… Also the Matrix has a noticeable slower frame rate than the original signal…
Also the code causes the whole Teensy to freeze up some times, probably because it tries to access the main string at the same time it is written to…
I also have to define the color of the individual pixel each time with rgb24, this maybe takes a lot of time in total too…
I am pretty sure there is a much quicker way to pass the Artnet data over to the pixels than drawPixel, do you guys maybe can help me out with that? As i said, handling this mass of data is something new to me
Thanks in advance, greetings,