Skip to content

Installation instructions and settings for PicCap (hyperion-webos) and HyperHDR/Hyperion

Notifications You must be signed in to change notification settings

satgit62/How-to-Install-and-set-up-Ambilight-on-LG-webOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

How-to-Install-and-set-up-Ambilight-on-LG-webOS

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.

Attention!

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.

Homebrew Channel settings:

  1. switch off unprotected and vulnerable Telnet.
  2. switch on SSH. (Username for this = root and password = alpine)
  3. switch on Block System Updates
  4. switch off failsafe mode
  5. reboot system to apply (perform reboot)
  6. Homebrew Channel Settings

PicCap

Install PicCap from Homebrew Channel and restart.

Manual installation of apps without Homebrew Channel.

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) 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.

webOS Device Manager Connection Mode

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).

PicCap-log

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 absolutely need 360x180.

The most common resolutions for PicCap are:

128x72
160x90
192x108
256x144
360x180

Note! If you have a device with low CPU/memory performance, 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 disable the 'Graphical Capture Backend' to reduce delay and save device resources.

PicCap Einstellungen 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.

CPU and Memory load

Advanced Settings

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.

PicCap advanced settings

By switching on the "QUIRK_DILE_VT_DUMP_LOCATION_2" options, the delay of the LEDs is also reduced to a minimum.

NOTE:

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.

Quick Media Switching1

Quick Media Switching

HyperHDR/Hyperion.NG

HyperHDR is a fork of Hyperion. To realize Ambilight on LG TVs, you need either Hyperion.NG or HyperHDR in addition to PicCap. Both Hyperion versions are similar in structure and operation, and each has its own special functions. 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 attach importance to HDR content, you should use HyperHDR. For LED controllers with WLED firmware on ESP32, you can use Hyperion.NG. Hyperion.NG has the advantage over Hyperion.HDR because it supports more controllers and can also control all Smart RGB luminaires/lamp registered in Home Assistant. Both solutions support most common RGB/W LEDs. However, since there are also exotic RGB lighting, you can find out more in advance on the GitHub page.

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. Since HyperHDR is a fork of Hyperion and has a similar structure, I will use HyperHDR for the examples here. Please use either HyperHDR or Hyperion.NG.

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.

HyperHDR Web Configuration

HyperHDR LED Controller type settings for ESP32 controller with “WLED” firmware:

First go to LED hardware and make the settings under LED controller.

Controller udpraw Protocol for WLED

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.

udp raw

Controller Type wled

The controller type: wled also has an autodiscover function when you set the first time.

Controller type WLED

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.

adalight-controller

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.

White channel calibration RGBW only

Controller Type Home Assistant Hyperion.NG

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.

LED-Controller HA

LED-Controller Home Assistant

https://github.com/satgit62/hyperion.ng-webos-loader

Controller Type Home Assistant HyperHDR

HyperHDR Home Assistant1

HyperHDR-Home Assistant1

For the Home Assistant settings, follow the instructions on GitHub: awawa-dev/HyperHDR#1014

https://github.com/satgit62/hyperhdr-webos-loader/releases/tag/latest

Controller Type Philips Hue

Philips Hue configuration see also:

HyperHDR awawa-dev/HyperHDR#512

Hyperion https://docs.hyperion-project.org/de/user/leddevices/network/philipshue.html

Other LED Controllers

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

Kompatibler HyperSerialPico-Controller: awawa-dev/HyperHDR#561 Kompatibler WLED-Controller: https://kno.wled.ge/basics/compatible-controllers/

LED Layout

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.

HyperHDR Classic Layout

Layout advanced Settings

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)

Layout Advanced Settings

  • Specify whether there are gaps in the corners (Edge Gap/ Missing LEDs)

Layout Advanced Settings Edge Gap

  • Specify whether the LED strip overlaps in the corners (Overlap)

Layout Advanced Settings 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)

Layout Advanced Settings Point

The actual position of the LEDs is determined by these layout specifications.

Effects

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.

Effects

The next step is only important for HyperHDR users! (This function is not available in Hyperion.NG)

HDR to SDR tone mapping

For the correct HDR global detection function, the “HDR to SDR tone mapping” option must be activated under Network Services, Flatbuffer Server.

HDR to SDR tone mapping

Image Processing

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.

HyperHDR Classic HyperHDR calibration

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.

Color channel adjustments No Classic HyperHDR calibration

Live Calibration

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.

HyperHDR Live calibration

Smoothing

To avoid flickering and unsteadiness in LEDs, the next step is to activate and save “smoothing” under Image processing.

HyperHDR Smoothing

LED Visualization:

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.

HyperHDR LED Visualization

Remote Control

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.

HyperHDR: HyperHDR Remote Control

Hyperion.NG: Remote Control Hyperion

Logs

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:

HyperSerialPico

LG USB Debug dmesg Log:

webos Manager Debug dmesg

WLED Log:

WLED Logs

General Settings

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.

General settings

Important note when using WLED/ESP32 Controller

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.

WLED Automatic brightness limiter

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.

WLED default 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.

WLED Withe Balance

Important note if you are using the ESP32 WiFi Controller and the connection is interrupted

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.

WI-FI

Quinled-dig-uno-v3-digital-led-controller

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.

quinled-dig-uno-v3-digital-led-controller UNO V3

QuinLED Dig Uno v3 DIGITAL LED controller

ABC! WLED Controller Board+Ethernet_Adapter

ABC! WLED Controller Board+Ethernet_Adapter

ABC! WLED Controller ESP32:

ABC! WLED Controller V41 ESP32

Cod.m Controller:

cod m Controller

Level Shifter

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.2 volts, the direct DATA line should be connected via a level shifter. For testing purposes, you can temporarily install a 470 Ohm resistor on the DATA line and a 1000µF electrolytic capacitor on the 5 Volt+ and GND at the input of the LEDs.

level shifter1

Example Connection of various LED controllers

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.

  1. 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.

  1. 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.

Adafruit ItsyBitsy RP2040 with level shifter using GPIO14(OUTPUT_DATA_PIN) on output 5.

For devices larger than 65 inch televisions, a third power injection for the LEDs in the center is required.

Ambilight Adafruit ItsyBitsy

ItsyBitsy RP2040

PLASMA 2040 mit Level Shifter

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.

Plasma2040

RP2040 Adalight Feather Scorpio mit Level Shifter Ausgang GPIO 16.

For devices larger than 65 inch televisions, a third power injection for the LEDs in the center is required.

Adafruit Feather RP2040 Scorpio1

LED 4 Seitige Aufbau HyperSerialPico Adafruit Feather Scorpio Pinout

ESP 8266 Wemos D1 Mini with level shifter:

Level Shifter

ESP32 with level shifter:

ESP32 S2 Mini Lolin

WLED+Netztteil und Level Shifter

RP2040 LED-Controller:

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

ESP32 Self-built WLED controller with LAN interface (WT32-ETH01) and level shifter:

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. wt32prog

ESP32 LAN WTH0

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

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".

WiFi Setup

Power Supply

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.

Mean Well LRS-100-5-0

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’.

Alitov Netzteil

LEDs

The SK6812RGBW LEDs have an additional white channel and are currently the better alternative to the WS2812B. 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.

SK6812RGBW

18 AWG 0.75 mm² or 16 AWG 1.27 mm² silicone wire is recommended for the power connection and the connection of the LED strips/segments.

Silikon Kabel

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.

LED Corner

Note

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/.

Power Calculater

Important note!

PicCap (webos-hyperion) UPDATE vom 29.01.2025:

Version 0.5.0 von PicCap mit der neuen Backends und NV12 ist offiziell im Homebrew Channel veröffentlicht worden. 😃

https://github.com/TBSniller/piccap/releases/download/0.5.0/org.webosbrew.piccap_0.5.0_all.ipk

NOTE

For those who are always not satisfied with the colour rendering of their LEDs, the ultimate colour matching should be done using different LUT's for SDR, HDR and Dolby Vision. See: https://github.com/satgit62/Ultimate-HyperHDR-Ambilight-fine-tuning-experience-for-LG-webOS-with-new-LUT-calibration-

About

Installation instructions and settings for PicCap (hyperion-webos) and HyperHDR/Hyperion

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published