Статья

DIY адаптивная подсветка для LG Smart TV (WebOS)

Снова Ambilight?

На портале уже есть несколько статей на тему самодельного Ambilight для ТВ, но данная реализация для телевизоров LG на платформе webOS отличается тем, что в системе не используются внешние устройства для захвата изображения – сплиттеры, грабберы и прочие веб-камеры. Подсветка работает с видео-контентом независимо от источника – YouTube, сетевые стриминговые сервисы, IPTV, HDMI, эфирное ТВ и т.п.

Эта статья - описание личного опыта с телевизором LG OLED65CX (2020) на webOS 5, на других моделях что-то из описанных решений может быть неприменимо или потребует модификации.

Hardware

  • Самоклеящаяся LED лента SK9822 - $36.57 за 5 метров

    Первым делом нужно прикинуть, сколько светодиодной ленты потребуется – померить внешний периметр телевизора. В моем случае, для 65-дюймового ТВ, нужно около 4.5 метров ленты. Мой выбор пал на SK9822 черного цвета с количеством светодиодов 60 на метр и степенью защиты IP30 (без силиконовой защиты).

  • Блок питания 5V 20A 100W - $14.00

    В моей конфигурации получилось всего 264 LED. Потребление каждого светодиода до 0,3 Вт. Соответственно, нужен блок питания мощностью не менее 80W. Этот БП был без вилки, подсоединил имеющийся шнур с вилкой и выключателем.

  • Banana Pi M2 Zero WiFi - $22.00

    Одноплатный микрокомпьютер используется в качестве сервера для Hyperion и контроллера для ленты. Выбрал BPi исключительно исходя из низкой цены и наличия в моём городе. Если у вас уже есть нечто подобное (Raspberry Pi, Orange Pi и т.п.), то можно использовать. Также взял внешнюю Wi-Fi антенну ($0.60), так как на плате BPi нет встроенной антенны, но есть IPEX разъем. На плате также есть пины для Ethernet, можно при необходимости припаять разъем RJ45.

  • Карта памяти microSD

    Карточка на 32 ГБ имелась в наличии, осталась от старого смартфона. Хватило бы и 8 ГБ.

  • Коннекторы и провода

    Я предпочел припаять коннекторы на проводах ($1.70 за 5 пар) к концам участков ленты, но можно всё соединить и без пайки, купив специальные угловые коннекторы на защелках. Для подключения проводов питания использовал колодку DF-62 ($1.31).

  • Прочее

    Я решил, что не буду клеить ленту непосредственно на ТВ, а буду делать подсветку съёмной. Для этого я купил в строительном магазине три алюминиевых планки 15мм х 2мм x 2000мм ($2/шт), которые будут служить жестким профилем для светодиодной ленты, а также метр самоклеящейся "ленты-липучки" Velcro ($1) для быстросъемного крепления профиля и других элементов к задней поверхности ТВ.

Монтаж

Электрические соединения

К концам ленты штатно уже припаяны разъемы и провода питания, использовал их для подключения. Питание подал на оба конца ленты. К общей земле подключил проводом 6-ой пин BPi. Контакт CI и DI начала ленты подключил, соответственно, к пинам 23 и 19. Для этого использовал запасную ответную часть разъёма, которая была в комплекте ленты. Запитать BPi можно от блока питания, но я предпочел питать через micro USB разъем от USB порта телевизора – таким образом BPi включается и выключается вместе с ТВ.

Software

Нам потребуется сервер Hyperion для BPi и PicCap для webOS. На момент написания, PicCap – самая "сырая" часть системы, разработчики продолжают над ним работать для обеспечения стабильности и работоспособности на разных версиях webOS. Рекомендую до покупки оборудования убедиться, что софт работоспособен на вашем ТВ. Ниже описание процесса для моего железа.

Установка Hyperion

  • Для BPi скачиваем образ Raspbian и записываем его на microSD флешку с помощью Win32 Disk Imager

  • В корне флешки создаем файл wpa_supplicant.conf следующего содержания с данными своей 2.4 Ghz wi-fi сети:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=BY network={ ssid="ssid_wifi_сети" psk="пароль_wifi_сети" key_mgmt=WPA-PSK }

Вставляем флешку в BPi и подключаем питание – одноплатник подключится к сети и будет доступен по SSH (IP адрес смотрим в панели управления роутера), пользователь pi, пароль bananapi Устанавливаем Hyperion по инструкции с сайта проектаПерезагружаемся и проверяем – веб-интерфейс Hyperion доступен по http://ip_bpi:8090, где ip_bpi – IP-адрес одноплатника

Установка PicCap

PicCap – приложение для webOS, которое захватывает изображения с видео слоя и пересылает их на flat buffer сервера Hyperion по сети. Hyperion анализирует изображения и "расцвечивает" соответствующие светодиоды. Работа PicCap протестирована мной на webOS 4.x и 5.х. Для других версий требуется подтверждение, но стоит оговориться, что для старых телевизоров на webOS 1.x-2.x скорее всего ничего не выйдет, во всяком случае с версией PicCap, существующей на момент написания статьи. Для установки и работы приложения потребуется рут доступ к ОС телевизора.

Внимание! Получение и использование рут не является официально одобренной производителем процедурой, вы несете ответственность за последствия, будь то возможный отказ в гарантийном обслуживании или "окирпичивание" девайса в результате неумелых действий под рутом.

Получить рут на webOS 3.x-6.x можно с помощью сервиса rootmy.tv, при необходимости понизив версию прошивки телевизора, так как с определенных версий возможность получить рут данным способом прикрыта. После успешного окончания процедуры, в меню приложений появится приложение Homebrew Channel (hbc), из которого устанавливаются другие неофициальные приложения, в том числе PicCap. Устанавливаем его. Перед первым запуском PicCap, нужно разрешить приложениям обращаться к службе hbc, сделав её публичной. Для этого соединяемся с телевизором беспарольно по telnet или по ssh (включается в настройках hbc, вход по root/alpine) и правим нужный файл следующей командой:

sed -i 's/org.webosbrew.hbchannel.service.group/public/g' /var/luna-service2-dev/api-permissions.d/org.webosbrew.hbchannel.service.api.json; reboot

После перезагрузки запускаем PicCap и дожидаемся пока приложение попросит перезагрузить систему. Перезагружаем командой reboot в telnet/ssh консоли либо кнопкой перезагрузки в настройках hbc, либо отключением от сети питания. Выключить и включить кнопкой пульта недостаточно, так как может быть активен режим "Быстрая загрузка", а это, по сути, режим гибернации и полная перезагрузка системы не произойдет.

Настройки

Открываем веб-интерфейс Hyperion и первым делом переключаем уровень настроек на Expert. Для этого нажимаем иконку гаечного ключа в верхней панели.

На вкладке LED Controller выбираем:

Тип контроллера "SK9822"SPI device "0.0 (/dev/spidevice0.0)" – для BPi не понадобилось отдельно включать SPI интерфейс на устройстве, для Raspberry это может потребоваться. Hardware LED count "264" – общее количество светодиодов.RGB byte order "BGR" – для этой ленты обратный порядок, если не указать BGR, то вместо красного будет светить синий и наоборот.Остальные пункты не трогаем.

Запускаем Piccap:вводим IP сервера Hyperion, порт буфера 19400 по умолчаниюактивируем автозапуск приложенияразрешение захвата – для лучшего быстродействия достаточно небольшого разрешения картинки, я использую 172 x 94Max FPS не трогаем, эта настройка не работает в текущей версиивыбираем библиотеку, используемую для захвата – libvtcapture для webOS 5.x-6.x, libvt для webos 4.xслои захвата для libvtcapture – выбрать для захвата только видео (рекомендуется) или добавить слой элементов интерфейса

Нажимаем Save и Start - захват и передача изображений начнется после небольшой паузы. Проверить работу можно в веб-интерфейсе Hyperion - если все хорошо, то воспроизводимое видео будет отображаться в лайв-превью.

Настройка окончена, подключаем питание ленты, включаем видео и наслаждаемся просмотром!

Результаты

Вот так это все работает:

Благодарности

Сообществу openlgtv за разработки webOS Brew, в частности TBSniller за идею и разработку приложения PicCap и мануал, с которого я начал изучение этой темы.


Спасибо за обзор! Подскажите, есть ли обработка черных полос снизу и сверху для широкоформатных фильмов?

Да, в Hyperion есть настройки для этого

Класс!👍🏻 Hyperion все еще жив😅💪🏻🔥

Ух ты! Тоже LG и как раз думал поискать что-то подобное.

Спасибо! 👍🏼

А после получения рута на телике апдейты производителя больше прилетать не будут же?

Какие вообще плюсы-минусы рута на ТВ? Приобретаем свободу в плане софта. А теряем что?

Апдейты нужно заблокировать, чтобы рут не слетел. Возможно, кто-то придумает как получить рут и на свежих прошивках. На старых (до 2020 года) телевизорах особо ничего не теряем - апдейты там в основном для латания дыр. Из плюсов рута возможность ставить сторонние приложения, назначать их на автозапуск - у меня вместо штатной ТВ программы стартует IPTV приложение, прямо в тв работает торрент сервер для просмотра на лету без скачивания, ютуб без рекламы, эмулятор олдскульных консольных игр. 

Подскажите пожалуйста, что за IPTV приложение используется и что за торрент сервер? Как заменить дефолтное приложение? Есть инструкции как установить? гуглеж ничего не дал, кроме ютьюба без рекламы и эмулятора ретроигр, их нашел=)

Автор, огромная просьба к вам! 


Как вы думаете, если удастся таки получить root на телевизоре с webos 2.2.4,  есть вероятность, что будет работать Piccap?

У меня то все остальное есть, и pi3 и лента. 


В основном YouTube смотрим и очень хотелось бы ambilight для него получить. 😀

не знаю, нужно смотреть есть ли в системе библиотека libvt 

у меня был старый ТВ на 1.4 - там не было



Спасибо за подробную инструкцию.


Получается wifi постоянно забит стримингом с телевизора?


На бабане есть ethernet, не распаянный, что бы не паять большие разъемы, я у себя сразу витуху впаял. Не люблю wifi.


https://sprut.ai/static/media/cache/00/94/60/5/11015510/84141/1000x_image.jpg?1639370718" alt="1000x_image.jpg?1639370718" />

Забит это громко сказано, разрешение совсем небольшое. Ethernet разъем себе тоже подпаял на всякий случай.

в оригинале эмбилайт только по 3ем сторонам, снизу нет светодиодов
+есть подстройка по цвету стены

В Hyperion тоже можно откалибровать цвета

Хорошее решение если нужно грабить сигнал с цифрового телевидения, у кого iptv проще на андройд приставке эмбилайт поставить с приложением AAA, без лишних коробочек, правда есть ограничение на фильмы с 4к разрешением. Сам пробовал собирать на orange pi pc plus 1gb ram, крутил все это через hyperhdr дикие задержки идут, так и не понял в чем причина, видимо граббер плохой был. 

Для меня андроид приставка и есть лишняя коробочка. Смарт тв хватает для всего, что мне требуется от телевизора.

Руки зачесались, но тоже не охото разводить зоопарк устройств. Уже есть pi4 с hassio, home assistant из коробки поддерживает интеграцию с hyperion'ом, но сам сервис hyperion'а попрежнему нужно где-то поднимать. Можно но ли его поднять в контейнере на hassio? официального образа не нашел, но есть много кастомных

Не подскажу. 
Есть вероятность, что у энтузиастов получится собрать Hyperion непосредственно для webos, тогда из внешних устройств нужен будет только дешёвый wled контроллер для ленты.

Круто, я и не знал что на теликах рут есть. А Kodi можно поставить?

Насколько мне известно, не существует kodi для webOS

После получения рут прав, телек отвалился от HA. Теперь при попытке включить/выключить его из НА возникают проблемы. Статус тоже не отображается. Родная интеграция в НК работает корректно. Для интеграции в НА использовал классику "webostv" с указанием IP + кастомное имя. 

Есть идеи как вернуть хотя бы отображение статуса в НА? =)

У меня как раз такой же телевизор. И меня останавливала от реализации только невозможность включать подсветку от любого источника сигнала (у меня 3: Xbox, Apple TV, pc). По итогам реализации проекта может быть возникли мысли, что можно было бы сделать лучше/удобнее?   как все за тв расположили? Корпус для banana pi какой-то покупали?


+ хочу паять по минимуму)). Вот такие коннекторы будут удобны?https://a.aliexpress.com/_AAEzh8">https://a.aliexpress.com/_AAEz...

Похоже что для DRM контента не всё однозначно. Так на webos 4 работает захват в приложении эпл тв для webos, а вот на webos 5 был отзыв, что нет (сам не пользуюсь, не могу утверждать). Разработчики сейчас работают над универсальной либой захвата для piccap. Посмотрим что получится.
Корпус купил для rpi zero w, но он не подошёл по глубине - у бананы обратная сторона платы не такая плоская, есть выступающие элементы. Нужно доработать его немного, но руки не доходили, пока что закреплено всё той же липучкой. Блок питания просто лежит на задней части подставки, скрыт от глаз. Если бы тв висел на стене, то думал бы как закрепить. 


По коннекторам думаю удобно вполне, главное чтобы по ширине лента подходила и не нужно было подрезать ничего.


Вернуться назад
Вернуться назад