Wednesday, January 22, 2014

Quick fix: Sony Bravia KDL-46EX402 TV Firmware Update Problem

Note: The problem and solution(s) described in this article are related to the Sony Bravia KDL-46EX402 television, but they may affect other televisions in the Sony Bravia line.


Introduction

I have a Sony Bravia KDL-46EX402 TV that after a couple of years of operation I decided to upgrade it to the latest firmware that I found on the official web site. In the Downloads section I found the latest firmware:
M8.728 - 08/11/2011
The update went smoothly and a couple of minutes later my TV was running the latest (2 years old) firmware.



Problem

Although the firmware upgrade page says:
Will my personal settings be deleted after the update?
All user settings will be kept.
I didn't expect to find my customization intact - I was right: Most of the settings were lost. However, this article is not about this problem. A greater problem was discovered later.

After the firmware upgrade, due to lack of time, I only set up the most important customization for my system: In the sound settings menu I switched off the TV's built-in speakers as I use an external audio system, then I switched off the TV.

Later on, in the evening, I switched on the TV only to find out that the sound comes through the speakers. First, I thought I must have made a mistake earlier, so I went to the sound menu and disabled the built-in speakers. Then I did a restart (switched the TV off and on again), and audio was again coming through the built-in speakers!

So the problem is confirmed: the TV wouldn't remember (at least) this particular setting after it switches off. This makes it very inconvenient to use, so I had to find a solution for this bug in the latest firmware.

Solution

Since I design embedded devices where firmware upgrades work on the same principle, I borrowed an idea for the root of the problem from a project of mine where a firmware upgrade produced similar results:
When different versions of a firmware don't store user configuration data in the same way then an unexpected value may be written (save) or read (load at system boot) to or from the flash memory resulting in the device not recognizing it and, in this case, using default data (luckily, it didn't render the TV useless...).

To test this theory, I did a factory reset on the TV (through the menus), hoping that this would fill up its flash memory with the default, and more importantly, correct values.
I was right, after the factory reset I was not only able to change the settings for the session, but the TV kept the settings even after it was switched off - just the way it was intended.

Alternative methods

Before coming up with the solution above, I was thinking of other ways of fixing the problem, and I came up with at least two other ways. Although they are not exactly fixes, they are workarounds, but they would also allow me to enjoy the TV without having to configure the sound settings every time I switch it on.

Since the sound always goes to the home theater, I only had to find a way to mute the TV's built-in speakers. So far I have found two ways to accomplish this:

Method #1

Plugging a common 3.5mm stereo jack in the headphones socket on the side of the TV switches off the built-in speakers. Since we never use headsets with the TV, this was a pretty simple workaround. I have a few connectors lying around, so I tried this and it worked. You can also use an actual headset, but it will give some sound out which might be annoying when the sound system is temporarily muted for some reason.

Method #2

Last resort: Disconnect the built-in speakers altogether. This is a little bit more involved workaround as the TV has some delicate circuitry inside that may be easily damaged when poking around, so I wouldn't recommend it before all other options are exhausted.