OTG! Finally ... found it!
All test cases appear to work! (below)
In summary, before checksum, reverse each byte from MSB to LSB. Then do a simple sum of the bytes, AND THEN SUBTRACT 1. Reverse the result again and there you have it. This works for remote quoted above which is used on my Senville AURA 18000 BTU (5 Kwh) heat pump. I understand some models of MrCool, Pioneer, and others use this protocol too. I've put the code on GitHub at
https://github.com/kpishere/GetRawIRData.
0xA1 A3 4D FF FF 0x60 0b10100001 10100011 01001101 11111111 11111111 0b01100000 =?= 01100000 0x60
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A3 4D FF FF 0x60 0b10100001 10100011 01001101 11111111 11111111 0b01100000 =?= 01100000 0x60
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A3 4C FF FF 0x61 0b10100001 10100011 01001100 11111111 11111111 0b01100001 =?= 01100001 0x61
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:29}
0xA1 A3 4B FF FF 0x67 0b10100001 10100011 01001011 11111111 11111111 0b01100111 =?= 01100111 0x67
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:28}
0xA1 A3 4A FF FF 0x66 0b10100001 10100011 01001010 11111111 11111111 0b01100110 =?= 01100110 0x66
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:27}
0xA1 A3 49 FF FF 0x64 0b10100001 10100011 01001001 11111111 11111111 0b01100100 =?= 01100100 0x64
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:26}
0xA1 A3 48 FF FF 0x65 0b10100001 10100011 01001000 11111111 11111111 0b01100101 =?= 01100101 0x65
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:25}
0xA1 A3 47 FF FF 0x6B 0b10100001 10100011 01000111 11111111 11111111 0b01101011 =?= 01101011 0x6B
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:24}
0xA1 A3 46 FF FF 0x6A 0b10100001 10100011 01000110 11111111 11111111 0b01101010 =?= 01101010 0x6A
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:23}
0xA1 A3 45 FF FF 0x68 0b10100001 10100011 01000101 11111111 11111111 0b01101000 =?= 01101000 0x68
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:22}
0xA1 A3 44 FF FF 0x69 0b10100001 10100011 01000100 11111111 11111111 0b01101001 =?= 01101001 0x69
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:21}
0xA1 A3 43 FF FF 0x6F 0b10100001 10100011 01000011 11111111 11111111 0b01101111 =?= 01101111 0x6F
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:20}
0xA1 A3 42 FF FF 0x6E 0b10100001 10100011 01000010 11111111 11111111 0b01101110 =?= 01101110 0x6E
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:19}
0xA1 A3 41 FF FF 0x6C 0b10100001 10100011 01000001 11111111 11111111 0b01101100 =?= 01101100 0x6C
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:18}
0xA1 A3 40 FF FF 0x6D 0b10100001 10100011 01000000 11111111 11111111 0b01101101 =?= 01101101 0x6D
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:17}
0xA1 24 5E FF FF 0xFB 0b10100001 00100100 01011110 11111111 11111111 0b11111011 =?= 11111011 0xFB
{IsOn:0, Instr:1, Mode:4, FanSpeed:0, IsSleepOn:0, SetTemp:31}
0xA1 A4 5E FF FF 0x7B 0b10100001 10100100 01011110 11111111 11111111 0b01111011 =?= 01111011 0x7B
{IsOn:1, Instr:1, Mode:4, FanSpeed:0, IsSleepOn:0, SetTemp:31}
0xA1 8C 5E FF FF 0x4B 0b10100001 10001100 01011110 11111111 11111111 0b01001011 =?= 01001011 0x4B
{IsOn:1, Instr:1, Mode:4, FanSpeed:1, IsSleepOn:0, SetTemp:31}
0xA1 94 5E FF FF 0x5B 0b10100001 10010100 01011110 11111111 11111111 0b01011011 =?= 01011011 0x5B
{IsOn:1, Instr:1, Mode:4, FanSpeed:2, IsSleepOn:0, SetTemp:31}
0xA1 9C 5E FF FF 0x53 0b10100001 10011100 01011110 11111111 11111111 0b01010011 =?= 01010011 0x53
{IsOn:1, Instr:1, Mode:4, FanSpeed:3, IsSleepOn:0, SetTemp:31}
0xA1 A4 5E FF FF 0x7B 0b10100001 10100100 01011110 11111111 11111111 0b01111011 =?= 01111011 0x7B
{IsOn:1, Instr:1, Mode:4, FanSpeed:0, IsSleepOn:0, SetTemp:31}
0xA1 8C 5E FF FF 0x4B 0b10100001 10001100 01011110 11111111 11111111 0b01001011 =?= 01001011 0x4B
{IsOn:1, Instr:1, Mode:4, FanSpeed:1, IsSleepOn:0, SetTemp:31}
0xA1 94 5E FF FF 0x5B 0b10100001 10010100 01011110 11111111 11111111 0b01011011 =?= 01011011 0x5B
{IsOn:1, Instr:1, Mode:4, FanSpeed:2, IsSleepOn:0, SetTemp:31}
0xA1 9C 5E FF FF 0x53 0b10100001 10011100 01011110 11111111 11111111 0b01010011 =?= 01010011 0x53
{IsOn:1, Instr:1, Mode:4, FanSpeed:3, IsSleepOn:0, SetTemp:31}
0xA1 A4 5E FF FF 0x7B 0b10100001 10100100 01011110 11111111 11111111 0b01111011 =?= 01111011 0x7B
{IsOn:1, Instr:1, Mode:4, FanSpeed:0, IsSleepOn:0, SetTemp:31}
0xA1 82 40 FF FF 0x5C 0b10100001 10000010 01000000 11111111 11111111 0b01011100 =?= 01011100 0x5C
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:17}
0xA1 82 41 FF FF 0x5D 0b10100001 10000010 01000001 11111111 11111111 0b01011101 =?= 01011101 0x5D
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:18}
0xA1 82 42 FF FF 0x5F 0b10100001 10000010 01000010 11111111 11111111 0b01011111 =?= 01011111 0x5F
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:19}
0xA1 82 43 FF FF 0x5E 0b10100001 10000010 01000011 11111111 11111111 0b01011110 =?= 01011110 0x5E
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:20}
0xA1 82 44 FF FF 0x58 0b10100001 10000010 01000100 11111111 11111111 0b01011000 =?= 01011000 0x58
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:21}
0xA1 82 45 FF FF 0x59 0b10100001 10000010 01000101 11111111 11111111 0b01011001 =?= 01011001 0x59
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:22}
0xA1 82 46 FF FF 0x5B 0b10100001 10000010 01000110 11111111 11111111 0b01011011 =?= 01011011 0x5B
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:23}
0xA1 82 47 FF FF 0x5A 0b10100001 10000010 01000111 11111111 11111111 0b01011010 =?= 01011010 0x5A
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:24}
0xA1 82 48 FF FF 0x54 0b10100001 10000010 01001000 11111111 11111111 0b01010100 =?= 01010100 0x54
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:25}
0xA1 82 49 FF FF 0x55 0b10100001 10000010 01001001 11111111 11111111 0b01010101 =?= 01010101 0x55
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:26}
0xA1 82 4A FF FF 0x57 0b10100001 10000010 01001010 11111111 11111111 0b01010111 =?= 01010111 0x57
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:27}
0xA1 82 4B FF FF 0x56 0b10100001 10000010 01001011 11111111 11111111 0b01010110 =?= 01010110 0x56
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:28}
0xA1 82 4C FF FF 0x50 0b10100001 10000010 01001100 11111111 11111111 0b01010000 =?= 01010000 0x50
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:29}
0xA1 82 4D FF FF 0x51 0b10100001 10000010 01001101 11111111 11111111 0b01010001 =?= 01010001 0x51
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4D FF FF 0x63 0b10100001 10100000 01001101 11111111 11111111 0b01100011 =?= 01100011 0x63
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4C FF FF 0x62 0b10100001 10100000 01001100 11111111 11111111 0b01100010 =?= 01100010 0x62
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:29}
0xA1 A0 4B FF FF 0x65 0b10100001 10100000 01001011 11111111 11111111 0b01100101 =?= 01100101 0x65
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:28}
0xA1 A0 4A FF FF 0x64 0b10100001 10100000 01001010 11111111 11111111 0b01100100 =?= 01100100 0x64
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:27}
0xA1 A0 49 FF FF 0x67 0b10100001 10100000 01001001 11111111 11111111 0b01100111 =?= 01100111 0x67
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:26}
0xA1 A0 48 FF FF 0x66 0b10100001 10100000 01001000 11111111 11111111 0b01100110 =?= 01100110 0x66
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:25}
0xA1 A0 47 FF FF 0x69 0b10100001 10100000 01000111 11111111 11111111 0b01101001 =?= 01101001 0x69
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:24}
0xA1 A0 46 FF FF 0x68 0b10100001 10100000 01000110 11111111 11111111 0b01101000 =?= 01101000 0x68
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:23}
0xA1 A0 45 FF FF 0x6B 0b10100001 10100000 01000101 11111111 11111111 0b01101011 =?= 01101011 0x6B
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:22}
0xA1 A0 44 FF FF 0x6A 0b10100001 10100000 01000100 11111111 11111111 0b01101010 =?= 01101010 0x6A
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:21}
0xA1 A0 43 FF FF 0x6D 0b10100001 10100000 01000011 11111111 11111111 0b01101101 =?= 01101101 0x6D
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:20}
0xA1 A0 42 FF FF 0x6C 0b10100001 10100000 01000010 11111111 11111111 0b01101100 =?= 01101100 0x6C
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:19}
0xA1 A0 41 FF FF 0x6F 0b10100001 10100000 01000001 11111111 11111111 0b01101111 =?= 01101111 0x6F
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:18}
0xA1 A0 40 FF FF 0x6E 0b10100001 10100000 01000000 11111111 11111111 0b01101110 =?= 01101110 0x6E
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:17}
0xA1 81 40 FF FF 0x5F 0b10100001 10000001 01000000 11111111 11111111 0b01011111 =?= 01011111 0x5F
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:17}
0xA1 81 41 FF FF 0x5E 0b10100001 10000001 01000001 11111111 11111111 0b01011110 =?= 01011110 0x5E
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:18}
0xA1 81 42 FF FF 0x5D 0b10100001 10000001 01000010 11111111 11111111 0b01011101 =?= 01011101 0x5D
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:19}
0xA1 81 43 FF FF 0x5C 0b10100001 10000001 01000011 11111111 11111111 0b01011100 =?= 01011100 0x5C
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:20}
0xA1 81 44 FF FF 0x5B 0b10100001 10000001 01000100 11111111 11111111 0b01011011 =?= 01011011 0x5B
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:21}
0xA1 81 45 FF FF 0x5A 0b10100001 10000001 01000101 11111111 11111111 0b01011010 =?= 01011010 0x5A
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:22}
0xA1 81 46 FF FF 0x59 0b10100001 10000001 01000110 11111111 11111111 0b01011001 =?= 01011001 0x59
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:23}
0xA1 81 47 FF FF 0x58 0b10100001 10000001 01000111 11111111 11111111 0b01011000 =?= 01011000 0x58
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:24}
0xA1 81 48 FF FF 0x57 0b10100001 10000001 01001000 11111111 11111111 0b01010111 =?= 01010111 0x57
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:25}
0xA1 81 49 FF FF 0x56 0b10100001 10000001 01001001 11111111 11111111 0b01010110 =?= 01010110 0x56
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:26}
0xA1 81 4A FF FF 0x55 0b10100001 10000001 01001010 11111111 11111111 0b01010101 =?= 01010101 0x55
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:27}
0xA1 81 4B FF FF 0x54 0b10100001 10000001 01001011 11111111 11111111 0b01010100 =?= 01010100 0x54
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:28}
0xA1 81 4C FF FF 0x53 0b10100001 10000001 01001100 11111111 11111111 0b01010011 =?= 01010011 0x53
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:29}
0xA1 81 4D FF FF 0x52 0b10100001 10000001 01001101 11111111 11111111 0b01010010 =?= 01010010 0x52
{IsOn:1, Instr:1, Mode:1, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A3 4D FF FF 0x60 0b10100001 10100011 01001101 11111111 11111111 0b01100000 =?= 01100000 0x60
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 E3 4D FF FF 0x20 0b10100001 11100011 01001101 11111111 11111111 0b00100000 =?= 00100000 0x20
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:1, SetTemp:30}
0xA1 E3 4D FF FF 0x20 0b10100001 11100011 01001101 11111111 11111111 0b00100000 =?= 00100000 0x20
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:1, SetTemp:30}
0xA1 A3 4D FF FF 0x60 0b10100001 10100011 01001101 11111111 11111111 0b01100000 =?= 01100000 0x60
{IsOn:1, Instr:1, Mode:3, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA2 09 FF FF FF 0x74 0b10100010 00001001 11111111 11111111 11111111 0b01110100 =?= 01110100 0x74
{Instr:2, Opt:9}
0xA2 09 FF FF FF 0x74 0b10100010 00001001 11111111 11111111 11111111 0b01110100 =?= 01110100 0x74
{Instr:2, Opt:9}
0xA1 82 4D FF FF 0x51 0b10100001 10000010 01001101 11111111 11111111 0b01010001 =?= 01010001 0x51
{IsOn:1, Instr:1, Mode:2, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4D FF FF 0x63 0b10100001 10100000 01001101 11111111 11111111 0b01100011 =?= 01100011 0x63
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA2 0D FF FF FF 0x70 0b10100010 00001101 11111111 11111111 11111111 0b01110000 =?= 01110000 0x70
{Instr:2, Opt:13}
0xA2 09 FF FF FF 0x74 0b10100010 00001001 11111111 11111111 11111111 0b01110100 =?= 01110100 0x74
{Instr:2, Opt:9}
0xA2 02 FF FF FF 0x7E 0b10100010 00000010 11111111 11111111 11111111 0b01111110 =?= 01111110 0x7E
{Instr:2, Opt:2}
0xA2 01 FF FF FF 0x7C 0b10100010 00000001 11111111 11111111 11111111 0b01111100 =?= 01111100 0x7C
{Instr:2, Opt:1}
0xA4 A0 4D FF 15 0xBE 0b10100100 10100000 01001101 11111111 00010101 0b10111110 =?= 10111110 0xBE
{IsOn:1, Instr:4, Mode:0, FanSpeed:0, IsSleepOn:0, MeasTemp:21, State:255}
0xA2 12 FF FF FF 0x6E 0b10100010 00010010 11111111 11111111 11111111 0b01101110 =?= 01101110 0x6E
{Instr:2, Opt:18}
0xA2 13 FF FF FF 0x6F 0b10100010 00010011 11111111 11111111 11111111 0b01101111 =?= 01101111 0x6F
{Instr:2, Opt:19}
0xA1 A0 4D 8B FF 0x2F 0b10100001 10100000 01001101 10001011 11111111 0b00101111 =?= 00101111 0x2F
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 20 4D FF FF 0xE3 0b10100001 00100000 01001101 11111111 11111111 0b11100011 =?= 11100011 0xE3
{IsOn:0, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4D FF FF 0x63 0b10100001 10100000 01001101 11111111 11111111 0b01100011 =?= 01100011 0x63
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4D FF 85 0x24 0b10100001 10100000 01001101 11111111 10000101 0b00100100 =?= 00100100 0x24
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}
0xA1 A0 4D 8F 85 0x4C 0b10100001 10100000 01001101 10001111 10000101 0b01001100 =?= 01001100 0x4C
{IsOn:1, Instr:1, Mode:0, FanSpeed:0, IsSleepOn:0, SetTemp:30}