Computer Interfacing
Discussions about interfacing and electronics
 

Air conditioning checksum

Looking for checksum


 

       Computer Interfacing Forum Index -> Error detection and correction
Author Message
V_MAX_V
Guest







Oct 26, 2009 6:46 pm

I'm reverse-engineering a serial comunication from an air conditioner and his controller, I've decoded data, but I cannot understand what kind of checksum is this, is there someone can help me?

Data is in decimal format, checksum is 1 byte long, I've tried all kind of crc.

These are requests:
0 0 17 72
0 0 18 104
0 0 32 131
0 1 32 119
128 128 0 18

These are answers:
0 0 16 33 1 0 30 0 10 0 40 0 0 0 0 0 0 70 10 50
0 0 16 33 1 0 32 0 10 0 40 0 0 0 0 0 0 70 10 144
0 0 16 33 1 0 33 0 10 0 41 0 0 0 0 0 0 70 10 215
0 0 16 33 1 0 34 0 10 0 45 0 0 0 0 0 0 70 10 32
0 0 16 33 1 0 37 0 10 0 40 0 0 0 0 0 0 70 10 165
0 0 16 33 1 1 35 0 10 0 40 0 0 0 0 0 0 70 10 84
0 0 16 33 1 1 37 0 10 0 40 0 0 0 0 0 0 70 10 227
0 0 16 33 1 1 37 0 10 0 41 0 0 0 0 0 0 70 10 75
0 0 16 33 1 1 37 0 10 0 42 0 0 0 0 0 0 70 10 0
0 0 16 33 1 1 37 0 10 0 43 0 0 0 0 0 0 70 10 168

64 0 16 32 11 1 0 25 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 75
64 0 16 32 11 1 0 26 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 147
64 0 16 32 11 1 0 27 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 74
64 0 16 32 11 1 0 28 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 144
64 0 16 32 11 1 0 29 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 73
64 0 16 32 11 1 0 30 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 145
64 0 16 32 11 1 0 32 0 10 0 1 0 0 0 0 0 128 9 0 31 1 243 142
64 0 16 32 11 1 0 30 0 10 0 1 0 0 0 0 0 0 9 0 31 1 243 46
64 0 16 32 11 1 0 31 0 10 0 1 0 0 0 0 0 0 9 0 31 1 243 247
64 0 16 32 11 1 0 32 0 10 0 1 0 0 0 0 0 0 9 0 31 1 243 49
64 0 16 32 11 1 0 33 0 10 0 1 0 0 0 0 0 0 9 0 31 1 243 232
64 0 16 32 11 1 0 34 0 10 0 1 0 0 0 0 0 0 9 0 31 1 243 48

64 0 17 7 8 56 41 128 29 132
64 0 17 7 8 56 41 180 25 3
64 0 17 7 8 72 38 80 33 72
64 0 17 7 8 72 38 128 33 25
64 0 17 7 8 72 38 104 33 128
64 0 17 7 8 72 38 136 34 5
64 0 17 7 8 72 38 248 33 229
64 0 17 7 8 92 41 48 24 183
64 0 17 7 8 92 41 52 23 168
64 0 17 7 8 92 41 128 29 62
64 0 17 7 8 92 41 132 28 88
64 0 17 7 8 92 41 136 25 199
64 0 17 7 8 92 41 152 33 157
64 0 17 7 8 92 41 160 24 210
64 0 17 7 8 92 41 168 22 116
64 0 17 7 8 92 41 184 24 0
64 0 17 7 8 92 41 204 26 134
64 0 17 7 8 128 41 20 26 192
64 0 17 7 8 128 41 132 28 144
64 0 17 7 8 128 41 244 29 99
regregex
Preferred Member



Joined: 30 Oct 2007
Posts: 184
Location: London, UK

Oct 30, 2009 4:00 pm

Hello Max, welcome to the forum!

With the help of your examples I have solved the CRC. The polynomial is listed in one of Philip Koopman's papers (as 0xCD or WCDMA-8) and correspondingly in the package he references, IT++.
Code:
   Name   : "CRC-8/WCDMA"
   Width  : 8
   Poly   : 9B
   Init   : 00
   RefIn  : True
   RefOut : True
   XorOut : 00
   Check  : 25
(For an explanation of this record, see A Painless Guide to CRC Error Detection Algorithms by Ross Williams.)
(For a generic implementation in C, see A Painless Guide or the Calculator page.)

Note: While the above record calculates correct checksums for the given examples, IT++ appears to have RefIn=False.

HTH

--Greg
V_MAX_V
Guest







Nov 04, 2009 7:13 am

Thank you much Greg, I tried with a parametric crc algorithm without RefIn.

My home automation plant is very grateful.

       Computer Interfacing Forum Index -> Error detection and correction
Page 1 of 1



Running on php BB © 2001, 2009 php BB Group
   Lammert Bies     Interfacing     Sitemap     Forum