Installation instructions and settings for PicCap (hyperion-webos) and HyperHDR/Hyperion
The prerequisite for Ambilight is an LG TV device that has been successfully rooted and the Homebrew Channel installed. You can find out whether your device can be rooted at https://cani.rootmy.tv/ by entering your LG model type.
On newer TVs there is no official way for capturing DRM-protected content like from Netflix or Amazon. This restriction doesn't take place for content comming from an HDMI input. So currently as a workaround you can play your media using your PC, Apple TV, FireTV-Stick or Chromecast and still enjoy your LEDs (Ambilight). On my old webOS 3.9 and 4.x it also works via internal apps.
After a successful rooting with one of the known methods (faultmanager-autoroot, DejaVuln or mvpd-autoroot) PicCap (hyperion-webos) and the mostly used HyperHDR or Hyperion, LEDs control/processing software from Homebrew Channel must be installed and configured.
Note: The settings for Hyperion.NG users are similar to HyperHDR, with the difference that there is no “HDR to SDR tone mapping” in Hyperion. To achieve some functions in contrast to HyperHDR, the setting level in Hyperion must be set to Expert.
- switch off unprotected and vulnerable Telnet.
- switch on SSH. (Username for this = root and password = alpine)
- switch on Block System Updates
- switch off failsafe mode
- reboot system to apply (perform reboot)

To set up Ambilight on your rooted LG TV, you will need PicCap, HyperHDR, or Hyperion.NG, as well as LEDs, a power supply for the LEDs, and an LED controller. You can purchase a ready-made LED controller with pre-installed WLED firmware (either WLAN or LAN) or build your own. In the hardware section, there is a selection of ready-made LED controllers.
I recommend an LED controller with HyperSerialPico firmware on an RP2040 with an integrated level shifter, or HyperSerial firmware on an ESP32/S2 mini. However, you will have to build this alternative yourself. See the Hardware section. The RP2040 with HyperSerialPico firmware is a reliable LED controller for transmitting and displaying data and colors. Its high-speed serial controller achieves a baud rate of 5,000,000 via LG's USB port, ensuring there are no transmission errors or timeouts.
You should also consider the ESP32 S2 Mini (CDC: 5 MB/s) with HyperSerial. Like the RP2040, it connects via the USB port and does not require a special kernel driver on the LG. The ESP32 MH-ET Live (CP2104 or CH9102x: 4 Mbps) also works with HyperSerial; however, the appropriate kernel driver must be installed. Therefore, make sure there is a driver for your device. See https://github.com/throwaway96/webos-kernel-drivers.
Install PicCap from Homebrew Channel and restart.
As an alternative to the direct installation from Homebrew Channels, the webOS Device Manager from GitHub can also be used for the installation. See: https://github.com/webosbrew/dev-manager-desktop Important! Under Add Device Connection Mode, select Use SSH Server by Homebrew Channel. (IP address of your LG television, port = 22, Username for this = root and password = alpine) Not to be confused with the developer mode app. Please do not install a developer mode app on a rooted device.
Alternatively, you can install packages (.ipk) via SSH installation:
curl -k -L -o /tmp/app.ipk '<URL goes here>'
luna-send-pub -w 15000 -i 'luna://com.webos.appInstallService/dev/install' '{"id":"com.ares.defaultName","ipkUrl":"/tmp/app.ipk","subscribe":true}'
Note: The download link of the .ipk replaces the <URL goes here>.
After the restart, open PicCap and go directly to the Logs menu and wait until the service has been given root rights (Elevated Services).
Usually, after a restart PicCap sets itself to the automatic default settings. These are, among others, the IP address of HyperHDR/Hyperion, internal host is default 127.0.0.1 and port 19400, Hyperion priority 150, the resolution, maximum FPS, video capture backend, graphical capture backend as well as the autostart and VSync.
Note: Depending on the webOS version, the video and graphical backend is different and should be set correctly instead of automatically if required. See: https://github.com/webosbrew/hyperion-webos#hyperion-webos.
You have to test for yourself which resolution your device harmonises with PicCap.
Attention! Some devices require a minimum resolution of 360x180 in the PicCap settings in order to capture the screen.
The best solution is to divide the highest resolution of 3840x2160. Dividing 3840x2160 by 10 gives 384x216. A resolution divided by 15, e.g. 256x144, should also work, as should a division by 20, e.g. 192x108. Below this resolution, it becomes critical due to noise in the preview image. This also affects the color reproduction. Unfortunately, some devices/WebOS combinations only work with certain resolutions.
The most common resolutions for PicCap are:
384x216
360x180
256x144
192x108
160x90
128x72
Do not enable the NV12 option in the standard version of HyperHDR from the Homebrew Channel.
Please note that additional steps are required to use the NV12 option.
The 50 MB flat_lut_lin_tables.3d LUT from /media/developer/apps/usr/palm/services/org.webosbrew.hyperhdr.loader.service/hyperhdr/ has an invalid size to work with NV12 and must be deleted.
For best results, you will also need different LUT files for different video content (SDR, HDR and Dolby Vision).
If you have a device with low CPU/memory power, I recommend using a lower resolution (256 × 144) at 30 fps instead of 60 fps and reducing the Hyperion priority from 150 to 100 if the device allows it. You can also deactivate the ‘Graphical Capture Backend’ to reduce the delay and save device resources. Positive effect: You can achieve more FPS if you deactivate UI Capture. Compare the images.
If everything is configured correctly and the connection to HyperHDR/Hyperion is established, you will see the following in the bottom bar under “State: Getting status info. I Receiver:Connected” with the respective UI and video backend as well as the selected frame rate.
You can use the “top” command in Terminal/SSH to see what memory and CPU load “hyperion-webos” and “hyperhdr” are using.
Depending on which backend your TV model uses for recording, you must set the correct QUIRK option. See: https://github.com/webosbrew/hyperion-webos#quirks.
By switching on the "QUIRK_DILE_VT_DUMP_LOCATION_2" options, the delay of the LEDs is also reduced to a minimum.
For newer devices with the "QUIRK_DILE_VT_DUMP_LOCATION_2" option switched on (e.g. C3, G3 and newer), make sure that the Quick Media Switching option under Settings --> General --> External devices --> HDMI settings is switched off. Otherwise, the LEDs will be faster than the picture when the media is running via HDMI players. This was noted and reported by user @Meg_the_Face.
As LG's “AI Picture Pro”, “AI Brightness”, “AI Genre Selection” and "AI Image Game Optimizer", "AI Game Sound" option use the same recording process as hyperion-webos, there may be dropouts during recording. As a result, no live preview in HyperHDR is possible for a short time and the LEDs also switch off briefly. The solution is to disable these options. (can be found under Settings > General > AI Service). This bug was discovered by Discord user @James Sunderland. See:webosbrew/hyperion-webos#137
HyperHDR is an open-source implementation of ambient lighting for television and music devices that is based on the analysis of video and audio streams and has a similar structure to Hyperion.NG. To realize Ambilight on LG TVs, you need either Hyperion.NG or HyperHDR in addition to PicCap. Both versions of Hyperion are similar in structure and operation, and each has its own special features. And as always, there are advantages and disadvantages. It also depends on which LED controller you want to use.
If you want to use LED controllers such as HyperSerial, HyperSerialPico on RP2040 or HyperSerial with WLED on ESP32, and you value HDR content, you should use HyperHDR. For LED controllers with WLED firmware on ESP8266/ESP32, you can use Hyperion.NG. Both solutions support the most common RGB/W LEDs. However, as there are also exotic RGB illuminations, you can find out more on the GitHub page.
Both HyperHDR and Hyperion.NG currently support the NV12 video format and direct processing of YUV colour spaces. (YUV colour spaces offer more efficient encoding and reduce bandwidth more than RGB capture). HyperHDR uses LUT tables that can be calibrated for different video content such as SDR, HDR and Dolby Vision to achieve fine-grained colour reproduction. Hyperion.NG uses its own algorithm and does not require external LUT tables, but calculates an average value that should be suitable for all content.
HyperHDR: https://github.com/awawa-dev/HyperHDR Hyperion.NG: https://github.com/hyperion-project/hyperion.ng
Install and start HyperHDR or Hyperion.NG via the Homebrew Channel or using the webOS Device Manager. Switch on Autostart and start the daemon service. Reboot the TV.
If the Hyperion.NG daemon does not start or stops on devices with webOS 7 and higher, this may be due to a missing library (libcrypt). In this case, you can create a symlink to the missing library. Enter the following command in SSH/Terminal:
ln -s /usr/lib/libcrypt.so.2 /media/developer/apps/usr/palm/services/org.webosbrew.hyperion.ng.loader.service/hyperion/libcrypt.so.1
It should then look like the picture.
Since HyperHDR is a fork of Hyperion and has a similar structure, I will use HyperHDR for most of the examples here.
Some menus will only be accessible in Hyperion.NG if you set the user to Expert. This ensures that you can reach all levels of the menus.
Once the HyperHDR daemon service is successfully started, open a browser of your choice (Chrome, Mozilla Firefox or Microsoft Edge) on your PC, tablet or cell phone and access the web interface of HyperHDR or Hyperion.NG under the IP address of your TV with port 8090 (e.g. 192.168.xxx.x:8090) to make the necessary settings.
First go to LED hardware and make the settings under LED controller.
To use the WLED LED controller in HyperHDR/Hyperion.NG, a functioning installed WLED on compatible hardware is required. See WLED project:https://kno.wled.ge/ The WLED Web Installer Service at https://install.wled.me/ can be used to flash a compatible ESP32/8266 board.
Please note that depending on the ESP version used, a valid CH340 or CP210x driver may be required for flashing and under certain circumstances (use of USB HyperSerial) for LG webOS. No separate driver is required for the ESP32 S2 Mini.
CH340 Drivers for Windows, and Mac see: https://www.wemos.cc/en/latest/ch340_driver.html, and CP210x Drivers see:https://www.silabs.com/developer-tools/usb-to-uart-bridge-vcp-drivers?tab=downloads
Various kernel drivers for LG webOS can be found at:https://github.com/throwaway96/webos-kernel-drivers
You can select WLED under LED controller, but in conjunction with some ESP versions, the LEDs were not switched off when the TV was switched off. So I prefer here as controller type: udpraw, RGB byte order: RGB, update time 0, target IP: IP address of your ESP/WLED and port: 19446.
The controller type: wled also has an autodiscover function when you set the first time.
HyperHDR LED controller type settings for RP2040-USB controller with “HyperSerialPico” or “HyperSerial” ESP32 Generic/S2 Mini firmware
First, go to LED Hardware and select “adalight” under “Controller Type”. Select your RP2040 device under “Output path”. For example, ttyACM0. Select the option “High speed serial AWA protocol with data integrity check”, with a baud rate of, 2000000. In addition, “Esp8266/ESP32/Rp2040 handshake” and “Force HyperSerial detection (ignore board ProductId/VendorId)” must be selected.
It is only necessary to select the “White channel calibration (RGBW only)” option if you are using RGBW LEDs with 4 channels (SK6812RGBW). The white channel of the “Neutral RGBW” LEDs does not come close to the color obtained by mixing RGB LEDs. It is slightly yellow, so you may need to reduce the blue/white component to boost the blue channel. “Cold RGBW” LEDs are usually better balanced. So on my SK6812RGBW neutral white, I reduced the “blue/white aspect” to 180 to boost the blue channel and create a reasonable white balance.
RGB LED lamps/bulbs that are registered under Home Assistant can also be set as an instance here. To do this, a token must be created in Home Assistant and entered here. After saving, your homeassistant lamps are available here under Home. You can decide where the lamp is by using the LED position layout assistant.
For the Home Assistant settings, follow the instructions on GitHub: awawa-dev/HyperHDR#1014
The FTDI LED controller does not require any firmware or special kernel drivers and is automatically recognised by the system as an 'FTDI Serial Device Converter (ttyUSB0)'.
The FTDI-FT232H LED controller is supported by HyperHDR using the newly developed SPI_FTDI driver from @awawa-dev. Hyperion.NG also offers FTDI support from @nurikk. So you can decide for yourself which version you want to use.
Select the appropriate controller in the HyperHDR LED hardware menu under “SPI_FTDI”. An example of this is SK6812spi for RGBW LEDs. Attention, the RGB byte sequence must be set to GRB. Under SPI Path you must select your “libFTDI SPI device location”. The baud rate can be set from 3000000 to 3200000. Under White LED algorithm select the White channel calibration (RGBW only) for SK6812 RGBW LEDs. If you have SK6812RGBW CW LEDs, leave the RGB/White channel aspect at 255. When using SK6812RGBW NW LEDs, you must set the Blue channel down to 160 for white balance. The White channel limit can also be gradually reduced to 70%.
Attention! The official HyperHDR version of the Homebrew Channel does not currently support SPI_FTDI. You must therefore use a version specially adapted for webOS.
The FTDI-FT232H LED controller was implemented in Hyperion NG thanks to the support of @nurikk.
The FTDI LED controller does not require any firmware or special kernel drivers and is automatically recognised by the system as an 'FTDI Serial Device Converter (ttyUSB0)'.
Select the appropriate controller in the Hyperion.NG LED hardware menu under USB/FTDI, your LEDs accordingly, for example SK6812. Under Output path you must select your “FTDI Single RS232-HS” device. The baud rate can be set to 3200000. Under White LED algorithm, select a suitable algorithm for your LEDs, such as Neutral White, Cold White or White off. Attention, the RGB byte sequence must be set to GRB.
with the latest changes (Hue Bridge Security Update) can be found under the following download link: https://github.com/satgit62/satgit62.github.io/releases/download/v0.2.0-alpha/org.webosbrew.hyperion.ng.loader_0.2.1_all.ipk
Three-sided Ambilight for LG monitors or devices up to max 42"~48”
For those who want to use the low-cost Skydimo set, first make sure you have the necessary CH34x kernel drivers installed on your LG. Most kernel drivers and installation instructions can be found at:https://github.com/throwaway96/webos-kernel-drivers
Philips Hue configuration see also:
HyperHDR awawa-dev/HyperHDR#512
Hyperion https://docs.hyperion-project.org/de/user/leddevices/network/philipshue.html
I would like to mention at this point that there are several ESP controllers with HyperSerial drivers from awawa-dev in GitHub, which can be installed on both ESP8266 and ESP32. For details and separate settings, please see: https://github.com/awawa-dev/HyperSerialEsp8266 and https://github.com/awawa-dev/HyperSerialESP32/
Attention! There are also ESP32 with CH341 or CP210x which allow higher data rates via HyperSerial, but the kernel driver is not included in LG firmware. So you have to install it on the device first, depending on the kernel architecture. Download and instructions can be found at: https://github.com/throwaway96/webos-kernel-drivers
The ESP32 S2 Mini and the RP2040 do not require any additional kernel drivers as they are recognized by the system.
Kompatibler HyperSerialPico-Controller: awawa-dev/HyperHDR#561 Kompatibler WLED-Controller: https://kno.wled.ge/basics/compatible-controllers/
In the second step, we go to LED layout. Here you have to create the LED geometry of your TV, enter the exact number of LEDs top, bottom, left and right as well as the input position. (This is the first LED in configuration) It is also possible to create a three-sided Ambilight, or a four-sided one with a foot gap. The layout is viewed from the front. On my devices, I glued the LEDs from the front, bottom left and followed the clockwise direction so that the end of the LED stripe stopped in proximity to the beginning of the LED stripe. Thus, I could feed power to both the beginning and end of the LEDs with only a single AWG 18 silicone two-conductor wire from the power supply.
The settings are important for:
- define how deep horizontally and vertically the image content is to be scanned/considered and transferred to the LEDs. (Horizontal/Vertical LED depth)
- Specify whether there are gaps in the corners (Edge Gap/ Missing LEDs)
- Specify whether the LED strip overlaps in the corners (Overlap)
- Specify whether the LED strip has not been laid straight and parallel to each other. (Point Top Left, Point Top Right, Point Bottom Right and Point Bottom Left)
The actual position of the LEDs is determined by these layout specifications.
Further instances for additional LEDs or lamps can be configured in HyperHDR/Hyperion.NG under LED Hardware Instance Management.
These can consist of additional LED strips on ESP32/RP2040 controllers, Zigbee/Philips Hue or Skydimo LEDs/lamps. As with the main instance, each additional instance is assigned an LED controller and the area to be displayed under Layout.
Once the new instance has been created, it can be started, and you can switch to the new instance in the menu to make further settings such as LED controller, layout, color calibration, etc. See illustration.
In the next step, we turn to the menu effects (effects) and ensure that the boat effects and background effect remain switched off. Do not check the relevant boxes. Otherwise, you will have unwanted “flashing orgies” when starting the TV.
The next step is only important for HyperHDR users! (This function is not available in Hyperion.NG)
For the correct HDR global detection function, the “HDR to SDR tone mapping” option must be activated under Network Services, Flatbuffer Server.
Under image processing, you have the choice between “Classic HyperHDR calibration” and not “Classic HyperHDR calibration”. When using WLED, the “Classic HyperHDR calibration” is suitable, as the saturation can regulate the color intensity.
When using HyperSerial/HyperSerialPico, the non-“Classic HyperHDR calibration” is suitable, as you can control the brightness here. Since HyperSerial driver comes with a balanced color saturation, the missing saturation control is negligible in this case.
The color and gamma values depend on the LED stripe type used. The adjustment should be made under the “Remote Control” menu in the live calibration menu, so that the changes are noticed immediately. As the values set in Live Calibration are not permanent, you should enter the values in the Image Processing menu and save them permanently.
To avoid flickering and unsteadiness in LEDs, the next step is to activate and save “smoothing” under Image processing.
A live image captured by PicCap must be visible in the HyperHDR LED visualization menu. No image is visible when DRM content is played via internal apps such as NETFLIX. If you want to watch DRM-protected content such as NETFLIX, Disney & Co., you must use an external HDMI player such as Apple TV or FireTV, as the DRM restrictions do not apply via the TV's HDMI inputs.
Under HyperHDR/Hyperion remote control menu, you could monitor all processes and see whether data from PicCap is arriving at the HyperHDR “Flatbuffers” under source selection. Smoothing and black bar detection can also be switched on and off. Under LED device, the LEDs can be switched off and on as required.
Note: the following only applies to HyperHDR.
There you can also switch HDR Global on or off if required. However, HyperHDR recognizes when a source provides HDR content and switches HDR Global on automatically and switches it off again for SD video sources.
The automatic activation/deactivation of the HDR Global switch, provided that “HDR to SDR tone mapping” is selected under Network Services, Flatbuffer, only applies when using a single LUT table. With multiple LUTs the tone mapping must always be on.
You can view whether the LED controller has been recognized correctly under HyperHDR Logs. For the USB connection also under webOS Device Manager Debug, “dmesg”.
HyperserialPico Log:
You can manage the instances in the “LED hardware instance management” general settings menu. Use different LED hardware at the same time. Each instance runs independently of the other, which enables different LED layouts and calibration settings. This is important if, for example, you are using hardware from other manufacturers, such as Philips Hue lamps and Stripes.
Under “Import/export configuration” you can save your HyperHDR settings and restore them as required.
The log level debug can be set under the “Logging” menu.
An important note regarding the color reproduction of LEDs when using Standard HyperHDR from the Homebrew Channel:
Since only a full 150 MB LUT and an incomplete 50 MB flat LUT are installed in the standard version of HyperHDR—the latter of which is no longer supported by the developer—HyperHDR can no longer distinguish between the different video formats (SDR, HDR, and Dolby Vision). As a result, only one color palette is loaded for all video content, meaning that the LEDs do not necessarily correspond to reality.
If you are not satisfied with the color reproduction of your LEDs and are striving for perfection, you should perform a final color adjustment with different LUTs for SDR, HDR, and Dolby Vision
WLED has limited its automatic brightness limiter to 850mA in the LED standard setting for safety reasons.
If your power supply and cabling match the current requirements of your LED type and number, you must deactivate the automatic brightness limiter or adjust your power supply accordingly. Otherwise, your LEDs will have little or no luminosity. For example: Your power supply delivers max 5V 10 Ampere so you can limit to 9000 mA.
If you also want to have the maximum brightness when switching on, you must set the default brightness under LED settings. 0 = off, 255 = max. brightness.
It is also important to make further settings depending on the LED type used, RGB or RGBW. For example, when using four-channel LEDs such as SK6812 RGBW instead of three-channel RGB LEDs such as the WS2812b. In the LED settings under “White management”--> “White Balance correction”, under “Calculate white channel automatically from RGB”, select “Dual” to actually use the white channel of the LEDs.
If the connection between WLED and router is interrupted, select under WiFi Settings --> Disable WiFi sleep to prevent the ESP from switching off its WiFi. In this case, the ESP32 can consume more power, but the connection remains active.
One of the most popular and cost-effective standard solutions in the EU/Germany is the “Insanelight Wemos D1 Mini WLED RGBW” complete kit, based on a D1 Mini/node MCU-ESP8266 LED controller. The desired configuration can be created on the sales page. The set is completely pre-configured and ready for connection up to a current consumption of 10 A at 5 volts (approx. 260LEDs).
The GLEDOPTO Model No. GL-C-016WL is a fully configured LED controller based on the latest ESP32 chipset and equipped with the WLED firmware. The improved terminal blocks facilitate wiring and installation. It is designed for an input voltage of 5-24 V DC and a maximum total current of 15 A. It has both quick-connect terminals and the standardized DC socket with the dimensions 5.5 x 2.1 mm for the power supply input. Two GPIOs are available above the terminal strip for controlling data and clock. V+ and V-(GND) are used to supply power to the LEDs. This means that one LED strip (1 segment) and a second LED strip can be used as a second segment with just one data line, as is the case with the SK6812RGBW or WS2812B models. In addition, LED strips that require both data and CLK can also be used, for example APA120. If required, the built-in microphone synchronizes the lights with the music rhythm, creating an impressive audio-video experience. The exposed USB type C UART interface has been improved, making it easier to carry out firmware updates. Suitable power supply units and accessories can be found below.
Wiring diagram example
Three-sided Ambilight for LG monitors or devices up to max 42"~48”
As the current limit of USB 3 on LG is limited to 0.9A and the Skydimo has no power supply of its own, make sure it is connected via a USB hub with its own power supply and high output power (e.g. 2.4A per port) and powered from two ports via a USB 3.0 Y-cable for USB devices with high power consumption. Otherwise, you will need to reduce the brightness considerably.
For those who prefer WLED firmware because of all the extras, but have had a bad experience over WiFi because of the long delay, then I recommend the ESP32 variant with built-in LAN connection. "QuinLED Dig Uno v3 DIGITAL LED controller", which is also available with LAN and acrylic housing. Or "ABC! WLED Controller Board V43 (5-24V)", "Ethernet Adapter for WLED Controller" and ‘Housing for WLED Boards’. The controllers are supplied with WLED. Just google: “QuinLED Dig Uno v3 DIGITAL LED controller”, which is also available with LAN and acrylic housing. Or “ABC! WLED Controller Board V43 (5-24V)", ‘Ethernet Adapter for WLED Controller’ and ‘Housing for WLED Boards’. The controllers are supplied with WLED.
For those who do not use a ready-made LED controller with a built-in level shifter, I strongly recommend integrating a level shifter into the circuit. Since most LEDs need to be supplied with 5 volts, but the logic of the controller can only handle 3.3 volts, the direct DATA line should be connected via a level shifter.
It can work, but it doesn't have to. (I always prefer a level shifter)
With a little trick (hack), a 3.3 V microcontroller without a level shifter can be used to control 5 V LEDs with a single diode and a sacrificial LED. The first LED is lowered to 4.3 V by the diode so that a signal of 4.3 V * 0.7 = 3.01 V can be used for control. The logic of this LED is 4.3 V, which is sufficient to supply the other LEDs with 5 V. Pay attention to the actual pin arrangement of your LED strips such as + 5V, GND and Data in (DI). The arrangement may vary depending on the LED strips used.
Install HyperSerialPico firmware on controller: Unzip the firmware folder. (https://github.com/awawa-dev/HyperSerialPico/releases/) Take the appropriate file for your LED strip and transfer it to the controller in DFU mode.
- Put your Pico board into DFU mode:
If your Pico board has only one button (boot) then press & hold it and connect the board to the USB port. Then you can release the button. If your Pico board has two buttons, connect it to the USB port. Then press & hold boot and reset buttons, then release reset and next release boot button.
- In the system file explorer you should find new drive (e.g. called RPI-RP2 drive) exposed by the Pico board. Drag & drop (or copy) the selected firmware to this drive. The Pico will reset automaticly after the upload and after few seconds it will be ready to use by HyperHDR as a serial port device using Adalight driver.
For devices larger than 65 inch televisions, a third power injection for the LEDs in the center is required.
If you use SK6812 with only one segment, you only need DATA. If you are using two segments, you must also use CLK. The firmware (HyperSerialPico) must be compiled correctly for this.
For ws281x/sk6812 LED strips:
Compile with set(OUTPUT_DATA_PIN 15) for data line if single LED segment is used. Output is DA connector. Compile with set(OUTPUT_DATA_PIN 14) for data line if two LED segments are used. Output is: CL (first segment) and DA (second segment) connector.
For SPI LED strips, spi1 interface must be used:
set(OUTPUT_SPI_DATA_PIN 15)
set(OUTPUT_SPI_CLOCK_PIN 14)
set(SPI_INTERFACE spi1)
Output is: CL (clock) and DA (data) connector.
For devices larger than 65 inch televisions, a third power injection for the LEDs in the center is required.
Important! For the RP2040 controller with HyperSerialPico, please look for the correct DATA line output. Depending on the type, with built-in level shifter or without, there are different GPIO assignments for DATA. The right place to go for the firmware is: https://github.com/awawa-dev/HyperSerialPico, https://github.com/awawa-dev/HyperSerialPico/releases and for the description of the compatible hardware and pin output is: awawa-dev/HyperHDR#561
If you're looking for a simple solution, check out this controller. It doesn't require any firmware or a level shifter, and it can control both RGB and RGBW LEDs. Connecting it to the LEDs is also very simple. For SK6812 RGBW and WS2812B LEDs, connect the AD1 output of the FTDI to the DATA input of the LEDs and the GND output to the -5V GND input of the LEDs. For APA102 (SPI) LEDs, connect the AD1 output of the FTDI to the data input of the LED and the AD0 output to the clock input of the LEDs. Additionally, connect the FTDI's GND output to the LEDs' -5V GND input. The controller is powered by the TV via USB. HyperHDR and FTDI communicate losslessly via the TV's USB port at a baud rate of 3,2 MB, so a network connection is not required.
To prevent unwanted flickering or flashing of the LEDs, a resistor between 47 and 470 ohms can be installed in the data line.
FTDI | SK6812RGBW/WS2812b
AD1 → DATA
FTDI | APA102
AD0 → CLK
AD1 → DATA
GND → GND (-5 Volt)
Works with both WLED and HyperSerial. Please note that a kernel driver may need to be installed on LG.
ESP32 S2 Mini (Lolin) Only HyperSerial
Works with WLED. ESP32 Models with a faster serial chip such as the CH340G and CH9102x can also be operated with HyperSerial. Please note that a kernel driver must be installed on LG for this.
Only WLED
If you prefer to buy and set up the LAN-ESP32 “WT32-ETH01” yourself, you should also bear in mind that a TTL-to-USB adapter is required for the software flashing. In addition, a level shifter should definitely be integrated to prevent the ESP from being destroyed or experiencing unwanted flashes or effects.
For the flash process, you must connect the TX from TTL to USB adapter with the RX0 from the ESP and the RX from TTL to USB adapter with the TX0 from the ESP, i.e. cross over. GND to GND. If the USB->TTL adapter offers a choice between 5V and 3.3 volts, then 5V should be selected. To start the flash with the WLED software, IO0 (next to RX0) must be connected to GND.

For the flash process with WLED, please use the online flash at: https://install.wled.me/

WLED Ethernet setup: Go to "Config" and then to "WiFi Setup". At the bottom of this page select the Ethernet type you use. (WT32-ETH01) Then click on "Save & Connect".
A good choice of power supply is the Mean Well LRS-100-5 Case 5 V/DC/0-18/90W. This is a short circuit proof switch mode power supply that will meet all requirements up to 18A. MEAN WELL 1439455 LRS-75-5 AC 85-264VAC 5V 14A power supply. This is a short circuit proof switch mode power supply that will meet all requirements up to 14A.
A 3 pin power cable with L, N and GND and a suitable plug such as an EU, UK or USA plug is required for connection.
Alternatively, you can use the closed switching power supply ‘5V Power Supply 5 Volt 15A 75W Adapter 100V~240V AC to DC Converter 5 Vdc 15 Amp Power Transformer for LED Pixel Strip Light’ ‘ALITOVE Power Supply 5V 15A Universal Adapter 5 Volt Power Supply 75W’ and the matching screw adapter ‘Female And Male DC Connectors 2.5×5.5 mm Power Plug Adapter Jacks Sockets Connector For Signal Colour LED Strip CCTV Camera’.
For quick connections, you can use “Fast Wire Connector Push-in Electrical Terminal Block Universal Splicing” or “Quick Connect terminal blocks” from WAGO or DYGO.
Since the SK6812 RGBW has an additional white channel (RGB white + white) compared to the WS2812, which only has RGB, is of course better than the WS2812, but this must be taken into account in the LED calculator.
They are available as SK6812RGBW NW (Neutral White) and SK6812RGBW CW (Cold White). When using HyperSerial and HyperSerialPico from @awawa-dev, the CW version is recommended. However, the NW version can also be used, with a small adjustment in the blue/white channel aspect. 60 LEDs per metre is the best choice. It is not worth using 144 LEDs per metre, as the response time increases with the number of LEDs, and this leads to undesirable latency. The non-waterproof IP30 version is suitable for indoor use and is more flexible when installed on the device.
For a number of up to 120 LEDs, use AWG 20 (0.519 mm2); for more than 120 LEDs, use AWG 18 (0.75 mm²) or AWG 16 (1.27 mm²) silicone wire for the power connection and for connecting the LED strips/segments.
If you do not have the possibility to solder the LED segments together with silicone wires, you can connect the LED segments using the corner connectors such as the BTF-LIGHTING 3Pin WS2812B WS2811 SK6812 Corner Connector 10mm Wide led strip right angle L.
Amefil 3 Pin CCT Extension Connector Cable Suitable for 10mm CCT COB LED Strip, This is ideal for connecting LED segments to each other, as well as for use as an end piece with a cable connector for the power supply.
For a helpful calculation of the required power supply rating, cable cross-section, fuse and other parameters depending on the number and type of LEDs, you should definitely consult https://wled-calculator.github.io/.























































































