Skip to content

Commit fd5397d

Browse files
committed
Bumped version to 4.4. Improved sensitivity of PULSE_DISTANCE + PULSE_WIDTH protocols. New functions decodePulseDistanceWidthData() with 6 parameters and decodePulseDistanceWidthDataStrict() with 7 parameter.
1 parent 8f23b6b commit fd5397d

25 files changed

+1059
-729
lines changed

README.md

Lines changed: 73 additions & 22 deletions
Large diffs are not rendered by default.

changelog.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22
The latest version may not be released!
33
See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-IRremote/commits/master
44

5-
# 4.3.3
5+
# 4.4.0
66
- sendNEC() and sendNEC2() now accepts 16 bit command to better map to NECext protocol found in IRDB databases.
77
- ir_DistanceWidthProtocol() now decodes up to 10 ms mark or spaces if RAM is bigger than 2 k.
8+
- Improved sensitivity and decoding of PULSE_DISTANCE + PULSE_WIDTH protocols.
9+
- Changed TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING to TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING_PERCENT.
810
- Improved examples AllProtocolsOnLCD, UnitTest and SimpleReceiver.
11+
- New functions decodePulseDistanceWidthData() with 6 parameters and decodePulseDistanceWidthDataStrict() with 7 parameters.
912

1013
# 4.3.2
1114
- Added sendSonyMSB(unsigned long data, int nbits) as a clone of sendSony(unsigned long data, int nbits) to be more consistent.

examples/AllProtocolsOnLCD/ADCUtils.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,9 @@ float getCPUTemperatureSimple(void) {
762762
#if defined(__AVR_ATmega328PB__)
763763
tTemperatureRaw -= 245;
764764
return (float)tTemperatureRaw;
765+
#elif defined(__AVR_ATtiny85__)
766+
tTemperatureRaw -= 273; // 273 and 1.1666 are values from the datasheet
767+
return (float)tTemperatureRaw / 1.1666;
765768
#else
766769
tTemperatureRaw -= 317;
767770
return (float) tTemperatureRaw / 1.22;

examples/IRremoteInfo/IRremoteInfo.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ void dumpPulseParams() {
197197
;
198198
Serial.println(F(" uSecs"));
199199
Serial.print(F("Measurement tolerance: "));
200-
Serial.print(TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING);
200+
Serial.print(TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING_PERCENT);
201201
Serial.println(F("%"));
202202
}
203203

examples/ReceiveAndSendHob2Hood/ReceiveAndSendHob2Hood.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void setup() {
9393
}
9494

9595
/*
96-
* Send Hob2Hood protocol
96+
* Receive and send Hob2Hood protocol
9797
*/
9898
void loop() {
9999
static long sLastMillisOfSend = 0;

examples/SendDemo/SendDemo.ino

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,9 @@ void loop() {
199199
delay(DELAY_AFTER_SEND);
200200

201201
/*
202-
* Send 2 Panasonic 48 bit codes as generic Pulse Distance data, once with LSB and once with MSB first
202+
* Send 2 Panasonic 48 bit codes as Pulse Distance data, once with LSB and once with MSB first
203203
*/
204-
Serial.println(F("Send Panasonic 0xB, 0x10 as generic 48 bit PulseDistance"));
204+
Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance"));
205205
Serial.println(F(" LSB first"));
206206
Serial.flush();
207207
#if __INT_WIDTH__ < 32
@@ -226,7 +226,7 @@ void loop() {
226226
#endif
227227
delay(DELAY_AFTER_SEND);
228228

229-
Serial.println(F("Send generic 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first"));
229+
Serial.println(F("Send 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first"));
230230
Serial.flush();
231231
# if __INT_WIDTH__ < 32
232232
tRawData[0] = 0x87654321; // LSB of tRawData[0] is sent first
@@ -240,7 +240,7 @@ void loop() {
240240
# endif
241241
delay(DELAY_AFTER_SEND);
242242

243-
Serial.println(F("Send generic 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first"));
243+
Serial.println(F("Send 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first"));
244244
Serial.flush();
245245
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
246246
#if __INT_WIDTH__ < 32
@@ -252,7 +252,19 @@ void loop() {
252252
#endif
253253
delay(DELAY_AFTER_SEND);
254254

255-
Serial.println(F("Send generic 32 bit PulseWidth 0x87654321 LSB first"));
255+
Serial.println(F("Send ASCII 7 bit PulseDistanceWidth LSB first"));
256+
Serial.flush();
257+
// Real PulseDistanceWidth (constant bit length) does theoretically not require a stop bit, but we know the stop bit from serial transmission
258+
IrSender.sendPulseDistanceWidth(38, 6000, 500, 500, 1500, 1500, 500, sCommand, 7, PROTOCOL_IS_LSB_FIRST, 0, 0);
259+
delay(DELAY_AFTER_SEND);
260+
261+
Serial.println(F("Send Sony12 as PulseWidth LSB first"));
262+
Serial.flush();
263+
uint32_t tData = (uint32_t) sAddress << 7 | (sCommand & 0x7F);
264+
IrSender.sendPulseDistanceWidth(38, 2400, 600, 1200, 600, 600, 600, tData, SIRCS_12_PROTOCOL, PROTOCOL_IS_LSB_FIRST, 0, 0);
265+
delay(DELAY_AFTER_SEND);
266+
267+
Serial.println(F("Send 32 bit PulseWidth 0x87654321 LSB first"));
256268
Serial.flush();
257269
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
258270
IrSender.sendPulseDistanceWidth(38, 1000, 500, 600, 300, 300, 300, 0x87654321, 32, PROTOCOL_IS_LSB_FIRST, 0, 0);

examples/SendRawDemo/SendRawDemo.ino

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
*
44
* This example shows how to send a RAW signal using the IRremote library.
55
* The example signal is actually a 32 bit NEC signal.
6-
* Remote Control button: LGTV Power On/Off.
7-
* Hex Value: 0x20DF10EF, 32 bits
6+
* Protocol=NEC Address=0x4 Command=0x18 Raw-Data=0xE718FB04 32 bits LSB first
87
*
98
* If it is a supported protocol, it is more efficient to use the protocol send function
109
* (here sendNEC) to send the signal.
@@ -14,7 +13,7 @@
1413
************************************************************************************
1514
* MIT License
1615
*
17-
* Copyright (c) 2020-2022 Armin Joachimsmeyer
16+
* Copyright (c) 2020-2024 Armin Joachimsmeyer
1817
*
1918
* Permission is hereby granted, free of charge, to any person obtaining a copy
2019
* of this software and associated documentation files (the "Software"), to deal
@@ -68,59 +67,62 @@ void setup() {
6867
}
6968

7069
/*
71-
* NEC address=0xFB0C, command=0x18
70+
* NEC address=0x04 (0xFB04), command=0x18 (0xE718)
7271
*
73-
* This is data in byte format.
72+
* This is the raw data array in byte format.
7473
* The uint8_t/byte elements contain the number of ticks in 50 us.
7574
* The uint16_t format contains the (number of ticks * 50) if generated by IRremote,
7675
* so the uint16_t format has exact the same resolution but requires double space.
7776
* With the uint16_t format, you are able to modify the timings to meet the standards,
7877
* e.g. use 560 (instead of 11 * 50) for NEC or use 432 for Panasonic. But in this cases,
7978
* you better use the timing generation functions e.g. sendNEC() directly.
8079
*/
81-
const uint8_t rawDataP[]
82-
#if defined(__AVR__)
83-
PROGMEM
84-
#endif
85-
= { 180, 90 /*Start bit*/, 11, 11, 11, 11, 11, 34, 11, 34/*0011 0xC of 16 bit address LSB first*/, 11, 11, 11, 11, 11, 11, 11,
80+
const uint8_t rawDataP[] PROGMEM
81+
= { 180, 90 /*Start bit*/, 11, 11, 11, 11, 11, 34, 11, 11/*0010 0x4 of 8 bit address LSB first*/, 11, 11, 11, 11, 11, 11, 11,
8682
11/*0000*/, 11, 34, 11, 34, 11, 11, 11, 34/*1101 0xB*/, 11, 34, 11, 34, 11, 34, 11, 34/*1111*/, 11, 11, 11, 11, 11, 11, 11,
8783
34/*0001 0x08 of command LSB first*/, 11, 34, 11, 11, 11, 11, 11, 11/*1000 0x01*/, 11, 34, 11, 34, 11, 34, 11,
8884
11/*1110 Inverted 8 of command*/, 11, 11, 11, 34, 11, 34, 11, 34/*0111 inverted 1 of command*/, 11 /*stop bit*/};
8985

86+
/*
87+
* The same frame as above. Values are NOT multiple of 50, but are taken from the NEC timing definitions
88+
*/
89+
const uint16_t rawData[] = { 9000, 4500/*Start bit*/, 560, 560, 560, 560, 560, 1690, 560,
90+
560/*0010 0x4 of 8 bit address LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000*/, 560, 1690, 560, 1690, 560, 560,
91+
560, 1690/*1101 0xB - inverted 0x04*/, 560, 1690, 560, 1690, 560, 1690, 560, 1690/*1111 - inverted 0*/, 560, 560, 560, 560,
92+
560, 560, 560, 1690/*0001 0x08 of command LSB first*/, 560, 1690, 560, 560, 560, 560, 560, 560/*1000 0x01*/, 560, 1690, 560,
93+
1690, 560, 1690, 560, 560/*1110 Inverted 8 of command*/, 560, 560, 560, 1690, 560, 1690, 560,
94+
1690/*1111 inverted 0 of command*/, 560 /*stop bit*/}; // Using exact NEC timing
95+
9096
void loop() {
9197

92-
#if !(defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__))
98+
#if FLASHEND > 0x1FFF // For more than 8k flash => not for ATtiny85 etc.
9399
/*
94100
* Send hand crafted data from RAM
95-
* The values are NOT multiple of 50, but are taken from the NEC timing definitions
96101
*/
97-
Serial.println(F("Send NEC 16 bit address=0xFB04 and command 0x08 with exact timing (16 bit array format)"));
102+
Serial.println(F("Send NEC 8 bit address=0x04 (0xFB04) and command 0x18 (0xE718) with exact timing (16 bit array format)"));
98103
Serial.flush();
99-
100-
const uint16_t rawData[] = { 9000, 4500/*Start bit*/, 560, 560, 560, 560, 560, 1690, 560,
101-
560/*0010 0x4 of 16 bit address LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000*/, 560, 1690, 560, 1690, 560,
102-
560, 560, 1690/*1101 0xB*/, 560, 1690, 560, 1690, 560, 1690, 560, 1690/*1111*/, 560, 560, 560, 560, 560, 560, 560,
103-
1690/*0001 0x08 of command LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000 0x00*/, 560, 1690, 560, 1690, 560,
104-
1690, 560, 560/*1110 Inverted 8 of command*/, 560, 1690, 560, 1690, 560, 1690, 560, 1690/*1111 inverted 0 of command*/,
105-
560 /*stop bit*/}; // Using exact NEC timing
106104
IrSender.sendRaw(rawData, sizeof(rawData) / sizeof(rawData[0]), NEC_KHZ); // Note the approach used to automatically calculate the size of the array.
107105

108-
delay(1000); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
106+
delay(1000); // delay must be greater than 8 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
107+
109108
#endif
110109

111110
/*
112111
* Send byte data direct from FLASH
113112
* Note the approach used to automatically calculate the size of the array.
114113
*/
115-
Serial.println(F("Send NEC 16 bit address 0xFB0C and data 0x18 with (50 us) tick resolution timing (8 bit array format) "));
114+
Serial.println(F("Send NEC 8 bit address 0x04 and command 0x18 with (50 us) tick resolution timing (8 bit array format) "));
116115
Serial.flush();
117116
IrSender.sendRaw_P(rawDataP, sizeof(rawDataP) / sizeof(rawDataP[0]), NEC_KHZ);
118117

119-
delay(1000); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
118+
delay(1000); // delay must be greater than 8 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
120119

121-
Serial.println(F("Send NEC 16 bit address 0x0102, 8 bit data 0x34 with generated timing"));
120+
/*
121+
* Send the same frame using NEC encoder
122+
*/
123+
Serial.println(F("Send NEC 16 bit address 0x04, 8 bit command 0x18 with NEC encoder"));
122124
Serial.flush();
123-
IrSender.sendNEC(0x0102, 0x34, 0);
125+
IrSender.sendNEC(0x04, 0x18, 0);
124126

125127
delay(3000);
126128
}

examples/UnitTest/UnitTest.ino

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,10 @@ void loop() {
469469
# endif
470470

471471
# if defined(DECODE_PANASONIC) || defined(DECODE_KASEIKYO)
472-
Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit generic PulseDistance using ProtocolConstants"));
472+
Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance using ProtocolConstants"));
473473
Serial.flush();
474474
# if __INT_WIDTH__ < 32
475-
IRRawDataType tRawData[] = { 0xB02002, 0xA010, 0x0 }; // LSB of tRawData[0] is sent first
475+
IRRawDataType tRawData[4] = { 0xB02002, 0xA010, 0x0, 0x0 }; // LSB of tRawData[0] is sent first
476476
IrSender.sendPulseDistanceWidthFromArray(&KaseikyoProtocolConstants, &tRawData[0], 48, NO_REPEATS); // Panasonic is a Kaseikyo variant
477477
checkReceive(0x0B, 0x10);
478478
# else
@@ -482,9 +482,9 @@ void loop() {
482482
delay(DELAY_AFTER_SEND);
483483

484484
/*
485-
* Send 2 Panasonic 48 bit codes as generic Pulse Distance data, once with LSB and once with MSB first
485+
* Send 2 Panasonic 48 bit codes as Pulse Distance data, once with LSB and once with MSB first
486486
*/
487-
Serial.println(F("Send Panasonic 0xB, 0x10 as generic 48 bit PulseDistance"));
487+
Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance"));
488488
Serial.println(F("-LSB first"));
489489
Serial.flush();
490490
# if __INT_WIDTH__ < 32
@@ -516,7 +516,7 @@ void loop() {
516516

517517
# if defined(DECODE_DISTANCE_WIDTH)
518518
# if defined(USE_MSB_DECODING_FOR_DISTANCE_DECODER)
519-
Serial.println(F("Send generic 52 bit PulseDistance 0x43D8613C and 0x3BC3B MSB first"));
519+
Serial.println(F("Send 52 bit PulseDistance 0x43D8613C and 0x3BC3B MSB first"));
520520
Serial.flush();
521521
# if __INT_WIDTH__ < 32
522522
tRawData[0] = 0x43D8613C; // MSB of tRawData[0] is sent first
@@ -530,7 +530,7 @@ void loop() {
530530
# endif
531531
delay(DELAY_AFTER_SEND);
532532

533-
Serial.println(F("Send generic 52 bit PulseDistanceWidth 0x43D8613C and 0x3BC3B MSB first"));
533+
Serial.println(F("Send 52 bit PulseDistanceWidth 0x43D8613C and 0x3BC3B MSB first"));
534534
Serial.flush();
535535
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
536536
# if __INT_WIDTH__ < 32
@@ -541,15 +541,15 @@ void loop() {
541541
checkReceivedRawData(0x123456789ABC);
542542
# endif
543543
delay(DELAY_AFTER_SEND);
544-
Serial.println(F("Send generic 32 bit PulseWidth 0x43D8613C MSB first"));
544+
Serial.println(F("Send 32 bit PulseWidth 0x43D8613C MSB first"));
545545
Serial.flush();
546546
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
547547
IrSender.sendPulseDistanceWidth(38, 1000, 500, 600, 300, 300, 300, 0x43D8613C, 32, PROTOCOL_IS_MSB_FIRST, 0, 0);
548548
checkReceivedRawData(0x43D8613C);
549549
delay(DELAY_AFTER_SEND);
550550

551551
# else // defined(USE_MSB_DECODING_FOR_DISTANCE_DECODER)
552-
Serial.println(F("Send generic 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first"));
552+
Serial.println(F("Send 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first"));
553553
Serial.flush();
554554
# if __INT_WIDTH__ < 32
555555
tRawData[0] = 0x87654321; // LSB of tRawData[0] is sent first
@@ -565,35 +565,63 @@ void loop() {
565565
# endif
566566
delay(DELAY_AFTER_SEND);
567567

568-
Serial.println(F("Send generic 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first"));
568+
Serial.println(F("Send 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first"));
569569
Serial.flush();
570-
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
570+
// Real PulseDistanceWidth (constant bit length) does theoretically not require a stop bit, but we know the stop bit from serial transmission
571571
# if __INT_WIDTH__ < 32
572572
tRawData[1] = 0xDCBA9;
573-
IrSender.sendPulseDistanceWidthFromArray(38, 300, 600, 600, 300, 300, 600, &tRawData[0], 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
573+
IrSender.sendPulseDistanceWidthFromArray(38, 300, 600, 300, 600, 600, 300, &tRawData[0], 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
574574
checkReceivedArray(tRawData, 2);
575575
# else
576-
IrSender.sendPulseDistanceWidth(38, 300, 600, 600, 300, 300, 600, 0xDCBA987654321, 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
576+
IrSender.sendPulseDistanceWidth(38, 300, 600, 300, 600, 600, 300, 0xDCBA987654321, 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
577577
checkReceivedRawData(0xDCBA987654321);
578578
# endif
579579
delay(DELAY_AFTER_SEND);
580580

581-
Serial.println(F("Send generic 32 bit PulseWidth 0x87654321 LSB first"));
581+
Serial.println(F("Send 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first with inverse timing and data"));
582+
Serial.flush();
583+
# if __INT_WIDTH__ < 32
584+
tRawData[2] = ~tRawData[0];
585+
tRawData[3] = ~tRawData[1];
586+
IrSender.sendPulseDistanceWidthFromArray(38, 300, 600, 600, 300, 300, 600, &tRawData[2], 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
587+
checkReceivedArray(tRawData, 2);
588+
# else
589+
IrSender.sendPulseDistanceWidth(38, 300, 600, 600, 300, 300, 600, ~0xDCBA987654321, 52, PROTOCOL_IS_LSB_FIRST, 0, 0);
590+
checkReceivedRawData(0xDCBA987654321);
591+
# endif
592+
delay(DELAY_AFTER_SEND);
593+
594+
Serial.println(F("Send ASCII 7 bit PulseDistanceWidth LSB first"));
595+
Serial.flush();
596+
// Real PulseDistanceWidth (constant bit length) does theoretically not require a stop bit, but we know the stop bit from serial transmission
597+
IrSender.sendPulseDistanceWidth(38, 6000, 500, 500, 1500, 1500, 500, sCommand, 7, PROTOCOL_IS_LSB_FIRST, 0, 0);
598+
checkReceivedRawData(sCommand);
599+
delay(DELAY_AFTER_SEND);
600+
601+
Serial.println(F("Send Sony12 as PulseWidth LSB first"));
602+
Serial.flush();
603+
uint32_t tData = (uint32_t) sAddress << 7 | (sCommand & 0x7F);
604+
IrSender.sendPulseDistanceWidth(38, 2400, 600, 1200, 600, 600, 600, tData, SIRCS_12_PROTOCOL, PROTOCOL_IS_LSB_FIRST, 0, 0);
605+
checkReceive(sAddress & 0x1F, sCommand & 0x7F);
606+
delay(DELAY_AFTER_SEND);
607+
608+
Serial.println(F("Send 32 bit PulseWidth 0x87654321 LSB first"));
582609
Serial.flush();
583-
// Real PulseDistanceWidth (constant bit length) does not require a stop bit
584610
IrSender.sendPulseDistanceWidth(38, 1000, 500, 600, 300, 300, 300, 0x87654321, 32, PROTOCOL_IS_LSB_FIRST, 0, 0);
585611
checkReceivedRawData(0x87654321);
586612
delay(DELAY_AFTER_SEND);
613+
587614
# endif // defined(USE_MSB_DECODING_FOR_DISTANCE_DECODER)
588615
# endif // defined(DECODE_DISTANCE_WIDTH)
589616

590617
# if defined(DECODE_MAGIQUEST)
591-
Serial.println(F("Send MagiQuest 0x6BCDFF00, 0x176 as generic 55 bit PulseDistanceWidth MSB first"));
618+
Serial.println(F("Send MagiQuest 0x6BCDFF00, 0x176 as 55 bit PulseDistanceWidth MSB first"));
592619
Serial.flush();
593620
# if __INT_WIDTH__ < 32
594621
tRawData[0] = 0x01AF37FC; // We have 1 header (start) bit and 7 start bits and 31 address bits for MagiQuest, so 0x6BCDFF00 is shifted 2 left
595-
tRawData[1] = 0x017619; // We send only 23 instead of 24 bite here! 19 is the checksum
596-
IrSender.sendPulseDistanceWidthFromArray(38, 287, 864, 576, 576, 287, 864, &tRawData[0], 55, PROTOCOL_IS_MSB_FIRST, 0, 0);
622+
tRawData[1] = 0x017619; // We send only 23 bits here! 0x19 is the checksum
623+
IrSender.sendPulseDistanceWidthFromArray(38, 287, 864, 576, 576, 287, 864, &tRawData[0], 55,
624+
PROTOCOL_IS_MSB_FIRST | SUPPRESS_STOP_BIT, 0, 0);
597625
# else
598626
// 0xD79BFE00 is 0x6BCDFF00 is shifted 1 left
599627
IrSender.sendPulseDistanceWidth(38, 287, 864, 576, 576, 287, 864, 0xD79BFE017619, 55, PROTOCOL_IS_MSB_FIRST, 0, 0);
@@ -664,7 +692,7 @@ void loop() {
664692
#if defined(DECODE_SONY)
665693
Serial.println(F("Send Sony/SIRCS with 7 command and 5 address bits"));
666694
Serial.flush();
667-
IrSender.sendSony(sAddress & 0x1F, sCommand, 0);
695+
IrSender.sendSony(sAddress & 0x1F, sCommand, 0); // SIRCS_12_PROTOCOL is default
668696
checkReceive(sAddress & 0x1F, sCommand & 0x7F);
669697
delay(DELAY_AFTER_SEND);
670698

0 commit comments

Comments
 (0)