Monday, November 15, 2021

ESP8266 vs. ESP32 with WLED

 

This blog article is an overview of the testing parameters and setup for comparing the ESP8266 and the ESP32 when used with standard WLED and the sound-reactive version of WLED.  To see the results, I highly recommend you watch the YouTube video that shows the various feature and performance differences.

The Premise


While WLED has supported use of the higher-performance (and higher cost) ESP32 for a while now, most of my LED projects continue to use the ESP8266.  A YouTube subscriber asked me to do a comparison between these two boards, specifically when using the sound-reactive version of WLED.

Parts List


As always, I like to provide the parts that I used in the project.  In this case, I will be building two nearly identical WLED controllers, with the only difference being the microprocessor itself.  Note that if you opt to just build one over the other, you only need one of most of the items below.

QTY

Link/Descrip

Notes

1

ESP8266 NodeMCU

 

1

ESP32 Dev Board

 

2

4-channel Logic Level Shifter

 

2

ElectroCookie Prototype Board

 

2

Adafruit MAX9814 Microphone

 

2

WS2812b LED Strips (5m)

300 pixels each at 60 pixels/m

1

Pkg JST Connectors

Optional – connects LED strips together

2

5V 30A Power Supply

Should support about 500 pixels each

2

AC Power Cord Lead

For connecting power supplies to AC

 

Various Dupont Connectors

Optional.

 

Wago Connectors

Optional. Any type wire connector is OK

 

Misc wiring (18-24 gauge)

 

The above are Amazon affiliate links.  While it will not affect your pricing, this blog may earn a small commission from your purchase.

Test Equipment Setup


To try to standardize testing as much as possible, each controller board (one for ESP8266 and one for ESP32) was built as identically as possible.  The same gauge and length of wire was used in each case.  Pin selection was made based on the recommendations of the official WLED website and the Sound-Reactive WLED web site. The following are the wiring diagrams for each controller:

ESP8266


ESP32



LED Display Board


Each half the LED test board was connected to the respective controller.  Each individual 100 pixel LED strip was connected to a different signal pin on the controller, as shown in the controller wiring diagrams.  To avoid any issues potentially related to voltage drop, additional 5V power injection was performed at the end (top) of each LED strip.  Each side (and the controller) was powered by independent, but identical, 5V 40A DC power supplies.

WLED Specifications and Recommendations


Starting with the most recent version of WLED (0.12.0 as of the writing of this article), support for multiple output pins are supported.  However, the official recommendation is to use an ESP32 if using more than one output pin.

But the ESP8266 does support up to 3 output signals on different pins.  The ESP32 supports up to 10 output signals (although a maximum of 4 are recommended).  For the full list of recommendations and limitations when using multiple output signals, see the official WLED Wiki.

The overall feature set is nearly identical when using standard WLED with either the ESP8266 or ESP32.

Sound Reactive WLED


The sound reactive version of WLED is a fork of the official version.  It adds support for a variety of microphones and adds multiple lighting effects that are based on sound. 

While many of the features are the same as the official WLED, there are some changes that have been made to add the sound reactive features.  Primarily, these are support for other interface types, such as Blynk, Huesync, etc.  See the Sound Reactive WLED Wiki for more details and recommendations for things like microphones.

Unlike standard WLED, there are some features additions available when using the ESP32 over the ESP8266.  First, additional sound reactive effects are available when using the ESP32.  When using the ESP32, a matrix layout of the LEDs are also possible, again with special lighting effects designed specifically for an LED matrix.  Finally, when using the ESP32, additional effects settings are available to fine-tune frequency response when the LEDs are driven by sound.

Test Results


I would encourage you to watch the YouTube video to see the testing for yourself.  But I will summarize what I found during my testing.

For standard WLED, I was not able to discern any difference in performance between the two controllers when using all three output signals driving 100 pixels per signal.  Nor was any difference seen when driving all 600 pixels via a single output signal.  

However, at 3 output signals each driving 100 pixels, nearly one half of the available LED memory was being used with the ESP8266.  The ESP32 used less than 3% of its available memory using the same configuration.

Moving on to the sound reactive version of WLED, performance differences started to become apparent.  Once the second and third output channels were added, there was a noticeable delay, or lag, on the ESP8266 when responding to music.  The ESP32 version seemed to remain much more "in sync" with the music throughout the test over the ESP8266 controller.

Conclusions


While this was a limited and 'non-scientific' tests, there are some observable differences in both the feature set and performance between the ESP8266 and the ESP32, especially with the sound reactive version of WLED.

It is suspected that the performance differences, even with standard WLED, would become much more pronounced with even longer pixel runs.  Based on my observations, and own use of both versions of WLED and the controllers, my opinion would be as follows:

If using standard WLED (you don't need sound reaction) for anything under 1000 pixels, use an ESP8266.  When using a single output pin, this number should be reduced to around 500 pixels for optimum performance.  At the time this article was published and depending upon where you purchase, and in what quantities, the ESP8266 will cost about one third the cost of the ESP32.  And using a Wemos D1 Mini (ESP8266) will allow you to build a smaller footprint controller if that is important to you.

For longer runs (around 1000 pixels or more) or for situations where you need separate output signals and those individual outputs are going to drive more than about 500 pixels, consider the ESP32 instead for better performance.

If using the sound reactive version of WLED, I'd recommend using the ESP32 regardless of number of pixels or output signals.  Not only will you get better performance in nearly every case, the additional lighting effects and the ability to use the matrix effects make the additional cost of the ESP32 worth it.

Links


If you want to build your own WLED controller, I have both a video and separate blog article on building a WLED controller with a Wemos D1 Mini:


I also cover adding the sound reactive version to the controller in the following:


WLED:


Supporting this blog and related YouTube channel

If you'd like to support future content on this blog and the related YouTube channel, or just say thanks for something that helped you out, you can use any of my Amazon links to make a purchase at absolutely no cost to you.  Or if you prefer to say thanks directly, you can buy me a one-off cup of coffee at:


No comments:

Post a Comment

To help eliminate spam and to keep all conversations civil, submitted comments are moderated. Therefore your post may not show up immediately. Please be patient as most reviews are completed within a few hours.