Trying IR codes on a soundbar

Last night I was playing with my shiny new Flipper, and I was testing IR out by learning a few of my soundbar’s remote buttons and saving them to the SD card. I could see on Flipper’s screen that they all used the same protocol and device codes. Only the command code “C” changed for each different button.

My biggest gripe with the remote is that it has one button for input select, and if I ever bump it or it changes from the OPT/HDMI setting, I hear no sound. To recover, I have to push the input select button several times until the I see the correct input is displayed. (Ultimately, I’d love to have one button for OPT/HDMI and a different button for BLUETOOTH.)

I thought “What if my soundbar accepts an unlisted IR command that lets me select the OPT/HDMI input directly, without having to know how many times to click the button or when to stop?” So I decided to try every command code from 0x00-0xFF just to see if I could find one, and poke around with whatever else I might find.

The first thing I did was to look at the saved lg_remote.ir file on my SD card. It turns out it’s a very simple text file that looks like this:

Filetype: IR signals file
Version: 1
#
name: Power
type: parsed
protocol: Samsung32
address: 2C 00 00 00
command: 1E 00 00 00
#
name: Mute
type: parsed
protocol: Samsung32
address: 2C 00 00 00
command: 1F 00 00 00
#
name: Input_sel
type: parsed
protocol: Samsung32
address: 2C 00 00 00
command: 8A 00 00 00

Oh, this is cake! I typed this quick python script to generate my own .ir file with all the commands from 0 to FF.

f = open("try_lg.ir", "w")
f.write("Filetype: IR signals file\nVersion: 1\n")
for i in range(255):
    f.write("#\nname: %02x\ntype: parsed\nprotocol: Samsung32\naddress: 2C 00 00 00\ncommand: %02x 00 00 00\n" % (i, i))
f.close()

After running it it generated a file named try_lg.ir. I verified in an editor that the output looked good, I then copied the file to the SD card, then opened the saved remote named try_lg in Flipper. I clicked all 256 buttons and watched what the sound bar did for each. Among many active codes I found that button 0x31 would select the OPT/HDMI input, 0xa1 would select Bluetooth, and i even found a magic “diagnostic” button up at 0xF7.

Ultimately most of the codes had no effect on the soundbar. There were several that lit up the display but didn’t show me any effects of what they did. I don’t yet know what they all are, but they must do something, right?

4 Likes