0
votes

I am trying to decode a 9-byte RS-485 packet that has a 3-byte CRC as shown below. Using a SW serial monitor I have decoded the parameter portion Using an online calculator.

I know can calculate Byte7 using 8-bit Checksum8 Modulo 256. My issue is I cannot determine the last 2 Bytes of CRC. I have attached my output from the reveng CRC decoder and it finds a Model but not a name. I supplied 4 full 9 Byte packets.

reveng -w8 -sF 9BYTEPACKET1 9BYTEPACKET2 9BYTEPACKET3 9BYTEPACKET4  

And as shown in the image link it returns:

width=8,poly=0x01,init=0x00,refin=false,refout=false,xorout=0x00,check=0x31,residue=0x00,name="(none)"    

Sample Data:

00 32 2a ff ff cd 27 03 f1      
00 20 03 ff ff cd ee 02 02      
00 13 28 ff ff cd 06 03 f3      
00 13 02 ff ff cd e0 02 3e     

Byte1 = ID(Can Change)      
Byte2 = Parameter(Can Change)      
Byte3 = Parameter(Can Change)     

Byte4 = 0xFF (Never changes)      
Byte5 = 0xFF (Never changes)      
Byte6 = 0xCD (Never changes)  
Byte7 = Checksum8 Modulo 256 (I can calculate this from Byte1 to Byte6)     
Byte8 = CRC (Changes with diff Parameter data)     
Byte9 = CRC (Changes with diff Parameter data)    

Any help would be appreciated.

1

1 Answers

2
votes

Your Byte8 and Byte7 are simply the sum of the preceding bytes in little-endian order. Byte9 is then the exclusive-or of the preceding bytes.

There is no CRC.