I have old serial communication protocol and having some trouble finding out about checksum algorithm that has been used. I've tried several CRC16 algorithms and none of them seem to work.
Tx message format looks like:
start(10B) + messageIndex(1B) + data(5-15B) + checksum(2B) + end(1B)
Rx message has same format but only 1 data byte. Here are few examples provided (hash # added to separate the blocks; hexadecimal format):
Tx: 82 00 00 00 01 00 00 00 ff c1 # 48 # 56 57 50 41 54 5f 30 5f 31 3d 31 # 7f 12 # 83
Rx: 82 00 00 00 ff 00 00 00 01 01 # 48 # 4f # cc 68 # 83
Tx: 82 00 00 00 01 00 00 00 ff c1 # 49 # 56 57 50 41 4e 5f 30 5f 32 3d 49 55 30 30 30 # f5 16 # 83
Rx: 82 00 00 00 ff 00 00 00 01 01 # 49 # 4f # 5c 69 # 83
Tx: 82 00 00 00 01 00 00 00 ff c1 # 4a # 56 57 50 41 54 5f 30 5f 32 3d 31 # b8 1b # 83
Rx: 82 00 00 00 ff 00 00 00 01 01 # 4a # 4f # ac 69 # 83
Tx: 82 00 00 00 01 00 00 00 ff c1 # 4b # 56 57 41 4b 54 50 4e 5f 30 3d 32 # 60 6f # 83
Rx: 82 00 00 00 ff 00 00 00 01 01 # 4b # 4f # 3c 68 # 83
Tx: 82 00 00 00 01 00 00 00 ff c1 # 4c # 56 57 50 41 4e 5f 31 5f 31 3d 49 4c 30 30 30 # 6a ec # 83
Rx: 82 00 00 00 ff 00 00 00 01 01 # 4c # 4f # 0c 6a # 83
If necessary, I can provide more data. Any help or hint would be appreciated ;)
Best regards, Zlatko
EDIT The correct algorithm is regular CRC16 (0x8005 polynom). Thanks booto for correct answer.