LedBox V3


LedBox V3 is an ultimate, sound-reactive LED controller, compatible with 5-12V addressable LED strips (WS281x, SK6812, etc.), supporting 3-(data) and 4-(data/clock) wire signal protocols. Whether you prefer a plug-and-play solution, or you are a maker that loves tinkering with hardware, it offers the best of both worlds.

Powered by the cutting-edge ESP32-S3 running the powerful dual-core Xtensa LX7 with 8MB of flash, the LedBox V3 is a game-changer in the realm of addressable LED control modules. Its future-proof design ensures compatibility with even the most complex operations such as real-time sound-reactive FFT-based 2D matrix animations. Additionally, it's native USB interface facilitates effortless prototyping.

The design is open-source, and resources can be downloaded using links in the right sidebar. The fully assembled version can be purchased on Tindie.com and comes programmed with the latest firmware version.

  • Powered by ESP32-S3
  • Fully compatible with WLED MM
  • Sound-reactive (MEMS microphone)
  • Supports 5V-12V LED strips
  • 38kHz IR Receiver
  • Button control
  • 1000µF buffer capacitor
  • 10A resettable fuse PPTC
  • High-speed logic level converter
  • Variable impedance matching
  • MOSFET
  • USB-C interface

Specification

The module has a comprehensive array of features including a dedicated 3.3V step-down converter, signal line level-shifter, digital MEMS microphone, side button, 32kHz IR receiver, 10A safety resettable fuse, 1000µF buffer capacitor, and a variable impedance matching resistor. These features ensure maximum functionality and compatibility with various LED strips, all neatly packaged within a compact and 3D printable enclosure.

LedBox V3
Input voltage
5-12V (MAX 16V)
MCU
ESP32-S3-MINI-1
Step-down converter
TPS62160DSG
LDO
HT7550-7
Microphone
ICS-43434
IR Demodulator
TSOP38238
Logic level shifter
SN74AHCT125
Fuse
2920L500/16MR
MOSFET
WSF90P03
Variable impedance matching
0-200Ω
Dimensions
45mm x 32mm x 13mm
GPIO
LedBox V3
DAT (LED Data)
48
CLK (LED Clock)
0
BTN (Control / Boot button)
0
IR (32kHz demodulator)
42
Microphone (SD/WS/SCK)
39/38/37
MOSFET (Output power switch)
18

The module comes by default with a standard 3-wire JST SM connector to interface the most common, 3-pin addressable LED strips. An additional wire can be soldered to the CLK_H pin, to use it with SPI-based 4-pin strips.

Both DAT and CLK are level-shifted from 3.3V to 5V, to meet recommended operating conditions for most LED strips. The DAT line has a variable (0-200Ω) impedance matching resistor in series, to combat potential ringing when a high-frequency signal travels through a conductor of different electrical properties (length, cross sectional area, etc.), and also limits the current.

The 5.5x2.1mm (IEC 60130-10 Type A), center-positive DC barrel jack provides power to VDD_IN domain, which subsequently supplies the 3.3V DC-DC regulator for all ICs, as well as a 5V LDO for the level converter reference. The VDD_IN domain also provides power to the connected LED strip through a MOSFET, functioning as a high-side-switch between VDD_IN and VDD. This allows to power-on the strip when needed, and completely disconnect it standby mode, reducing quiescent current and improving safety. The absolute maximum rating for the input is 16V, but since it is electrically connected to the output, it is crucial to match and not exceed the voltage rating of the connected LED strip (usually 5V or 12V).

The USB-C port is directly connected to the native USB interface of the ESP32-S3. It cannot be used to power the connected LED strip, but it it powers all the circuitry on the board via protection diodes, so it can be used both with and without external power connected through the DC jack.

Getting started

1. LED strip

Choose an addressable LED strip with input voltage between 5V-12V. There is a lot of WLED compatible strips to choose from, and the full list can be found here, but if you do not have a preference, I suggest one of these options:

IC
Voltage
Type
WS2815
12V
RGB
WS2812B
5V
RGB
SK6812
5V (12V)
RGBW

The WS2815 offers superior performance compared to the WS2812B, although at a slightly higher cost. Generally, opting for the 12V versions results in a smaller voltage drop, which is particularly advantageous when controlling longer strip lengths. Additionally, the WS2815 also has a breakpoint recovery feature, ensuring that if a pixel is damaged, the rest of the downstream pixels continue to function

The SK6812 is an excellent choice if an RGBW strip is required. It is typically available in three variants based on color temperature (CW/WW/NW), and occasionally can also be found in a 12V version.

2. Power supply

When selecting an appropriate power supply, there are three key parameters to consider:

Input voltage

This value should be determined based on your individual requirements. If you intend to power the supply from mains wall power, you will need an AC/DC PSU compatible with the voltage and frequency in your country (typically 230V 50Hz in the EU, and 120V 60Hz in the US). However, if you plan to use a battery (or other DC source), you'll need a DC-DC converter capable of accepting the max input voltage you expect.

Output voltage

The output voltage of the power supply has to precisely match the required input voltage of the LED strip (selected in the first step). This value will most likely be either 5V or 12V.

Maximum output power / load current

Make sure that the maximum output power capability of the power supply meets (or preferably exceeds) the anticipated power requirement of the LED strip. While this value is typically expressed in Watts [W], some supplies may indicate the maximum load current in amperes [A] instead. Fortunately, these are related through Ohm's law (P[W] = U[V] * I[A]), where U represents the output voltage, and I denotes the maximum load current. By multiplying these two values, we can easily calculate the max output power P.

Estimating the power requirement of the strip begins with understanding its operation. LED strips are composed of numerous independent LEDs, each featuring a small integrated circuit enabling individual addressing without affecting the rest. These LEDs, also known as pixels, typically have one or more separate channels, with each channel's brightness being controllable independently. For example, the RGB strips have three channels (red, green, and blue) per LED, and adjusting the individual brightness of these channels results in color mixing (additive color model), allowing for the creation of various colors.

The power consumption of each channel depends on its brightness. For example, if each operates at 60mW at full brightness, displaying red, green, or blue on a single pixel will use 60mW, while yellow will require 120mW because both red and green need to mix. Decreasing the brightness also lowers the power consumption. Additionally, there's a quiescent power consumption by the IC, even if all channels are off. Usually, it is small (~25mW) per pixel, but it's worth considering with large installations.

Estimating the required power depends on the specific use case. It's often prudent to estimate the worst-case scenario, which offers the safest and most flexible option. The datasheet usually states the power consumption in milliwatts [mW], but sometimes it can state current consumption [mA] instead, so it needs to be converted into power. For example, the datasheet for WS2815 states a current consumption of 15mA per LED, and since we know it operates on 12V, the power consumption will be 12[V] * 15[mA] = 180mW. Once the required power per pixel is determined, it needs to be multiplied by the number of LEDs on the strip. For instance, if it's a 5-meter strip with 30 LEDs/m, then there are 5[m] * 30[LEDs/m] = 150 LEDs. So, if we want to turn all the LEDs white at maximum brightness, the total current consumption would be 150[LEDs] * 180[mW] = 27W. Hence, a suitable power supply in this case would be rated at least 30W (12V 2.5A).

There are specific applications where designing for the worst-case scenario is impractical due to space/cost constraints. However, this is acceptable if planned from the outset, ensuring that the design is such that the worst-case scenario will never be achieved. This could involve animating the pixels so that they are never all active simultaneously or sweeping different colors at different brightness levels.

While this is the theoretical approach, in reality, it's a contentious topic, with plenty of information available online. Some people even use 0.3W (60mA at 5V) per LED as a rule of thumb, despite evidence showing that estimates from datasheets are often conservative, and such numbers may never be reached in practice. However, it's always good to be on the safe side, and it's even better to verify calculations with real-life measurements.

It's good to understand the underlying principles, but for actual calculations, there are online tools that can be really helpful. You can find one here.

3. Connection

The first step is to determine the maximum current the system will draw. Take the power consumption calculated from the previous step and divide it by the voltage. For example, a 30W 5V will be 6A, while 30W 12V is 2.5A. Depending on the maximum current, there are two recommended ways to connect the module.

Less than 3A

The JST SM connector used in addressable LED strips is officially rated for a maximum of 3A, establishing the safe operating range for this type of connection. The on-board resettable fuse (PPTC) is rated for continuous 5A and trips at 10A, providing a buffer that allows short transient peaks above 3A while still protecting against larger failures, such as a short circuit on the strip side. Use this option only if the continuous current draw is less than 3A.

More than 3A

For installation requiring currents larger than 3A, it is recommended to branch out the power lines (VDD, GND) before the module and connect them directly to the LED strip. Simultaneously, disconnect the two power lines between the LedBox output and the strip, leaving only the signal line. This forces the current to take the external path. However, this approach requires careful consideration of different parameters such as the cross-sectional area of the power cable, length, etc. Also, there is an automatic-brightness limiter in WLED UI settings, which needs to be turned off to achieve maximum brightness.

When using long strips, you may encounter a color shift towards the end due to voltage drop caused by the strip's resistance.

This issue can be resolved by injecting power to the strip repeatedly every few meters. Additionally, it's important to note that 5V strips are more susceptible to this issue than 12V versions, requiring shorter segment lengths between injection points. Therefore, using a 12V strip like WS2815 is preferred.

It's crucial to be cautious when working with large currents, so make sure you know and understand what you are doing. This guide serves a general informational purpose and should not be construed as a direct instructional manual. Therefore, I take no responsibility for the use or application of the information provided.

Temperature measurements of the module and JST SM cable at sustained currents of 3A, 4A, and 5A.

Firmware

The module is based on ESP32-S3, so you can write your own firmware and program it as any other dev kit. However, for maximum functionality, it is recommend to run it with WLED MoonModules, which is a well-maintained, supercharged version of WLED, including a lot of additional features.

To ensure you can use all the features available on LedBox V3, a custom firmware build is compiled, containing all pin definitions and enabled functions like sound-reactivity, and IR remote support, so no additional setup is required upon installing.

Purchased modules come flashed and work out of the box. However, there might be situations in which you want to re-upload the firmware (e.g. when updating to a newer version).

There are two ways to flash the firmware:

Over-the-air (OTA) update

To perform the OTA update, simply navigate to Config > Security & Updates > Manual OTA Update, and upload the desired .bin file.

The latest firmware binaries are available at https://github.com/stanleyondrus/LedBoxV3

Through USB-C

This method is useful if the device is bricked (not responding), or if you are flashing an empty ESP32-S3. Note that this process overwrites all sectors of the flash memory, so you will lose all custom settings and presets you might potentially have created through the WLED UI.

The whole process can be easily done directly from your browser at https://stanleyprojects.com/projects/ledbox_v3/install/

3D model


Firmware
Releases Web installer
Design
GitHub
Buy now