how do you control more then 8 universes?
multiple universes per pin?
Down the line, a bit of optimising through frame rate testing for a variety of setups would be very useful. For example, when would it be worth the additional cost of additional teensy and cabling hardware. Syncing of multiple teensy would not be an issue as each would only be sending out led updates for its own universe numbers.Yup, that's pretty much how artnet nodes work, I'm curious to see how many leds a teensy 3.1 can handle using artnet at a decent fps.
sorry for poor terminology. It was a way to describe the 24bits for each led and fact that there is packet overhead.thanks for the test !
What do you mean by 16000 led data sets a sec ?
I spread my pixels over the eight pins to pick up issues, as it was the data going through to the last pin that was being corrupted.Ah ok got it !
That's interesting. I wonder if PixelController being in Java could be a bottleneck.
I'll do some tests with max, I only have 192 leds so seeing the problems might be more difficult.
Wow I just realized I wasn't using the Ethernet library at full speed... new tests to be done soon.
I also think it might be better to buffer all incoming universes before sending to leds, more on this soon !
The code had all universe going into one large buffer from the interim buffer, so that the send to leds call was made only at the end when all universe had been placed into the buffer. The universe number was used in the for loop to send the address to the correct location before placing the next set of led values in tot the big bufferI'm not sure I understand your code then, unless I'm mistaken you still update the leds for each packet received ? (which means universes aren't on sync)
//read incoming universe and put into buffer
for(int i=start_address;i< number_of_channels;i++) {
channel_buffer[i-start_address]= byte(packetBuffer[i+art_net_header_size+1]);
}
//------put into the right part of the display buffer----//
for(int i=0;i<number_of_channels;i++){
buff2[i+((incoming_universe-first_universe_number)*number_of_channels)]= channel_buffer[i-start_address];
}
//------send to leds----//
for (int i = 0; i < ledsPerStrip*8; i++) {
leds.setPixel(i, buff2[(i)*3], buff2[(i*3)+1], buff2[(i*3)+2]);
}
leds.show();