LG TV

Work in progress to make a 2011 LG TV a bit less annoying. Turn off the bloat and make it more useful, using a Raspberry Pi in the house rather than anything inside the TV.

The custom app store on the TV: a dark list of apps with icons, Installed labels and Install or Update buttons, with the current row highlighted
The custom app store: a catalogue from the Pi, installed straight to the TV.
Four screensaver scenes over dark metal backgrounds: a clock, a line of text, a framed picture and a full-screen video
The scenes the Chromecast can show: clock, text, picture and video.
Four brushed-metal backgrounds in steel, bronze, slate and gunmetal, each with a clock over it
The four backgrounds behind the screensaver.

Why

It is a perfectly good 1080p panel with a smart-TV platform that LG shut down years ago. Its Home screens are slow and mostly dead, and the set nags. A Chromecast already handles the media, so I did not want a newer smart TV, just a calmer and more useful one.

What works so far

The phone remote: IN-START and EZ-ADJUST buttons, input, home and volume keys, an arrow pad and a touchpad area
The phone remote: keys and a touchpad that moves the TV's own pointer.
The Saver view: a Video or Image switch and a gallery of abstract images with Show now and Use on boot buttons
Choosing the screensaver and uploading images from the phone.
The Files view: a text editor holding a short notes file, with Save to TV and Cancel buttons
Editing a file on the TV from the phone.
The Chromecast screensaver control page: status pills, start and stop buttons, screensaver and background choices, timing and an event log
The Chromecast screensaver control page.

Next

Getting a serial console on the TV's debug port, which is the only route to replacing the Home dashboard with the plain setup menu. The parts are on order.

Under the hood

Reverse engineering of my own TV. Apart from reversible service-menu settings, the TV is unmodified. Screenshots use invented data and generated placeholder images; the app store is the real app running in an emulator with a made-up catalogue.