Hello guys,
I bought an IR emitter module with the intention of powering on/off my Samsung TV. The problem is that my TV does not respond. I wrote this code for testing:
#include <IRremote.hpp>
void setup() {
Serial.begin(9600);
IrSender.begin(3, ENABLE_LED_FEEDBACK, USE_DEFAULT_FEEDBACK_LED_PIN);
}
void loop() {
IrSender.sendSamsung(0x707, 0x2, 3);
delay(5000);
}
First thing I did was dumping the power button code from my remote using the ReceiveDump example in the IRremote library. I obtained the following output:
Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
Send with: IrSender.sendSamsung(0x707, 0x2, <numberOfRepeats>);
Raw result in internal ticks (50 us) - with leading gap
rawData[68]:
-65535
+90,-90
+11,-34 +11,-33 +11,-34 +11,-11
+11,-12 +10,-12 +11,-11 +12,-11
+11,-33 +12,-33 +12,-33 +11,-11
+12,-10 +12,-11 +11,-11 +11,-11
+12,-11 +11,-33 +12,-11 +11,-11
+11,-12 +11,-11 +11,-11 +11,-12
+11,-34 +10,-12 +11,-34 +10,-34
+11,-34 +11,-34 +10,-34 +11,-35
+10
Sum: 1219
Raw result in microseconds - with leading gap
rawData[68]:
-3276750
+4500,-4500
+ 550,-1700 + 550,-1650 + 550,-1700 + 550,- 550
+ 550,- 600 + 500,- 600 + 550,- 550 + 600,- 550
+ 550,-1650 + 600,-1650 + 600,-1650 + 550,- 550
+ 600,- 500 + 600,- 550 + 550,- 550 + 550,- 550
+ 600,- 550 + 550,-1650 + 600,- 550 + 550,- 550
+ 550,- 600 + 550,- 550 + 550,- 550 + 550,- 600
+ 550,-1700 + 500,- 600 + 550,-1700 + 500,-1700
+ 550,-1700 + 550,-1700 + 500,-1700 + 550,-1750
+ 500
Sum: 60950
Result as internal 8bit ticks (50 us) array - compensated with MARK_EXCESS_MICROS=20
uint8_t rawTicks[67] = {90,90, 11,34, 11,33, 11,34, 11,11, 11,12, 10,12, 11,11, 12,11, 11,33, 12,33, 12,33, 11,11, 12,10, 12,11, 11,11, 11,11, 12,11, 11,33, 12,11, 11,11, 11,12, 11,11, 11,11, 11,12, 11,34, 10,12, 11,34, 10,34, 11,34, 11,34, 10,34, 11,35, 10}; // Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
Result as microseconds array - compensated with MARK_EXCESS_MICROS=20
uint16_t rawData[67] = {4480,4520, 530,1720, 530,1670, 530,1720, 530,570, 530,620, 480,620, 530,570, 580,570, 530,1670, 580,1670, 580,1670, 530,570, 580,520, 580,570, 530,570, 530,570, 580,570, 530,1670, 580,570, 530,570, 530,620, 530,570, 530,570, 530,620, 530,1720, 480,620, 530,1720, 480,1720, 530,1720, 530,1720, 480,1720, 530,1770, 480}; // Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
uint16_t address = 0x707;
uint16_t command = 0x2;
uint32_t rawData = 0xFD020707;
Send with: IrSender.sendSamsung(0x707, 0x2, <numberOfRepeats>);
Pronto Hex as string
char prontoData[] = "0000 006D 0022 0000 00AE 00AC 0016 0041 0016 003F 0016 0041 0016 0014 0016 0016 0014 0016 0016 0014 0018 0014 0016 003F 0018 003F 0018 003F 0016 0014 0018 0012 0018 0014 0016 0014 0016 0014 0018 0014 0016 003F 0018 0014 0016 0014 0016 0016 0016 0014 0016 0014 0016 0016 0016 0041 0014 0016 0016 0041 0014 0041 0016 0041 0016 0041 0014 0041 0016 0043 0014 06C3 ";
Since the code I wrote did not power on my TV I was suspicious that I wasn't sending the signal in the right way. So i took my secondary board and I tried dumping what I was sending with my module. This is the output:
Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
Send with: IrSender.sendSamsung(0x707, 0x2, <numberOfRepeats>);
Raw result in internal ticks (50 us) - with leading gap
rawData[68]:
-7353
+90,-87
+13,-32 +13,-32 +12,-33 +12,-11
+12,-10 +12,-11 +12,-11 +12,-10
+12,-33 +12,-33 +12,-33 +12,-11
+11,-11 +13,-10 +12,-11 +11,-11
+12,-11 +12,-33 +12,-11 +11,-11
+12,-11 +12,-11 +11,-11 +12,-11
+12,-33 +12,-11 +11,-33 +12,-33
+13,-32 +12,-33 +12,-33 +11,-34
+12
Sum: 1226
Raw result in microseconds - with leading gap
rawData[68]:
-367650
+4500,-4350
+ 650,-1600 + 650,-1600 + 600,-1650 + 600,- 550
+ 600,- 500 + 600,- 550 + 600,- 550 + 600,- 500
+ 600,-1650 + 600,-1650 + 600,-1650 + 600,- 550
+ 550,- 550 + 650,- 500 + 600,- 550 + 550,- 550
+ 600,- 550 + 600,-1650 + 600,- 550 + 550,- 550
+ 600,- 550 + 600,- 550 + 550,- 550 + 600,- 550
+ 600,-1650 + 600,- 550 + 550,-1650 + 600,-1650
+ 650,-1600 + 600,-1650 + 600,-1650 + 550,-1700
+ 600
Sum: 61300
Result as internal 8bit ticks (50 us) array - compensated with MARK_EXCESS_MICROS=20
uint8_t rawTicks[67] = {90,87, 13,32, 13,32, 12,33, 12,11, 12,10, 12,11, 12,11, 12,10, 12,33, 12,33, 12,33, 12,11, 11,11, 13,10, 12,11, 11,11, 12,11, 12,33, 12,11, 11,11, 12,11, 12,11, 11,11, 12,11, 12,33, 12,11, 11,33, 12,33, 13,32, 12,33, 12,33, 11,34, 12}; // Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
Result as microseconds array - compensated with MARK_EXCESS_MICROS=20
uint16_t rawData[67] = {4480,4370, 630,1620, 630,1620, 580,1670, 580,570, 580,520, 580,570, 580,570, 580,520, 580,1670, 580,1670, 580,1670, 580,570, 530,570, 630,520, 580,570, 530,570, 580,570, 580,1670, 580,570, 530,570, 580,570, 580,570, 530,570, 580,570, 580,1670, 580,570, 530,1670, 580,1670, 630,1620, 580,1670, 580,1670, 530,1720, 580}; // Protocol=Samsung Address=0x707 Command=0x2 Raw-Data=0xFD020707 32 bits LSB first
uint16_t address = 0x707;
uint16_t command = 0x2;
uint32_t rawData = 0xFD020707;
Send with: IrSender.sendSamsung(0x707, 0x2, <numberOfRepeats>);
Pronto Hex as string
char prontoData[] = "0000 006D 0022 0000 00AE 00A7 001A 003D 001A 003D 0018 003F 0018 0014 0018 0012 0018 0014 0018 0014 0018 0012 0018 003F 0018 003F 0018 003F 0018 0014 0016 0014 001A 0012 0018 0014 0016 0014 0018 0014 0018 003F 0018 0014 0016 0014 0018 0014 0018 0014 0016 0014 0018 0014 0018 003F 0018 0014 0016 003F 0018 003F 001A 003D 0018 003F 0018 003F 0016 0041 0018 06C3 ";
The output seems to be the same, but my TV does not power on. Please somebody help me. Thanks in advance