Hello! I am working on a project with 2560 pixels running on Artnet over

@Stef_Weicks hello so know the issue is that the display function will take some times with your set up (linear push):
Glediator is pushing 25fps in average hence 40ms between each frame which allow to push 1300 pixels so without parallel output you could serve 4 maybe 5 16x16 with one D1 without too much issue above you will skip frames …

@Yves_BAZIN i understand! so this code is written for the ESP12?
i compiled your code and i don’t want to annoy you but there are a few things i can’t fix myselfe.
memccpy(&leds[SIZE_UNIVERSE3incomingUniverse],hData + ARTNET_HEADER + 1,size);
>to few arguments to function

and compiling with ESP32 i got also a problem with:
os_intr_lock();

was not declared in this scope

and all data (31 universes) are possible to run over one output? i don´t think so, or am i wrong?

@Stef_Weicks sorry typo it’s ‘memcpy’ and not ‘memccpy’ :slight_smile: sorry

@Yves_BAZIN the code will work up to 31 universes but with one ouput it will take too long to update and you’ll skip too many frames.
if my code is working. I propose you test with only one D1 per 5 16x16
#define NUM_UNIVERSES 8
#define SIZE_UNIVERSE 170 //in pixels
#define NUM_LEDS 1280
//7 universes at 170 and the lat one at 90
The next step for you is to use the fastled library with parallel output and normally only one D1 will be enough to control your entire panel

@Stef_Weicks did u manage to compile ?

@Yves_BAZIN i tried the code without using //os_intr_lock(); //os_intr_unlock();
Only the first 4 Leds of the strip are blinking in random colors if i do the rainbow in jinx. The outputpin is gpio2 and used the 1 universe. It does not matter if the Ground of the powersupply is connected with the D1. hmm…

This is the code i used-> https://gist.github.com/weicks/383ee8b27e4cacfd91da97986329256d
missing/deleted image from Google+

@Stef_Weicks you should use those other wise you’ll get stung stuff I am sorry uncomment those two lines
yves

@Stef_Weicks ehhe I found another mistake I forgot a ‘*3’ https://gist.github.com/hpwit/79cb0fcf0848466479ea4ff7a10db8a1

But if i have to use the lines with my ESP32… i always get this failure:
‘os_intr_lock’ was not declared in this scope
‘os_intr_unlock’ was not declared in this scope
i also used #include <WiFi.h> instead of #include <esp8266WiFi.h>

os_intr_lock and os_intr_unlock only works with the Esp8266…

i uploaded it on my ESP8266 also with no results.

i tried your last code with no improvements…i commented os_intr_lock, os_intr_unlock to get it compiled…

@Stef_Weicks ah you change ESPs lol
I did not pay attention.
This code will work with an esp8266 to light up the leds :wink: not the esp32.
To drive the leds with the esp32 download the FastLED library I will adapt the code so you can use this.

@Stef_Weicks https://github.com/samguyer/FastLED

aaah ok I’ve already believed that you did´t notice :wink:
and you think its possible to light up 31 universes with the ESP8266!!! would be nice if that works… Hasn´t anyone ever done that?

I don´t really care which processor the LEDs are working with … so how is the easiest way to do?

ok i already have this library… what is the next step?

download my version of the arnet library
http://github.com - hpwit/artnet
there is in examples you have arnetexample
just modify the size of your led panel
and the pin for the LEDS in FastLED.addLeds
and it should work

@Stef_Weicks 31 universes is not really the issue it’s more what you want to do with it. with the esp32 when you want to display a lot of pixels you can use the second core to do it so you retrieve the data with core 1 and then use the second one to display while gathering the info for the next frame on the other core :slight_smile:
this version of Artnet can handle up to 64 universes.
also with this version of the FastLEd library you can have parallel output => faster display => loosing less frames
on my panel I use 35 universes

@Yves_BAZIN Thanx for your code. i did all as you said …size of the matrix
#define LED_WIDTH 80
#define LED_HEIGHT 32
#define NUM_LEDS LED_WIDTH*LED_HEIGHT
#define UNIVERSE_SIZE 170
CRGB leds[NUM_LEDS];

and the datapin i want to choose
FastLED.addLeds<NEOPIXEL, 2>(leds, NUM_LEDS);

the wifirouter connects to the pc and the controller.

i startet jinx with the artnet-ip of the controller but unfortunately it does not work :frowning:

did i forgett something? i have a Wemos D1 mini 32 controller

@Stef_Weicks after the FastLED.add
Add this line
fill_solid(CRGB::Red, NUM_LEDS);
FastLED.show();
delay(3000);
If everything is setup correctly all your leds should turn red during 3s

@Stef_Weicks and oh yes start your mapping with subnet 0 not subnet 3
As you have 16 universes per subnets the universe number is subnet*16+universe so if your start at subnet 3 that means you have a lot of universes

@Stef_Weicks I can also predict frame loss due to the fact that your displaying 2500pix. If this works next step we setup the parallel output

@Yves_BAZIN if you want to keep your subnet at ‘3’ open the file Artnet.cpp
line 131:
incomingUniverse = artnetPacket[14] | (artnetPacket[15] << 8);
add this after this line
incomingUniverse -= (3<<4) ;// supposing your subnet is 3

you meant: fill_solid(leds,NUM_LEDS,CRGB::Red ); ?
i did this with no sucess :frowning:
i deleted all fastled librarys in the lib directory and did a new implementation of Sams-Fastled-library…