IRremoteESP8266
IRremoteESP8266 copied to clipboard
Add support for CARRIER 42WM100CT
Hi, I'm trying to control my AC device without luck. Here are the log of IRrecvDumpV2 :
IRrecvDump is now running and waiting for IR input on Pin 25
Timestamp : 000005.715
Library : v2.8.4
Protocol : UNKNOWN
Code : 0xE366A1BC (86 Bits)
uint16_t rawData[171] = {5844, 1152, 1154, 462, 1152, 462, 418, 1194, 418, 1194, 420, 1194, 416, 1198, 418, 1196, 416, 1196, 418, 1194, 420, 1192, 420, 1194, 420, 1194, 1152, 460, 1152, 460, 420, 1192, 418, 1194, 1154, 458, 418, 1194, 420, 1192, 1154, 460, 1152, 458, 420, 1194, 418, 1194, 418, 1194, 1152, 460, 1154, 458, 418, 1196, 416, 1194, 418, 1194, 418, 1196, 420, 1194, 418, 1192, 420, 1194, 420, 1192, 418, 1196, 416, 1194, 416, 1196, 1152, 462, 416, 1194, 422, 1192, 1154, 458, 420, 1192, 418, 1194, 418, 1194, 418, 1196, 420, 1194, 418, 1192, 420, 1194, 418, 1192, 420, 1194, 418, 1194, 420, 1194, 418, 1194, 1154, 458, 418, 1194, 418, 1192, 1154, 458, 418, 1196, 416, 1194, 420, 1194, 416, 1192, 418, 1194, 1152, 462, 416, 1196, 1152, 458, 418, 1196, 1152, 458, 418, 1194, 1154, 460, 418, 1194, 418, 1196, 418, 1196, 418, 1194, 1154, 460, 420, 1192, 418, 1194, 420, 1194, 418, 1194, 418, 1196, 1152, 460, 418, 1194, 1154, 458, 1154, 460, 1152, 458, 1152}; // UNKNOWN E366A1BC
Timestamp : 000520.499
Library : v2.8.4
Protocol : UNKNOWN
Code : 0x606EAF1C (86 Bits)
uint16_t rawData[171] = {5850, 1156, 1150, 460, 1152, 464, 412, 1200, 414, 1200, 416, 1196, 416, 1198, 414, 1198, 416, 1196, 416, 1198, 416, 1198, 414, 1200, 416, 1196, 1150, 462, 1150, 462, 416, 1200, 412, 1198, 1152, 460, 414, 1198, 416, 1196, 1152, 462, 1150, 462, 414, 1198, 414, 1198, 416, 1198, 1148, 462, 1150, 464, 414, 1198, 416, 1198, 412, 1200, 414, 1196, 416, 1198, 412, 1200, 412, 1198, 414, 1200, 414, 1198, 414, 1198, 414, 1200, 1152, 462, 414, 1196, 414, 1198, 1152, 462, 414, 1200, 416, 1196, 414, 1198, 414, 1200, 416, 1196, 414, 1200, 412, 1200, 414, 1198, 416, 1198, 414, 1198, 414, 1198, 414, 1200, 1148, 462, 412, 1198, 414, 1198, 1152, 462, 414, 1198, 416, 1196, 416, 1198, 1148, 464, 1150, 464, 412, 1198, 414, 1198, 414, 1202, 414, 1196, 414, 1200, 412, 1200, 416, 1198, 1148, 464, 412, 1200, 414, 1198, 414, 1200, 1146, 464, 414, 1200, 414, 1198, 1148, 464, 1152, 462, 410, 1202, 412, 1200, 412, 1200, 1148, 464, 1146, 466, 1148, 464, 1146}; // UNKNOWN 606EAF1C
Unfortunately, auto_analyse_raw_data.py doesn't understand the protocol:
Found 171 timing entries.
Potential Mark Candidates:
[5850, 1152, 416]
Potential Space Candidates:
[1202, 466]
Guessing encoding type:
Sorry, it looks like it is Mark encoded. I can't do that yet. Exiting.
Any clue of what happend?
Auto analyze only has support for the most common way to send data.
Can you collect more data with lowest to highest temperature setting?
Also do you have a model number of the remote?
Looking at the raw data, it appears this protocol uses a constant bit-time transmission protool.
I've got some half-arsed decoding working. But the data portion of the protocol appears to be 84 bits long. We can handle unusual bit lengths <= 64 bits. Over 64, we need it to be in nice 8-bit chunks to work without horrible hacks. e.g. 80 or 88.
Out best bet is if ALL the raw messages start with the same 4 bits.
That means the rawData needs to have this pattern: (i.e Numbers roughly the same, not exactly. e.g With in +/- 200 of the corresponding array)
uint16_t rawData[171] = {5844, 1152, 1154, 462, 1152, 462, 418, 1194, 418, 1194, ...
Let me know how you go with your data collection.
Thanks a lot for your interest ! I dumped some frames in this file: Reuploaded below (had some errors) ! Tell me if this is enough and/or if I can do something else.
For the remote, I have those number, not sure if this is what @NiKiZe you called "model number of the remote": 3021203 RR03-S-Remote Control.
IR dump.xlsx I also highlighted differences of config (and reversed last lines) to easily understand what can be expected to change in the version:
I've cobbled together something that tries to match and send this odd-ball protocol. Can you please download & test out branch https://github.com/crankyoldgit/IRremoteESP8266/tree/Issue1943 / PR #1945
Let me know how it goes. It's very experimental, so don't rely on the data yet. Please capture a full temperature range as we have still to work out the bit ordering. (assuming it works enought to capture state[] data for it.
Hi ! Thanks a lot for your help. I captured those frames:
Timestamp : 000038.590
Library : v2.8.4
Temp : 10
Protocol : CARRIER_AC84
Code : 0x0C00C08C004800488498D4 (84 Bits)
uint16_t rawData[171] = {5846, 1140, 1166, 466, 1148, 464, 412, 1202, 410, 1202, 412, 1200, 412, 1200, 412, 1202, 410, 1202, 412, 1198, 412, 1202, 410, 1202, 410, 1202, 1146, 464, 1148, 464, 412, 1200, 412, 1202, 412, 1216, 398, 1200, 412, 1200, 412, 1200, 1148, 464, 412, 1200, 412, 1200, 414, 1198, 1148, 462, 1150, 464, 412, 1200, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 414, 1200, 412, 1202, 412, 1202, 1144, 468, 412, 1212, 400, 1200, 1146, 466, 412, 1200, 414, 1198, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 1148, 464, 410, 1200, 412, 1200, 1148, 464, 412, 1200, 414, 1202, 410, 1198, 1150, 462, 412, 1210, 402, 1200, 414, 1200, 412, 1202, 1146, 466, 410, 1202, 412, 1200, 1146, 466, 412, 1202, 412, 1200, 1148, 464, 1150, 462, 414, 1200, 412, 1200, 412, 1200, 1148, 462, 1150, 462, 412, 1198, 1148, 462, 414, 1202, 1146, 466, 410, 1198, 414, 1198, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC0, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xD4};
Timestamp : 000040.917
Library : v2.8.4
Temp : 11
Protocol : CARRIER_AC84
Code : 0x0C00C88C00480048849834 (84 Bits)
uint16_t rawData[171] = {5856, 1132, 1150, 464, 1150, 462, 412, 1200, 416, 1200, 414, 1200, 412, 1202, 412, 1208, 406, 1200, 416, 1198, 412, 1198, 416, 1200, 414, 1196, 1150, 464, 1150, 462, 414, 1200, 414, 1206, 1142, 464, 412, 1202, 410, 1202, 412, 1200, 1150, 464, 414, 1198, 414, 1200, 414, 1200, 1150, 464, 1148, 462, 416, 1198, 412, 1202, 414, 1198, 412, 1200, 412, 1200, 416, 1196, 416, 1200, 412, 1202, 412, 1200, 414, 1198, 414, 1198, 1148, 464, 414, 1200, 414, 1198, 1150, 462, 416, 1200, 412, 1200, 412, 1200, 416, 1198, 414, 1198, 416, 1198, 412, 1200, 412, 1200, 414, 1198, 414, 1202, 412, 1200, 412, 1200, 1150, 462, 414, 1200, 412, 1200, 1150, 462, 412, 1200, 414, 1200, 414, 1200, 1148, 464, 416, 1200, 414, 1198, 414, 1198, 412, 1202, 1148, 464, 410, 1202, 412, 1206, 1142, 462, 414, 1202, 412, 1200, 1148, 464, 1148, 464, 414, 1198, 416, 1198, 414, 1200, 414, 1198, 412, 1200, 1148, 464, 1152, 462, 414, 1198, 1150, 462, 412, 1200, 414, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC8, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x34};
Timestamp : 000042.848
Library : v2.8.4
Temp : 12
Protocol : CARRIER_AC84
Code : 0x0C00C48C004800488498B4 (84 Bits)
uint16_t rawData[171] = {5852, 1150, 1150, 466, 1148, 464, 414, 1198, 416, 1196, 416, 1198, 412, 1202, 412, 1200, 412, 1200, 416, 1198, 412, 1198, 414, 1202, 412, 1200, 1148, 466, 1150, 462, 414, 1200, 414, 1200, 414, 1198, 1152, 462, 414, 1198, 412, 1202, 1148, 464, 412, 1202, 412, 1200, 414, 1200, 1152, 460, 1148, 466, 414, 1198, 414, 1200, 414, 1200, 414, 1200, 416, 1198, 412, 1200, 412, 1200, 412, 1202, 414, 1196, 414, 1200, 414, 1200, 1150, 462, 412, 1200, 412, 1200, 1150, 464, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 414, 1198, 416, 1200, 414, 1196, 414, 1198, 412, 1200, 416, 1198, 412, 1202, 414, 1200, 1150, 464, 412, 1202, 412, 1200, 1148, 464, 412, 1200, 414, 1202, 410, 1202, 1148, 462, 414, 1200, 414, 1200, 414, 1198, 414, 1200, 1150, 462, 412, 1200, 412, 1200, 1148, 464, 414, 1200, 414, 1200, 1150, 462, 1150, 464, 414, 1198, 416, 1200, 412, 1200, 1146, 464, 412, 1200, 1148, 464, 1150, 462, 416, 1198, 1150, 462, 416, 1198, 412, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC4, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xB4};
Timestamp : 000044.505
Library : v2.8.4
Temp : 13
Protocol : CARRIER_AC84
Code : 0x0C00CC8C00480048849874 (84 Bits)
uint16_t rawData[171] = {5872, 1130, 1154, 462, 1150, 464, 412, 1200, 416, 1198, 414, 1200, 412, 1202, 414, 1198, 412, 1202, 414, 1200, 414, 1200, 410, 1200, 414, 1200, 1148, 464, 1148, 466, 412, 1200, 414, 1202, 1148, 464, 1148, 464, 414, 1200, 412, 1200, 1148, 466, 414, 1200, 412, 1200, 412, 1202, 1150, 464, 1148, 462, 412, 1200, 412, 1200, 412, 1202, 414, 1196, 414, 1200, 414, 1200, 414, 1198, 412, 1202, 414, 1200, 412, 1200, 414, 1200, 1148, 464, 414, 1198, 414, 1200, 1148, 468, 412, 1200, 414, 1200, 414, 1200, 416, 1198, 412, 1202, 414, 1198, 414, 1200, 412, 1202, 412, 1202, 412, 1200, 412, 1200, 412, 1200, 1148, 466, 412, 1200, 410, 1202, 1148, 462, 414, 1200, 410, 1200, 416, 1196, 1148, 466, 414, 1200, 414, 1200, 412, 1200, 414, 1200, 1148, 464, 414, 1200, 410, 1200, 1152, 464, 412, 1200, 414, 1200, 1150, 462, 1148, 466, 414, 1198, 414, 1200, 412, 1202, 412, 1200, 1150, 462, 1150, 464, 1148, 464, 414, 1198, 1150, 462, 412, 1202, 412, 1198, 1152}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCC, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x74};
Timestamp : 000046.167
Library : v2.8.4
Temp : 14
Protocol : CARRIER_AC84
Code : 0x0C00C28C004800488498F4 (84 Bits)
uint16_t rawData[171] = {5870, 1134, 1150, 462, 1148, 464, 414, 1200, 412, 1202, 412, 1196, 414, 1200, 412, 1200, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 412, 1200, 1148, 464, 1148, 464, 412, 1202, 414, 1198, 414, 1200, 414, 1200, 1148, 464, 412, 1200, 1150, 464, 414, 1200, 412, 1200, 414, 1196, 1150, 464, 1148, 464, 412, 1198, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 414, 1200, 414, 1200, 412, 1202, 412, 1200, 414, 1200, 414, 1200, 1150, 464, 412, 1200, 416, 1200, 1148, 466, 410, 1202, 412, 1200, 412, 1202, 412, 1200, 412, 1200, 412, 1200, 416, 1196, 416, 1200, 412, 1200, 414, 1200, 414, 1200, 412, 1200, 1148, 464, 412, 1202, 412, 1200, 1150, 464, 414, 1200, 412, 1200, 412, 1200, 1150, 464, 414, 1200, 412, 1200, 412, 1200, 414, 1200, 1150, 464, 412, 1202, 414, 1198, 1150, 466, 412, 1200, 414, 1200, 1152, 464, 1150, 464, 412, 1200, 416, 1202, 410, 1200, 1150, 464, 1150, 462, 1152, 462, 1148, 464, 412, 1198, 1150, 464, 414, 1202, 414, 1198, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC2, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xF4};
Timestamp : 000047.610
Library : v2.8.4
Temp : 15
Protocol : CARRIER_AC84
Code : 0x0C00CA8C0048004884980C (84 Bits)
uint16_t rawData[171] = {5854, 1134, 1148, 464, 1148, 462, 414, 1200, 414, 1198, 414, 1200, 412, 1202, 412, 1200, 414, 1200, 412, 1202, 410, 1200, 414, 1198, 414, 1198, 1148, 464, 1150, 464, 414, 1200, 412, 1200, 1148, 464, 414, 1198, 1148, 464, 414, 1198, 1148, 464, 412, 1200, 412, 1200, 416, 1198, 1148, 462, 1150, 464, 410, 1200, 414, 1198, 414, 1200, 414, 1198, 414, 1200, 414, 1198, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 1148, 462, 412, 1200, 412, 1200, 1150, 462, 412, 1200, 416, 1196, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 414, 1200, 410, 1200, 414, 1200, 412, 1198, 414, 1200, 1146, 466, 412, 1198, 416, 1198, 1148, 464, 412, 1198, 414, 1200, 414, 1200, 1146, 464, 414, 1196, 414, 1202, 412, 1200, 414, 1200, 1146, 466, 410, 1200, 414, 1200, 1150, 462, 412, 1202, 412, 1200, 1148, 464, 1148, 464, 414, 1198, 412, 1200, 412, 1200, 412, 1198, 412, 1200, 412, 1200, 416, 1198, 1148, 464, 1148, 462, 416, 1198, 414, 1200, 1146}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCA, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x0C};
Timestamp : 000049.037
Library : v2.8.4
Temp : 16
Protocol : CARRIER_AC84
Code : 0x0C00C68C0048004884988C (84 Bits)
uint16_t rawData[171] = {5868, 1132, 1152, 462, 1150, 464, 412, 1200, 414, 1200, 414, 1198, 416, 1200, 414, 1200, 412, 1200, 414, 1198, 414, 1202, 412, 1198, 416, 1196, 1150, 466, 1148, 466, 412, 1200, 414, 1198, 416, 1198, 1148, 464, 1148, 466, 410, 1202, 1148, 462, 412, 1200, 414, 1198, 412, 1200, 1152, 464, 1146, 466, 412, 1200, 412, 1200, 414, 1202, 412, 1200, 412, 1200, 412, 1202, 414, 1200, 412, 1200, 414, 1202, 414, 1198, 414, 1200, 1150, 462, 414, 1200, 414, 1200, 1150, 462, 414, 1202, 414, 1200, 412, 1200, 414, 1200, 414, 1200, 414, 1198, 412, 1200, 414, 1200, 414, 1198, 414, 1198, 414, 1200, 414, 1198, 1150, 464, 412, 1198, 414, 1200, 1148, 462, 416, 1198, 414, 1198, 416, 1198, 1148, 464, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 1148, 464, 412, 1200, 412, 1200, 1152, 462, 414, 1200, 414, 1200, 1148, 464, 1148, 464, 412, 1200, 414, 1202, 410, 1208, 1142, 464, 412, 1206, 408, 1204, 408, 1206, 1142, 470, 1142, 464, 414, 1204, 406, 1206, 1142}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC6, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x8C};
Timestamp : 000050.650
Library : v2.8.4
Temp : 17
Protocol : CARRIER_AC84
Code : 0x0C00CE8C0048004884984C (84 Bits)
uint16_t rawData[171] = {5848, 1150, 1150, 464, 1148, 462, 414, 1200, 412, 1202, 410, 1200, 414, 1200, 414, 1198, 414, 1200, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 1150, 464, 1150, 462, 412, 1202, 414, 1200, 1148, 464, 1148, 464, 1150, 464, 410, 1200, 1150, 462, 414, 1200, 412, 1200, 410, 1200, 1146, 466, 1148, 462, 414, 1200, 414, 1200, 414, 1196, 414, 1202, 414, 1198, 412, 1200, 416, 1200, 410, 1200, 412, 1200, 412, 1200, 412, 1200, 1150, 462, 412, 1202, 412, 1200, 1150, 464, 410, 1200, 414, 1198, 414, 1198, 414, 1200, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 414, 1198, 414, 1200, 414, 1198, 1148, 464, 414, 1198, 416, 1198, 1148, 462, 414, 1202, 414, 1200, 410, 1200, 1150, 464, 412, 1200, 414, 1196, 414, 1200, 414, 1198, 1150, 462, 414, 1200, 414, 1198, 1150, 462, 412, 1200, 414, 1200, 1148, 464, 1150, 464, 414, 1198, 414, 1200, 412, 1200, 414, 1200, 1150, 462, 412, 1198, 416, 1198, 1148, 464, 1150, 464, 412, 1202, 412, 1198, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCE, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x4C};
Timestamp : 000051.919
Library : v2.8.4
Temp : 18
Protocol : CARRIER_AC84
Code : 0x0C00C18C004800488498CC (84 Bits)
uint16_t rawData[171] = {5832, 1156, 1150, 462, 1150, 462, 414, 1200, 414, 1202, 414, 1202, 410, 1200, 416, 1200, 412, 1202, 412, 1200, 412, 1200, 414, 1200, 414, 1200, 1150, 462, 1150, 464, 414, 1200, 414, 1198, 414, 1198, 416, 1198, 414, 1198, 1150, 464, 1148, 466, 414, 1200, 414, 1198, 412, 1202, 1150, 462, 1152, 462, 412, 1200, 414, 1202, 410, 1200, 412, 1202, 412, 1200, 412, 1198, 416, 1198, 412, 1202, 412, 1200, 412, 1198, 416, 1198, 1148, 464, 414, 1200, 412, 1200, 1148, 464, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 414, 1200, 412, 1200, 412, 1198, 414, 1200, 414, 1200, 412, 1202, 414, 1198, 412, 1202, 1148, 464, 412, 1200, 414, 1200, 1148, 464, 414, 1198, 412, 1200, 414, 1200, 1148, 464, 414, 1200, 410, 1202, 412, 1200, 412, 1200, 1150, 464, 414, 1198, 412, 1200, 1148, 464, 414, 1200, 412, 1200, 1148, 462, 1150, 464, 412, 1200, 414, 1202, 412, 1200, 1148, 464, 1150, 462, 414, 1198, 414, 1198, 1150, 464, 1150, 462, 414, 1200, 412, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC1, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xCC};
Timestamp : 000053.289
Library : v2.8.4
Temp : 19
Protocol : CARRIER_AC84
Code : 0x0C00C98C0048004884982C (84 Bits)
uint16_t rawData[171] = {5828, 1154, 1148, 464, 1150, 462, 416, 1198, 414, 1200, 414, 1200, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 416, 1198, 1152, 464, 1148, 464, 412, 1198, 414, 1200, 1150, 466, 412, 1198, 414, 1200, 1148, 464, 1150, 464, 410, 1200, 414, 1200, 414, 1198, 1148, 466, 1150, 462, 412, 1200, 412, 1200, 412, 1200, 414, 1200, 410, 1200, 414, 1202, 412, 1198, 414, 1200, 414, 1200, 412, 1200, 412, 1200, 1150, 466, 410, 1200, 414, 1200, 1146, 464, 414, 1200, 414, 1198, 414, 1198, 414, 1202, 414, 1198, 412, 1200, 416, 1198, 412, 1200, 416, 1198, 412, 1200, 414, 1200, 414, 1200, 1148, 464, 414, 1200, 412, 1202, 1148, 464, 412, 1200, 414, 1202, 414, 1200, 1150, 462, 412, 1200, 414, 1198, 414, 1198, 414, 1200, 1148, 464, 412, 1200, 414, 1200, 1150, 462, 414, 1202, 410, 1200, 1150, 462, 1150, 464, 412, 1202, 412, 1200, 414, 1198, 416, 1196, 416, 1198, 1152, 462, 414, 1200, 1148, 464, 1150, 462, 416, 1198, 414, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC9, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x2C};
Timestamp : 000055.080
Library : v2.8.4
Temp : 20
Protocol : CARRIER_AC84
Code : 0x0C00C04C004800488498DC (84 Bits)
uint16_t rawData[171] = {5856, 1148, 1150, 464, 1150, 462, 416, 1198, 414, 1200, 412, 1200, 416, 1198, 414, 1202, 412, 1198, 414, 1200, 412, 1198, 414, 1200, 414, 1198, 1150, 464, 1146, 464, 414, 1198, 412, 1202, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 414, 1202, 1146, 464, 412, 1200, 414, 1202, 1148, 464, 1150, 464, 414, 1202, 412, 1200, 416, 1200, 412, 1200, 412, 1202, 414, 1198, 414, 1200, 414, 1202, 412, 1200, 414, 1202, 412, 1202, 1150, 462, 414, 1200, 412, 1200, 1148, 466, 414, 1198, 414, 1200, 414, 1200, 412, 1200, 414, 1200, 414, 1198, 414, 1202, 412, 1198, 414, 1200, 412, 1202, 414, 1200, 410, 1202, 1150, 462, 412, 1200, 412, 1202, 1146, 464, 414, 1200, 412, 1200, 412, 1200, 1148, 464, 412, 1200, 414, 1200, 412, 1200, 412, 1200, 1148, 462, 414, 1198, 414, 1200, 1150, 464, 410, 1200, 414, 1198, 1148, 466, 1150, 462, 412, 1200, 414, 1198, 414, 1200, 1146, 466, 1150, 462, 414, 1200, 1148, 464, 1148, 464, 1148, 462, 414, 1198, 414, 1198, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC0, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xDC};
Timestamp : 000056.569
Library : v2.8.4
Temp : 21
Protocol : CARRIER_AC84
Code : 0x0C00C84C0048004884983C (84 Bits)
uint16_t rawData[171] = {5842, 1158, 1150, 464, 1146, 466, 412, 1200, 412, 1202, 408, 1200, 412, 1200, 412, 1200, 414, 1202, 412, 1202, 412, 1200, 414, 1198, 412, 1202, 1148, 464, 1148, 458, 420, 1198, 414, 1200, 1146, 464, 414, 1198, 414, 1200, 412, 1200, 414, 1202, 1148, 466, 410, 1200, 414, 1200, 1146, 464, 1148, 466, 410, 1202, 412, 1202, 410, 1202, 412, 1200, 412, 1202, 408, 1204, 410, 1200, 412, 1204, 412, 1200, 410, 1202, 412, 1200, 1150, 464, 412, 1202, 412, 1200, 1148, 466, 412, 1200, 410, 1202, 412, 1202, 412, 1200, 412, 1202, 412, 1200, 412, 1200, 412, 1202, 412, 1202, 412, 1200, 412, 1200, 412, 1200, 1148, 468, 412, 1200, 412, 1200, 1146, 466, 412, 1200, 412, 1200, 412, 1200, 1146, 466, 412, 1198, 412, 1200, 414, 1200, 410, 1202, 1148, 466, 412, 1200, 414, 1200, 1146, 466, 412, 1200, 414, 1200, 1146, 464, 1150, 464, 410, 1202, 410, 1202, 412, 1200, 414, 1200, 410, 1200, 1148, 466, 1146, 464, 1148, 466, 1150, 462, 412, 1200, 412, 1212, 1138}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC8, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x3C};
Timestamp : 000058.060
Library : v2.8.4
Temp : 22
Protocol : CARRIER_AC84
Code : 0x0C00C44C004800488498BC (84 Bits)
uint16_t rawData[171] = {5810, 1168, 1136, 464, 1148, 464, 412, 1202, 414, 1212, 398, 1202, 412, 1200, 414, 1212, 398, 1204, 410, 1200, 412, 1200, 412, 1214, 398, 1200, 1148, 464, 1146, 466, 412, 1200, 414, 1200, 412, 1200, 1146, 466, 412, 1200, 412, 1200, 410, 1202, 1146, 466, 412, 1200, 410, 1202, 1146, 466, 1146, 464, 410, 1202, 412, 1200, 412, 1200, 412, 1200, 414, 1202, 410, 1202, 412, 1200, 412, 1200, 410, 1202, 412, 1200, 412, 1200, 1150, 462, 414, 1200, 412, 1200, 1146, 464, 412, 1200, 412, 1200, 416, 1198, 412, 1200, 416, 1198, 414, 1198, 414, 1200, 414, 1200, 414, 1200, 412, 1200, 414, 1198, 414, 1198, 1148, 466, 410, 1200, 414, 1200, 1150, 464, 412, 1200, 414, 1198, 414, 1200, 1146, 466, 414, 1202, 412, 1198, 412, 1200, 412, 1200, 1150, 464, 412, 1200, 414, 1200, 1148, 464, 414, 1200, 412, 1198, 1148, 466, 1146, 464, 414, 1198, 414, 1202, 412, 1198, 1148, 466, 412, 1200, 1148, 464, 1148, 462, 1148, 466, 1146, 464, 410, 1202, 412, 1200, 1146}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC4, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xBC};
Timestamp : 000059.832
Library : v2.8.4
Temp : 23
Protocol : CARRIER_AC84
Code : 0x0C00CC4C0048004884987C (84 Bits)
uint16_t rawData[171] = {5846, 1158, 1148, 468, 1148, 464, 414, 1198, 414, 1184, 428, 1202, 412, 1200, 412, 1200, 414, 1200, 414, 1200, 410, 1204, 410, 1202, 412, 1200, 1148, 464, 1150, 464, 414, 1202, 410, 1202, 1148, 466, 1150, 464, 410, 1202, 412, 1202, 412, 1200, 1148, 466, 410, 1200, 412, 1200, 1150, 466, 1148, 464, 410, 1202, 410, 1202, 412, 1184, 430, 1200, 412, 1202, 412, 1198, 414, 1200, 410, 1204, 410, 1202, 412, 1186, 428, 1202, 1146, 466, 412, 1200, 410, 1186, 1164, 452, 426, 1200, 414, 1200, 412, 1204, 410, 1202, 412, 1200, 412, 1202, 412, 1200, 414, 1202, 412, 1200, 412, 1200, 414, 1200, 414, 1184, 1164, 444, 432, 1200, 412, 1202, 1148, 466, 412, 1200, 412, 1200, 414, 1200, 1148, 466, 412, 1200, 412, 1200, 412, 1200, 414, 1182, 1168, 464, 414, 1200, 412, 1200, 1150, 466, 410, 1200, 412, 1202, 1150, 464, 1148, 464, 412, 1200, 414, 1202, 412, 1200, 412, 1200, 1150, 466, 1150, 462, 1150, 466, 1148, 464, 1148, 464, 414, 1200, 414, 1202, 1146}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCC, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x7C};
Timestamp : 000061.338
Library : v2.8.4
Temp : 24
Protocol : CARRIER_AC84
Code : 0x0C00C24C004800488498FC (84 Bits)
uint16_t rawData[171] = {5826, 1160, 1148, 466, 1148, 462, 414, 1202, 412, 1200, 412, 1198, 414, 1202, 412, 1200, 414, 1200, 412, 1200, 414, 1202, 412, 1200, 412, 1202, 1146, 466, 1148, 466, 412, 1200, 414, 1200, 412, 1200, 410, 1202, 1148, 464, 412, 1204, 410, 1202, 1148, 464, 414, 1202, 410, 1202, 1146, 466, 1150, 464, 412, 1202, 410, 1202, 412, 1200, 412, 1202, 414, 1200, 412, 1200, 412, 1202, 410, 1202, 412, 1204, 410, 1202, 412, 1200, 1150, 466, 410, 1200, 414, 1200, 1150, 464, 410, 1202, 412, 1200, 414, 1200, 414, 1198, 414, 1202, 412, 1200, 412, 1202, 412, 1204, 412, 1200, 410, 1202, 412, 1202, 412, 1200, 1150, 462, 412, 1202, 414, 1200, 1148, 466, 410, 1200, 412, 1202, 410, 1202, 1148, 466, 412, 1200, 412, 1200, 414, 1200, 412, 1204, 1144, 466, 412, 1202, 410, 1204, 1146, 466, 412, 1200, 412, 1200, 1150, 464, 1150, 464, 412, 1200, 412, 1204, 412, 1200, 1150, 464, 1148, 464, 1148, 466, 1146, 476, 1138, 464, 1150, 462, 414, 1200, 414, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC2, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xFC};
Timestamp : 000062.937
Library : v2.8.4
Temp : 25
Protocol : CARRIER_AC84
Code : 0x0C00CA4C00480048849802 (84 Bits)
uint16_t rawData[171] = {5828, 1156, 1150, 452, 1160, 464, 412, 1200, 412, 1202, 414, 1200, 412, 1200, 412, 1200, 414, 1200, 410, 1200, 414, 1200, 410, 1200, 414, 1200, 1148, 464, 1148, 464, 412, 1200, 414, 1200, 1148, 466, 412, 1200, 1150, 466, 410, 1202, 412, 1200, 1148, 466, 412, 1204, 410, 1200, 1148, 466, 1148, 464, 412, 1200, 414, 1200, 414, 1200, 414, 1200, 412, 1200, 412, 1202, 412, 1202, 410, 1202, 408, 1204, 412, 1200, 412, 1200, 1148, 466, 414, 1198, 414, 1198, 1148, 466, 412, 1202, 412, 1200, 414, 1200, 410, 1202, 412, 1200, 414, 1200, 410, 1202, 412, 1202, 412, 1204, 410, 1204, 410, 1200, 414, 1202, 1146, 466, 410, 1200, 410, 1202, 1146, 468, 412, 1200, 414, 1198, 414, 1200, 1146, 466, 412, 1200, 410, 1200, 412, 1200, 412, 1200, 1148, 468, 408, 1200, 414, 1198, 1148, 466, 412, 1198, 414, 1200, 1148, 464, 1148, 464, 414, 1198, 414, 1200, 414, 1200, 410, 1202, 412, 1200, 412, 1200, 412, 1200, 412, 1198, 416, 1198, 1148, 464, 414, 1200, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCA, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x02};
Timestamp : 000064.628
Library : v2.8.4
Temp : 26
Protocol : CARRIER_AC84
Code : 0x0C00C64C00480048849882 (84 Bits)
uint16_t rawData[171] = {5846, 1158, 1148, 464, 1148, 466, 412, 1200, 412, 1202, 412, 1202, 412, 1200, 412, 1200, 412, 1202, 412, 1202, 410, 1202, 412, 1204, 410, 1200, 1150, 462, 1148, 464, 410, 1204, 410, 1200, 412, 1200, 1146, 466, 1146, 466, 412, 1200, 414, 1202, 1146, 468, 412, 1200, 414, 1200, 1148, 466, 1146, 466, 414, 1200, 412, 1200, 412, 1202, 412, 1200, 410, 1202, 414, 1200, 412, 1200, 412, 1202, 410, 1202, 412, 1202, 412, 1200, 1150, 464, 412, 1198, 414, 1198, 1150, 466, 412, 1198, 414, 1198, 412, 1202, 412, 1200, 412, 1200, 412, 1204, 412, 1200, 412, 1202, 412, 1200, 412, 1202, 408, 1204, 412, 1202, 1148, 464, 412, 1202, 410, 1204, 1148, 464, 412, 1200, 414, 1202, 410, 1202, 1148, 464, 412, 1202, 410, 1202, 412, 1200, 412, 1202, 1146, 466, 410, 1202, 412, 1200, 1148, 466, 412, 1202, 412, 1202, 1148, 464, 1146, 466, 412, 1202, 412, 1200, 414, 1202, 1148, 466, 410, 1202, 412, 1202, 412, 1200, 412, 1202, 410, 1202, 1150, 464, 414, 1200, 1146}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC6, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x82};
Timestamp : 000066.239
Library : v2.8.4
Temp : 27
Protocol : CARRIER_AC84
Code : 0x0C00CE4C00480048849842 (84 Bits)
uint16_t rawData[171] = {5848, 1138, 1142, 464, 1150, 468, 406, 1200, 414, 1206, 404, 1208, 406, 1198, 416, 1204, 406, 1208, 406, 1206, 408, 1206, 408, 1208, 406, 1206, 1142, 470, 1142, 460, 416, 1204, 406, 1206, 1142, 472, 1144, 468, 1142, 470, 408, 1200, 412, 1206, 1142, 472, 408, 1204, 408, 1206, 1142, 472, 1142, 462, 414, 1208, 406, 1198, 414, 1198, 414, 1206, 406, 1206, 408, 1200, 414, 1208, 404, 1208, 408, 1204, 406, 1200, 414, 1206, 1142, 472, 406, 1206, 406, 1206, 1144, 468, 408, 1206, 406, 1200, 412, 1206, 408, 1198, 412, 1202, 414, 1206, 406, 1206, 408, 1198, 412, 1210, 404, 1200, 412, 1200, 414, 1208, 1140, 472, 408, 1204, 408, 1206, 1142, 462, 414, 1206, 406, 1206, 408, 1198, 1150, 464, 414, 1200, 414, 1200, 412, 1198, 414, 1208, 1142, 464, 414, 1198, 416, 1206, 1140, 470, 406, 1200, 414, 1206, 1142, 470, 1142, 462, 416, 1198, 414, 1200, 412, 1208, 404, 1208, 1142, 470, 406, 1198, 416, 1196, 416, 1198, 414, 1200, 1150, 462, 414, 1198, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xCE, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x42};
Timestamp : 000067.782
Library : v2.8.4
Temp : 28
Protocol : CARRIER_AC84
Code : 0x0C00C14C004800488498C2 (84 Bits)
uint16_t rawData[171] = {5854, 1130, 1150, 462, 1150, 464, 414, 1196, 416, 1196, 416, 1198, 412, 1202, 414, 1200, 414, 1198, 412, 1200, 414, 1200, 414, 1200, 414, 1200, 1148, 464, 1148, 462, 414, 1200, 414, 1200, 414, 1198, 414, 1200, 414, 1202, 1148, 462, 414, 1200, 1150, 462, 414, 1200, 414, 1200, 1150, 464, 1148, 464, 412, 1202, 410, 1202, 414, 1200, 414, 1200, 414, 1200, 416, 1200, 414, 1200, 414, 1200, 414, 1200, 414, 1200, 414, 1198, 1150, 464, 412, 1202, 412, 1200, 1150, 462, 414, 1200, 414, 1198, 414, 1202, 414, 1198, 416, 1198, 414, 1200, 414, 1198, 416, 1200, 412, 1200, 412, 1200, 412, 1200, 416, 1198, 1150, 462, 414, 1200, 414, 1198, 1152, 464, 412, 1200, 414, 1200, 414, 1200, 1150, 462, 414, 1200, 414, 1202, 412, 1198, 414, 1200, 1150, 464, 412, 1200, 414, 1200, 1148, 464, 412, 1200, 414, 1200, 1150, 462, 1148, 466, 414, 1198, 412, 1200, 414, 1198, 1150, 464, 1150, 462, 414, 1200, 414, 1198, 414, 1200, 414, 1198, 1150, 464, 412, 1200, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC1, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xC2};
Timestamp : 000069.359
Library : v2.8.4
Temp : 29
Protocol : CARRIER_AC84
Code : 0x0C00C94C00480048849822 (84 Bits)
uint16_t rawData[171] = {5844, 1156, 1150, 464, 1148, 464, 412, 1200, 412, 1200, 414, 1200, 412, 1198, 414, 1200, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 412, 1200, 1150, 464, 1148, 464, 412, 1200, 412, 1200, 1148, 464, 414, 1198, 412, 1200, 1150, 464, 414, 1200, 1148, 464, 414, 1198, 414, 1200, 1148, 464, 1148, 464, 414, 1200, 412, 1200, 412, 1204, 410, 1200, 414, 1200, 412, 1200, 414, 1198, 414, 1202, 414, 1198, 412, 1200, 412, 1200, 1150, 464, 412, 1200, 414, 1198, 1150, 464, 414, 1200, 412, 1200, 412, 1202, 412, 1198, 414, 1200, 412, 1200, 414, 1198, 414, 1202, 412, 1200, 414, 1198, 414, 1202, 414, 1200, 1150, 462, 412, 1200, 414, 1200, 1150, 466, 410, 1200, 414, 1198, 412, 1200, 1148, 466, 412, 1200, 412, 1200, 414, 1200, 412, 1202, 1150, 464, 410, 1200, 414, 1200, 1150, 462, 416, 1200, 412, 1200, 1148, 466, 1146, 464, 414, 1200, 414, 1198, 414, 1200, 414, 1198, 414, 1202, 1150, 464, 412, 1202, 410, 1198, 414, 1202, 1150, 462, 414, 1198, 1150}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC9, 0x4C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0x22};
Timestamp : 000070.656
Library : v2.8.4
Temp : 30
Protocol : CARRIER_AC84
Code : 0x0C00C0CC004800488498D2 (84 Bits)
uint16_t rawData[171] = {5828, 1156, 1150, 466, 1148, 464, 412, 1200, 412, 1200, 414, 1198, 412, 1202, 414, 1200, 414, 1198, 412, 1200, 414, 1198, 412, 1202, 412, 1200, 1150, 466, 1148, 468, 410, 1200, 412, 1200, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 1150, 466, 1146, 466, 412, 1200, 414, 1200, 1148, 464, 1150, 462, 412, 1200, 414, 1200, 412, 1200, 414, 1200, 414, 1200, 412, 1200, 414, 1198, 414, 1198, 416, 1200, 412, 1200, 414, 1202, 1150, 462, 414, 1200, 414, 1200, 1148, 464, 416, 1196, 416, 1200, 412, 1202, 410, 1200, 416, 1198, 414, 1200, 412, 1202, 412, 1200, 414, 1200, 414, 1200, 410, 1200, 414, 1198, 1148, 466, 412, 1202, 414, 1198, 1150, 462, 412, 1198, 414, 1200, 414, 1200, 1148, 464, 414, 1200, 412, 1200, 412, 1200, 412, 1200, 1148, 464, 412, 1200, 412, 1202, 1148, 464, 412, 1202, 412, 1200, 1148, 466, 1148, 464, 412, 1200, 414, 1200, 414, 1198, 1150, 464, 1148, 464, 412, 1200, 1148, 464, 412, 1202, 412, 1198, 1148, 466, 412, 1200, 1148}; // CARRIER_AC84
uint8_t state[11] = {0x0C, 0x00, 0xC0, 0xCC, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xD2};
The signal seems quite noisy as I have to be very (very) close to the receptor to have a good response... Do you think we can have some tolerance (or increase it) around the bit-time ?
I found that there is a const uint8_t tolerance parameter. I'll try to play a bit with it (as well as slightly modify kCarrierAc84XXX)
edit:
I try those setting:
const uint16_t kCarrierAc84Zero = 1175;
const uint16_t kCarrierAc84One = 430;
and it seems to be a lot better (no need to play with const uint8_t tolerance and I have a strong signal)
I'll look at changing those parameters. I need to change the bit ordering as the data you've collected indicates it is LSBF, not MSBF order.
Using your insights, I am now able to get data which seems correct, but I had to do something I don't fully understand: in matchGenericConstBitTime I had to change the bit shift from result <<= 1; to result <<= 2;. That way, I get something like that:
20°, à 9:43 =>
0x11, 0x00, 0x03, 0x32, 0x00, 0x12, 0x00, 0x12, 0x43, 0x09, 0x5C
0 2 12:00 12:00 9:43 ??
16°, à 9:47 =>
0x11, 0x00, 0x63, 0x31, 0x00, 0x12, 0x00, 0x12, 0x47, 0x09, 0x92
6 1 12:00 12:00 9:47 ??
Please try the updated branch.
That's perfect 😍 !!! For what I understand, the message is constructed like that (from left to right byte):
0x03=> off ;0x0C=> on0xXY=> X: fan speed (0:auto, 1-3); Y: mode (2:only fan, 3:heat, 4:cold, 0:auto)0xXY=> X: small digit of consign temp; Y: In binary0bABCD: A:timer on/off; B:Swing mode on/off; C & D always1?0xXY=> X: always '0011'? ; Y: big digit of consign temp0xXX=> minute of the timer start0xXX=> hour of the timer start0xXX=> minute of the timer end0xXX=> hour of the timer end0xXX=> current minute0xXX=> current hour0xXX=> ??? A sort of CRC?
As a side note, I still have sometimes burst that are not recognized. I can try to play with different values but as I don't fully understand the meaning behind those, I'll probably not do something correct. For instance, this one isn't recognized:
uint16_t rawData[171] = {5828, 1158, 1148, 464, 1148, 494, 384, 1200, 414, 1202, 412, 1202, 410, 1204, 408, 1204, 408, 1206, 408, 1228, 386, 1202, 408, 1232, 386, 1202, 1148, 464, 1146, 468, 412, 1200, 384, 1230, 412, 1200, 412, 1200, 410, 1204, 412, 1200, 412, 1202, 1146, 468, 410, 1202, 410, 1204, 1146, 466, 1146, 464, 410, 1230, 386, 1198, 414, 1200, 412, 1202, 410, 1202, 410, 1200, 410, 1204, 408, 1204, 410, 1202, 412, 1226, 386, 1202, 1144, 468, 408, 1204, 410, 1200, 1146, 468, 412, 1198, 410, 1206, 408, 1202, 410, 1228, 384, 1228, 386, 1202, 410, 1202, 412, 1202, 408, 1202, 410, 1202, 408, 1202, 410, 1204, 1146, 464, 412, 1202, 412, 1200, 1146, 468, 408, 1202, 412, 1200, 382, 1232, 1146, 488, 1122, 466, 410, 1228, 386, 1200, 1146, 492, 1118, 466, 412, 1202, 410, 1204, 1146, 464, 414, 1198, 410, 1204, 410, 1202, 1150, 464, 410, 1202, 412, 1202, 410, 1226, 386, 1200, 410, 1228, 1148, 440, 1148, 466, 1144, 468, 408, 1202, 1144, 470, 1144, 492, 1120}; // UNKNOWN 4CC7BE54
This one is correctly recognized (with the same meaning):
uint16_t rawData[171] = {5828, 1158, 1150, 466, 1148, 462, 414, 1200, 414, 1198, 414, 1198, 414, 1202, 414, 1200, 412, 1198, 414, 1200, 412, 1202, 414, 1200, 412, 1200, 1146, 468, 1146, 466, 412, 1198, 414, 1202, 412, 1200, 412, 1200, 414, 1200, 414, 1198, 416, 1198, 1150, 464, 414, 1198, 414, 1200, 1146, 466, 1148, 464, 416, 1198, 412, 1202, 414, 1200, 412, 1200, 412, 1198, 414, 1200, 412, 1202, 412, 1198, 414, 1200, 414, 1198, 414, 1200, 1150, 462, 412, 1202, 412, 1200, 1148, 466, 410, 1202, 412, 1200, 412, 1202, 412, 1200, 414, 1198, 414, 1200, 412, 1200, 416, 1198, 414, 1198, 414, 1200, 416, 1198, 414, 1198, 1156, 458, 414, 1200, 414, 1198, 1150, 462, 414, 1198, 414, 1198, 414, 1198, 1150, 462, 1150, 462, 416, 1198, 416, 1198, 1150, 464, 1148, 464, 414, 1200, 414, 1200, 1150, 462, 412, 1200, 416, 1198, 414, 1198, 1150, 464, 414, 1198, 416, 1198, 414, 1200, 412, 1198, 418, 1196, 1150, 464, 1148, 464, 1150, 462, 414, 1198, 1150, 464, 1150, 462, 1152}; // CARRIER_AC84
uint8_t state[11] = {0x03, 0x00, 0x03, 0x32, 0x00, 0x12, 0x00, 0x12, 0x33, 0x11, 0xDC};
Do you have some tips of how to proceed to be more robust? Adjusting kCarrierAc84Zero and kCarrierAc84One is the best way or do I have an other option?
(but I fully understand that at some point, we can't recognize the frame, I just want to be sure that we can't improve stability more).
I'll look into improving the matching. You'll need to workout the checksum part/calculation as that will be critical to getting this supported. I suggest you focus on working out how to calculate it before everything else.
I'll work on it, do you have any guess or other protocols which does a similar control bits?
I'll work on it, do you have any guess or other protocols which does a similar control bits?
See/read: https://github.com/crankyoldgit/IRremoteESP8266/wiki/Adding-support-for-a-new-AC-protocol#integrity-checks
Thanks a lot for your link, it help me a lot ! So that wasn't very easy, but I figured it out. Using the following code, I am able to compute the correct integrity check byte:
u_int32_t CRC1 = 0, CRC2 = results->state[0];
for (uint16_t i = 1; i < nbytes - 1; i++)
{
// 16 bit crc
CRC1 = CRC1 + (results->state[i] & 0x0F);
CRC2 = CRC2 + ((results->state[i]>>4) & 0x0F);
}
u_int8_t CRC = (CRC1<<4) + CRC2;
I tried to send some datas ~~without success~~ (Edit, it was working, just need more power...).. Here is what I tried:
IRsend irSend(26/*PIN NUMBER*/, true);
void setup() {
irSend.begin();
irSend.enableIROut(38);
}
void loop(){
uint8_t stateTmp[11] = {0x0C, 0x00, 0xC0, 0x8C, 0x00, 0x48, 0x00, 0x48, 0x84, 0x98, 0xD4};
irSend.sendCarrierAC84(stateTmp);
sleep(1);
}
I saw the IRCarrierAc64 class, I'll try to use inheritance and create an IRCarrierAc84, do you think it is the best way to do it?
Unless a lot of the bits line up the same, I wouldn't bother with inheritance.