ESP8266 Unlocks Hidden Features In Sound Bar

It’s no secret that the hardware devices we buy are often more capable than their manufacturer leads on. Features hidden behind firmware locks are a common trick, as it allows companies to sell the same piece of gear as a different model by turning off certain capabilities. Luckily for us, these types of arbitrary limitations are often easy to circumvent.

As a perfect example, [Acuario] recently discovered that the LG SJ2 sound bar has quite a few features that aren’t advertised on the box. Whether it’s due to greed or just laziness, it turns out LG isn’t using many of the capabilities offered by the ESMT AD83586B IC inside the amplifier. The chip gets its configuration via I2C, so thanks to the addition of an ESP8266, the expanded capabilities can now be easily enabled through a web interface.

[Acuario] has already found out how to turn on things like simulated surround sound, or per-channel volume controls; all functions which aren’t even exposed through the normal controls on the sound bar. But it goes deeper than that. The LG SJ2 is a 2.1 channel system, with a wireless speaker providing the right and left channels. But the AD83586B inside the subwoofer is actually capable of driving two locally connected speakers, though you obviously need to do a little rewiring.

There are still even more capabilities to unlock, though [Acuario] is currently struggling with some incomplete documentation. The datasheet says there’s support for user-defined equalizer settings, but no examples are given for how to actually do it. If anyone’s got a particular affinity for these sort of amplifier chips, now could be your time to shine.

For hackers, there’s perhaps no better example of feature-locked products than Rigol’s line of oscilloscopes. From the 2000 series of scopes in 2013 up to their higher-end MSO5000 just last year, there’s a long history of unlocking hidden features on these popular tools.

22 thoughts on “ESP8266 Unlocks Hidden Features In Sound Bar

  1. “The datasheet says there’s support for user-defined equalizer settings, but no examples are given for how to actually do it. If anyone’s got a particular affinity for these sort of amplifier chips, now could be your time to shine.”

    From the data sheet I found:

    It doesn’t seem very complicated. When the device is configured to act as an I2C slave, you write your configuration into the chip to choose what channels are in use, how they are mixed etc. This all comes from an on-board I2C flash chip during boot-up. The custom EQ settings are a number of coefficients to a transfer function, that are written to specific register addresses. These are normally set to zero, except one which is set to 1 so the EQ has no effect (multiply by 1).

    1. Page 51. “All user-defined filters are path-through, where all coefficients are defaulted to 0 after being powered up, except the A0 that is set to 0x200000 which represents 1.”

      Once you write the parameters in, the EQ should just work.

    2. Of course the “how to do it” is difficult if you don’t know how transfer functions work.

      It’s basically like this: you have the function H(z) which is a function that operates on the frequency domain. If you define a transfer function H(z) = 1/(1 + z) you have a simple low-pass filter. The different coefficients shape the frequency response of the function so you can set band-pass or band-stop filters over different parts of the bandwidth, and they may overlap with cumulative effect.

      Each channel can have 8 transfer functions that apply, each with 5 coefficients, that’s why the “20 bands” EQ.

          1. Warning, it seems to me that the calculator is using the coefficients a and b in a different order than the wikipedia article. You may have to swap them around.

  2. Like my old LCD TV that wasn’t divx compatible until I managed to open the service menu using an universal remote, then I changed two options on that menu and the TV became able to play normal divx and HDdivx.

  3. When I was in high school I had a fairly fancy (for the time) CD player in my car. My friend’s girlfriend had the lower-spec model of the same deck. If I put my face on her deck, a bunch of the advanced features of my deck became available (One notable one was hers just had like five EQ presets, where mine had the five presets plus a custom one, I could put my face on her deck and program the custom EQ and it would “stick” if she put her face back on, although if she changed the EQ settings it would revert to the built-in ones.

    1. You are right but the 2.1 only comes from the front bar, not the subwoofer which only has a single mono speaker. This shows how to get the 2.1 from the subwoofer by adding the extra 2 channels using the existing hardware.

  4. I’ve been wondering about unlocking hardware on other devices? I’m wondering if the Samsung Galaxy Tab A and Tab 4 have a compass that is turned off in a factory setting, that could be turned on by the user?

  5. maybe this isnt the best option for a budget, but what i did for more bass was took the computer and wires, ect, and put it all in a new box with an 8 inch sub, and it sounds great. All you need to do is cut the wire that connects to the sub, unscrew the computer, and i just cut off the other thing beside it (i think its the chip?), and transfered it over to the other box (via where the sub goes in the new box) and use the cut wires (you need to strip them to 10)to wrap around the positive and negative on the new sub, and i ran the power wire out of the port (its temporary, but it works.) Looks good and sounds even better.

    1. If you wanna try the software and all with this, that might work as well, if you cant get a new speaker, I recommend just reversing the polarities of the other one to make it louder

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.