# Custom / ArtNet optimized Version with another ArtNet Library?

**URL:** <https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852>\
**Category:** Questions\
**Created:** [January 9, 2025, 3:09pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852 "2025-01-09T15:09:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![FreiLicht](https://avatars.discourse-cdn.com/v4/letter/f/e8c25b/32.png) [@FreiLicht](https://wled.discourse.group/u/FreiLicht)\
**Post date:** [January 9, 2025, 3:09pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/1 "2025-01-09T15:09:51Z")

</div>

I would like to create a custom version of WLED that is optimized for ArtNet/E131. But I don’t know how to go about it.

Background:  
I have several controllers (QuinLED Dig-Quad) with Ethernet.  
Each output should control 800+ pixels via ArtNet, so 3200+ in total, and as smoothly as possible.

After a long search, I found this library with which you can use 30+ universes with high FPS.  
[https://github.com/hpwit/artnetesp32v2](https://github.com/hpwit/artnetesp32v2)

My idea now is to create a WLED version in which I remove everything I don’t need, such as other sync options, effects, etc. Actually, I want to reduce it so much that I can configure basic parameters, such as LED and network setup. To operate an ESP32 as a pure ArtNet 2 pixel node.

Is it possible to integrate this library somehow?

Regards  
Mike

---

<div class="post-metadata">

**Author:** ![netmindz](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/netmindz/32/304_2.png) [@netmindz](https://wled.discourse.group/u/netmindz)\
**Post date:** [January 9, 2025, 3:30pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/2 "2025-01-09T15:30:03Z")

</div>

If you want performance, then I would not use WLED at all if you just want ArtNet to pixel output.

Just a simple Arduino sketch. You often find examples of this with ArtNet or led driving libraries, hpwit being a good example

If you are needing more than just ArtNet to pixel output, then checkouts the work Troy is doing on MoonModules version of WLED

---

<div class="post-metadata">

**Author:** ![netmindz](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/netmindz/32/304_2.png) [@netmindz](https://wled.discourse.group/u/netmindz)\
**Post date:** [January 9, 2025, 3:32pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/3 "2025-01-09T15:32:36Z")

</div>

Just take [artnetesp32v2/examples/artnetdisplay/artnetdisplay.ino at main · hpwit/artnetesp32v2 · GitHub](https://github.com/hpwit/artnetesp32v2/blob/main/examples%2Fartnetdisplay%2Fartnetdisplay.ino) and add something like the plus [ESP32 WiFiManager - Easy WiFi Provisioning](https://dronebotworkshop.com/wifimanager/)

---

<div class="post-metadata">

**Author:** ![Troy](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/troy/32/4042_2.png) [@Troy](https://wled.discourse.group/u/Troy)\
**Post date:** [January 13, 2025, 2:30pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/4 "2025-01-13T14:30:51Z")

</div>

Adding to this, it’s “not just” optimizing WLED for this.

As @netmindz suggested, a plain sketch with only Art-Net is the way to go.

You can also increase universes in WLED with `-D E131_MAX_UNIVERSE_COUNT=120 ` (same value is used for Art-Net universes) at least in WLED-MM… but this might not be not enough.

Ideally you need to recompile Arduino-ESP32 to increase `CONFIG_LWIP_UDP_RECVMBOX_SIZE` and `CONFIG_UDP_RECVMBOX_SIZE` to allow the network stack to cache/hold more UDP packets - which is “hard mode” but would benefit this as well.

My recommendation is “don’t use an ESP32 for Art-Net/E1.31/sACN receiving” - there’s a lot of inexpensive Art-Net controllers available now and they use FPGAs internally. This gives you extremely fast processing and no microcontroller task-switching overhead.

(The latest WLED-MM has my new Art-Net **sending** code, which allows you to more easily set up these Art-Net boxes for use from inside WLED. Sending vast amounts of pixels works great in WLED-MM, especially if you have PSRAM… or an ESP32-P4.)

 ![art-net_v2](https://global.discourse-cdn.com/free1/uploads/wled/original/2X/b/bb33ea53b295cd5bce62f794f414969c41d09d84.png)

---

<div class="post-metadata">

**Author:** ![FreiLicht](https://avatars.discourse-cdn.com/v4/letter/f/e8c25b/32.png) [@FreiLicht](https://wled.discourse.group/u/FreiLicht)\
**Post date:** [January 14, 2025, 2:28pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/5 "2025-01-14T14:28:20Z")

</div>

Thanks for your answers.  
@netmindz On the one hand, unfortunately I haven’t found any cheap controllers that can only do Art-Net 2 pixels, especially with 800 LEDs per output.  
On the other hand, I really like the features of WLED such as the brightness limiter and the easy configuration.  
Unfortunately, my coding skills aren’t the best to create my own build or to compile other libraries so that they do what I want.

@Troy As I said, unfortunately I’m not that technically fit. So, I have no idea how to recompile Arduino-ESP32.  
What I don’t need is Art-Net Out but actually just Art-Net In, via Ethernet.

I’m going to try WLED-MM today. The S version is optimized for speed here, right?

I have now been looking for pure Art-Net nodes based on ESP32, but most of them have errors or are not easy to configure with Ethernet and several pin outs.

---

<div class="post-metadata">

**Author:** ![Troy](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/troy/32/4042_2.png) [@Troy](https://wled.discourse.group/u/Troy)\
**Post date:** [February 21, 2025, 3:24pm UTC](https://wled.discourse.group/t/custom-artnet-optimized-version-with-another-artnet-library/13852/6 "2025-02-21T15:24:01Z")

</div>

The “S” build is “Small” (less features) - there aren’t many knobs you can tweak for speed, really.

I’ve found some speedups with compiler flags but it’s edge cases. Also recompiling Arduino-ESP32 can be a benefit if you optimize for your use-case, but otherwise it’s not really worth it unless you’re chasing performance and know what you’re targeting - and the drawbacks that often come with the benefits. (Like, say, more RAM used for buffers)

You can find me (and @netmindz) on Discord [WLED MM 2D & Audio Dev](https://discord.gg/V9GU4zHx) or on Github as @troyhacks - I don’t monitor Discourse too often.
