So, you already put some effort in the research. very good. Let’s go from there.
At first, the manuals says:
LSX works with universal programmable remote control
provided that the remote control controls. manufacturers
have implemented KEF IR command codes in their
remote.
What are KEF IR codes? I thought is kind of a protocol, on top of the NEC header. But lets take a look, deeper in the rabbit hole.
I opened a spreadsheet (excel, calc, …) and copy and pasted the values from the manual in the first row.
‘Libre Office Calc’ is not very handy, the result was:
1 Power On/Off Toggle 0x40
so I started in row 2, with =RIGHT(A9;4)
→ 0x04
Then I used the given IR file and started to match the buttons:
Maual |
Extract |
FZ_IR |
BtnName |
1 Power On/Off Toggle 0x40 |
0x40 |
02 00 00 00 |
Power |
2 Mute/ Unmute Toggle 0x20 |
0x20 |
04 00 00 00 |
Mute |
3 Play/Pause 0x18 |
0x18 |
18 00 00 00 |
Play_pause |
4 Next 0x52 |
0x52 |
4A 00 00 00 |
Next |
Not very helpful. But in the end it is all zero and one. Most spreadsheets got a function, like ‘Hex2Bin’
Convert manual codes: =REPT("0";8-LEN(HEX2BIN(RIGHT(A9;2))))&(HEX2BIN(RIGHT(A9;2)))
Convert IR file codes: =REPT("0";8-LEN(HEX2BIN(LEFT(C9;2))))&(HEX2BIN(LEFT(C9;2)))
Maual |
Extract |
FZ_IR |
BtnName |
h2b_man |
h2b_ir |
1 Power On/Off Toggle 0x40 |
0x40 |
02 00 00 00 |
Power |
01000000 |
00000010 |
2 Mute/ Unmute Toggle 0x20 |
0x20 |
04 00 00 00 |
Mute |
00100000 |
00000100 |
3 Play/Pause 0x18 |
0x18 |
18 00 00 00 |
Play_pause |
00011000 |
00011000 |
4 Next 0x52 |
0x52 |
4A 00 00 00 |
Next |
01010010 |
01001010 |
5 Source toggle 0x58 |
0x58 |
1A 00 00 00 |
Source |
01011000 |
00011010 |
6 Volume Up 0x60 |
0x60 |
06 00 00 00 |
Plus |
01100000 |
00000110 |
7 Volume Down 0xA0 |
0xA0 |
05 00 00 00 |
Minus |
10100000 |
00000101 |
8 Previous 0xD2 |
0xD2 |
4B 00 00 00 |
Previous |
11010010 |
01001011 |
The 8 codes are just Reversed?
Reversing in Spreadsheet is crap. But luckily we have only 8 digits:
=RIGHT(E17;1)&LEFT(RIGHT(E17;2);1)&LEFT(RIGHT(E17;3);1)&LEFT(RIGHT(E17;4);1)&LEFT(RIGHT(E17;5);1)&LEFT(RIGHT(E17;6);1)&LEFT(RIGHT(E17;7);1)&LEFT(RIGHT(E17;8);1)
And back to a flipper zero .ir file code: =BIN2HEX(F17)&" 00 00 00"
Result in Row ‘FZ_IR’:
Manual |
Extract |
FZ_IR |
BtnName |
h2b_man |
h2b_ir |
1 Power On/Off Toggle 0x40 |
0x40 |
02 00 00 00 |
Power |
01000000 |
00000010 |
2 Mute/ Unmute Toggle 0x20 |
0x20 |
04 00 00 00 |
Mute |
00100000 |
00000100 |
3 Play/Pause 0x18 |
0x18 |
18 00 00 00 |
Play_pause |
00011000 |
00011000 |
4 Next 0x52 |
0x52 |
4A 00 00 00 |
Next |
01010010 |
01001010 |
5 Source toggle 0x58 |
0x58 |
1A 00 00 00 |
Source |
01011000 |
00011010 |
6 Volume Up 0x60 |
0x60 |
06 00 00 00 |
Plus |
01100000 |
00000110 |
7 Volume Down 0xA0 |
0xA0 |
05 00 00 00 |
Minus |
10100000 |
00000101 |
8 Previous 0xD2 |
0xD2 |
4B 00 00 00 |
Previous |
11010010 |
01001011 |
9 Power ON 0x38 |
0x38 |
1C 00 00 00 |
|
00111000 |
00011100 |
10 Power OFF 0x3A |
0x3A |
5C 00 00 00 |
|
00111010 |
01011100 |
11 Mute 0x48 |
0x48 |
12 00 00 00 |
|
01001000 |
00010010 |
12 Un-Mute 0x4A |
0x4A |
52 00 00 00 |
|
01001010 |
01010010 |
13 Source: Wi-Fi 0x30 |
0x30 |
C 00 00 00 |
|
00110000 |
00001100 |
14 Source: Bluetooth 0x2A |
0x2A |
54 00 00 00 |
|
00101010 |
01010100 |
15 Bluetooth Pairing 0x98 |
0x98 |
19 00 00 00 |
|
10011000 |
00011001 |
16 Source: AUX 0x02 |
0x02 |
40 00 00 00 |
|
00000010 |
01000000 |
17 Source: Optical 0x0A |
0x0A |
50 00 00 00 |
|
00001010 |
01010000 |
18 Source: USB 0x1A |
0x1A |
58 00 00 00 |
|
00011010 |
01011000 |
19 Preset Volume (30%) 0x78 |
0x78 |
1E 00 00 00 |
|
01111000 |
00011110 |
The leading 0 is missing at the code ‘13 source:Wifi’ … but it should be good enough.
Brute force is never a solution. It is the sledge hammer, if the situation is not enough analyzed