| Electronics > Projects, Designs, and Technical Stuff |
| Senville Heat Pump remote decoding |
| (1/2) > >> |
| kevinateev:
So, I'd gotten the oscilloscope out, and probed and hacked this thing ... looking for a serial port and whilst there is the programming header on the main internal board, just didn't want to go there. So, what does it have? Senville AURA Heat Pump, all sizes, I'm working with a 2015 model, has one-wire signal for the remote IR between 5V and GND for input, and for output, it has, a data line, three select lines, and a clock pulse to a 74HC164 that is wired to a set of LEDs, and two digit 7-segment display. Decoding the output is a TODO task. For input, the IR signal has been decoded BUT the CRC, I have just not gotten anywhere with decoding this! Here is a link to the GitHub project. If you've been wanting to do this, you're welcome. Enjoy! Think you can figure out this CRC? https://github.com/kpishere/GetRawIRData |
| abyrvalg:
A better approach would be to post packet samples right so people see them and try guessing the CRC right here instead of following the github link, loosing time there finding no samples finally (that’s what I did a minute ago). |
| kevinateev:
A very good point, thank-you! Was not thinking of the CRC puzzle fans out there :). Since getting organized and publishing, and getting to taking apart the actual remote, I did managed to get there somewhere too. Senville AURA is same tech as Panasonic (for some Inverter models) and MrCool amongst others. They all use remote type RG57A6/BGEFU1 which sports a Sino Wealth SH77p 1652U OTP microprocessor in it. I went back to basics and tried a simple CRC XOR sum operation and ... it looks so close! There seems to be some exit operation between the nibbles of the CRC byte that is missing. Reduce high nibble by 1 and add 1 to low nibble but not in all cases. As requested .. here is some output - first five bytes are the data - sixth byte is the CRC - CRC is represented a second type in bits - Other side of =?= is the XOR calculation showing hex and bits A1 0B 4A FF FF DA 11011010 =?= E0 1110 0 A1 8B 4A FF FF 5A 01011010 =?= 60 110 0 A1 8C 5E FF FF 4B 01001011 =?= 73 111 11 A1 82 4A FF FF 57 01010111 =?= 69 110 1001 A1 88 4A FF FF 58 01011000 =?= 63 110 11 A1 81 4A FF FF 55 01010101 =?= 6A 110 1010 A1 8B 4A FF FF 5A 01011010 =?= 60 110 0 5E A1 8C 5E FF FF 4B 01001011 =?= 73 111 11 A1 94 5E FF FF 5B 01011011 =?= 6B 110 1011 A1 9C 5E FF FF 53 01010011 =?= 63 110 11 A1 A4 5E FF FF 7B 01111011 =?= 5B 101 1011 A1 8C 5E FF FF 4B 01001011 =?= 73 111 11 A1 82 4B FF FF 56 01010110 =?= 68 110 1000 A1 82 49 FF FF 55 01010101 =?= 6A 110 1010 A1 82 48 FF FF 54 01010100 =?= 6B 110 1011 A1 82 47 FF FF 5A 01011010 =?= 64 110 100 A1 82 46 FF FF 5B 01011011 =?= 65 110 101 A1 82 45 FF FF 59 01011001 =?= 66 110 110 A1 82 44 FF FF 58 01011000 =?= 67 110 111 A1 82 43 FF FF 5E 01011110 =?= 60 110 0 A1 82 42 FF FF 5F 01011111 =?= 61 110 1 A1 82 41 FF FF 5D 01011101 =?= 62 110 10 A1 82 40 FF FF 5C 01011100 =?= 63 110 11 |
| abyrvalg:
This looks like some Hamming-style code - parity bits over different combinations of source bits. Changes it bit 0 of source bytes affect only bit 0 of the result, but changes in bit 1 change both 1 and 0. Are you sure that all bits are decoded 100% correctly? There are several odd mismatches that can be either some unknown properties of the code or just some bits decoded incorrectly: --- Code: ---A1 81 1000 0001 4A 0100 1010 FF FF 55 0101 0101 A1 82 1000 0010 4A 0100 1010 FF FF 57 0101 0111 ..!. A1 88 1000 1000 4A 0100 1010 FF FF 58 0101 1000 !!!! <- A1 8B 1000 1011 4A 0100 1010 FF FF 5A 0101 1010 ..!. A1 82 1000 0010 41 0100 0001 FF FF 5D 0101 1101 A1 82 1000 0010 42 0100 0010 FF FF 5F 0101 1111 ..!. A1 82 1000 0010 48 0100 1000 FF FF 54 0101 0100 !.!! <- not the same effect! A1 82 1000 0010 4B 0100 1011 FF FF 56 0101 0110 ..!. --- End code --- |
| kevinateev:
The two lines you have with the <- mark are different commands. Yes, I have decoded it all. They are correct as indented. Hadn't seen the Hamming Code before, will have to try that one too. Here is some more samples with comments as to their meaning, HVAC_SENVILLE_HDR_MARK 4000 // micro-seconds HVAC_SENVILLE_HDR_SPACE 4000 HVAC_SENVILLE_BIT_MARK 600 HVAC_SENVILLE_ONE_SPACE 1725 HVAC_SENVILLE_ZERO_SPACE 600 HVAC_SENVILLE_END_SPACE 5350 [Count] [msecon] [setTemp] [byte0] [byte1] [byte2] [byte3] [byte4] [byte5-crc] - [description] // power on/off *------- 1 06910296 17 10100001 10000010 01000000 11111111 11111111 01011100 - ON 0 04803412 17 10100001 00000010 01000000 11111111 11111111 11011100 - OFF // Increment Temp from lowest 17 to highest 30 ----**** 0 3003292 17 10100001 10000010 01000000 11111111 11111111 01011100 - 17 1 10310684 18 10100001 10000010 01000001 11111111 11111111 01011101 - 18 2 13818056 19 10100001 10000010 01000010 11111111 11111111 01011111 - 19 3 17225328 20 10100001 10000010 01000011 11111111 11111111 01011110 - 20 4 20332528 21 10100001 10000010 01000100 11111111 11111111 01011000 - 21 5 22839720 22 10100001 10000010 01000101 11111111 11111111 01011001 - 22 6 24646628 23 10100001 10000010 01000110 11111111 11111111 01011011 - 23 7 26153500 24 10100001 10000010 01000111 11111111 11111111 01011010 - 24 8 10631148 25 10100001 10000010 01001000 11111111 11111111 01010100 - 25 9 11638012 26 10100001 10000010 01001001 11111111 11111111 01010101 - 26 10 12645072 27 10100001 10000010 01001010 11111111 11111111 01010111 - 27 11 13652188 28 10100001 10000010 01001011 11111111 11111111 01010110 - 28 12 14659164 29 10100001 10000010 01001100 11111111 11111111 01010000 - 29 13 15866028 30 10100001 10000010 01001101 11111111 11111111 01010001 - 30 // Cycle thru modes —-*—-*** ---***** 11 2685841552 30 10100001 10100000 01001101 11111111 11111111 01100011 - cool 12 2692851428 30 10100001 10000001 01001101 11111111 11111111 01010010 - dry 15 2703580384 30 10100001 10000010 01001101 11111111 11111111 01010001 - auto 13 2697061116 30 10100001 10100011 01001101 11111111 11111111 01100000 - heat 14 2700670756 31 10100001 10100100 01011110 11111111 11111111 01111011 - fan // Fan mode fan speed —-***--- 0 03703360 31 10100001 10100100 01011110 11111111 11111111 01111011 - fan auto 1 10610844 31 10100001 10001100 01011110 11111111 11111111 01001011 - fan 0 2 18718484 31 10100001 10010100 01011110 11111111 11111111 01011011 - fan 1 3 23825952 31 10100001 10011100 01011110 11111111 11111111 01010011 - fan 2 // sleep -*------ 43 863116028 17 10100001 11000010 01000000 11111111 11111111 00011100 - auto sleep 28 597669864 17 10100001 11100000 01000000 11111111 11111111 00101110 - cool sleep 38 775270360 17 10100001 11100011 01000000 11111111 11111111 00101101 - heat sleep // (all modes) direct ------** ---***** 117 1441268992 32 10100010 00000001 11111111 11111111 11111111 01111100 - direct // (all modes) swing ------** ---***** 114 1434044184 32 10100010 00000010 11111111 11111111 11111111 01111110 - swing // (all modes) led ------** ---***** 138 1650090392 32 10100010 00001000 11111111 11111111 11111111 01110101 - led // turbo ------** ---***** 65 1067407716 32 10100010 00001001 11111111 11111111 11111111 01110100 - auto|cool turbo // selfclean ------** ---***** 75 1232410896 32 10100010 00001101 11111111 11111111 11111111 01110000 - auto|cool|dry self clean // silence ------** ---***** 0 10303780 32 10100010 00010011 11111111 11111111 11111111 1101111 - silence off (cool) 1 69415080 32 10100010 00010010 11111111 11111111 11111111 1101110 - silence on (cool) // follow me **------ ---***** 5 41454816 21 10100100 10100000 01000100 00111111 start 00011000 24 00000101 set 16 489383820 21 10100100 10100000 01000100 01111111 update 00011000 24 01111001 follow me updates on temp 17 667304848 21 10100100 10100000 01000100 01111111 update 00010111 23 01110011 " 18 845325888 21 10100100 10100000 01000100 01111111 update 00010111 23 01110011 " 19 1023346920 21 10100100 10100000 01000100 01111111 update 00010111 23 01110011 " 20 1201467940 21 10100100 10100000 01000100 01111111 update 00010111 23 01110011 " 6 43361516 21 10100100 10100000 01000100 11111111 stop 00011000 24 10111001 unset // On timer *------- -******- 1 09610788 17 10100001 10000010 01000000 11111111 10000001 00011101 - .5 2 15818216 17 10100001 10000010 01000000 11111111 10000011 00011110 = 1 3 20225188 17 10100001 10000010 01000000 11111111 10000101 00011001 - 1.5 4 22932360 17 10100001 10000010 01000000 11111111 10000111 00011010 - 2 5 25639396 17 10100001 10000010 01000000 11111111 10001001 00010101 - 2.5 6 28146436 17 10100001 10000010 01000000 11111111 10001011 00010110 - 3 7 30253516 17 10100001 10000010 01000000 11111111 10001101 00010001 - 3.5 8 32260628 17 10100001 10000010 01000000 11111111 10001111 00010010 - 4 9 34467688 17 10100001 10000010 01000000 11111111 10010001 00001101 - 4.5 10 36474672 17 10100001 10000010 01000000 11111111 10010011 00001110 - 5 11 38381468 17 10100001 10000010 01000000 11111111 10010101 00001001 - 5.5 12 40288292 17 10100001 10000010 01000000 11111111 10010111 00001010 - 6 13 42995156 17 10100001 10000010 01000000 11111111 10011001 00000101 - 6.5 14 44802128 17 10100001 10000010 01000000 11111111 10011011 00000110 - 7 15 46809028 17 10100001 10000010 01000000 11111111 10011101 00000001 - 7.5 16 49015860 17 10100001 10000010 01000000 11111111 10011111 00000010 - 8 17 50922796 17 10100001 10000010 01000000 11111111 10100001 00101101 - 8.5 18 52929892 17 10100001 10000010 01000000 11111111 10100011 00101110 - 9 19 54836980 17 10100001 10000010 01000000 11111111 10100101 00101001 - 9.5 20 56744184 17 10100001 10000010 01000000 11111111 10100111 00101010 — 10 21 58751340 17 10100001 10000010 01000000 11111111 10101011 00100110 - 11 22 60858484 17 10100001 10000010 01000000 11111111 10101111 00100010 - 12 23 62865396 17 10100001 10000010 01000000 11111111 10110011 00110110 - 13 24 64772304 17 10100001 10000010 01000000 11111111 10110111 00110010 - 14 25 66779220 17 10100001 10000010 01000000 11111111 10111011 00111010 - 15 26 68686336 17 10100001 10000010 01000000 11111111 10111111 00111100 - 16 27 70493424 17 10100001 10000010 01000000 11111111 11000011 01101110 - 17 28 72200828 17 10100001 10000010 01000000 11111111 11000111 01101010 - 18 29 74008244 17 10100001 10000010 01000000 11111111 11001011 01100110 - 19 30 75815696 17 10100001 10000010 01000000 11111111 11001111 01100010 - 20 31 77523104 17 10100001 10000010 01000000 11111111 11010011 01110110 - 21 32 79230448 17 10100001 10000010 01000000 11111111 11010111 01110010 - 22 33 80937880 17 10100001 10000010 01000000 11111111 11011011 01111010 - 23 34 82645276 17 10100001 10000010 01000000 11111111 11011111 01111100 - 24 35 84352668 17 10100001 00000010 01000000 11111111 11111111 11011100 - 0 (off) // Off timer -******- 0 04403372 17 10100001 10000010 01000000 10000001 11111111 00011101 - .5 1 09510552 17 10100001 10000010 01000000 10000011 11111111 00011110 - 1 2 11517508 17 10100001 10000010 01000000 10000101 11111111 00011001 - 1.5 3 13424328 17 10100001 10000010 01000000 10000111 11111111 00011010 - 4 15331156 17 10100001 10000010 01000000 10001001 11111111 00010101 5 17138192 17 10100001 10000010 01000000 10001011 11111111 00010110 6 18945296 17 10100001 10000010 01000000 10001101 11111111 00010001 7 20652096 17 10100001 10000010 01000000 10001111 11111111 00010010 8 22258892 17 10100001 10000010 01000000 10010001 11111111 00001101 9 23865808 17 10100001 10000010 01000000 10010011 11111111 00001110 10 25472708 17 10100001 10000010 01000000 10010101 11111111 00001001 11 27179712 17 10100001 10000010 01000000 10010111 11111111 00001010 12 28786676 17 10100001 10000010 01000000 10011001 11111111 00000101 13 30393684 17 10100001 10000010 01000000 10011011 11111111 00000110 14 32000560 17 10100001 10000010 01000000 10011101 11111111 00000001 15 33607404 17 10100001 10000010 01000000 10011111 11111111 00000010 16 35214372 17 10100001 10000010 01000000 10100001 11111111 00101101 17 36821432 17 10100001 10000010 01000000 10100011 11111111 00101110 18 38428472 17 10100001 10000010 01000000 10100101 11111111 00101001 19 40035580 17 10100001 10000010 01000000 10100111 11111111 00101010 20 41642640 17 10100001 10000010 01000000 10101011 11111111 00100110 21 43249776 17 10100001 10000010 01000000 10101111 11111111 00100010 22 44856904 17 10100001 10000010 01000000 10110011 11111111 00110110 23 46464108 17 10100001 10000010 01000000 10110111 11111111 00110010 24 48071156 17 10100001 10000010 01000000 10111011 11111111 00111010 25 49678188 17 10100001 10000010 01000000 10111111 11111111 00111100 26 51285372 17 10100001 10000010 01000000 11000011 11111111 01101110 27 52892736 17 10100001 10000010 01000000 11000111 11111111 01101010 28 54400116 17 10100001 10000010 01000000 11001011 11111111 01100110 29 56007536 17 10100001 10000010 01000000 11001111 11111111 01100010 30 57614940 17 10100001 10000010 01000000 11010011 11111111 01110110 31 59122276 17 10100001 10000010 01000000 11010111 11111111 01110010 32 60729672 17 10100001 10000010 01000000 11011011 11111111 01111010 33 62337060 17 10100001 10000010 01000000 11011111 11111111 01111100 - 24 34 63744396 17 10100001 10000010 01000000 11111111 11111111 01011100 - 0 (off) |
| Navigation |
| Message Index |
| Next page |