# 2-byte checksum

I cannot figure out what checksum is used for the following communication. As I understand, `450D` is the “stop” part. It doesn't change no matter what. And the two bytes before `450D` are the “checksum”.

I tried all checksum calculators. Nothing works.

``````530D0018BCFFFF038B00000006A11E3D0700002204040932FFFFFFB3450D
530D0018BCFFFF038B0000001A7F61920700002204040932FFFFFF3D450D
530D0018BCFFFF038B00000006A11E3D0E00002204040932FFFFFFBA450D
530D0018BCFFFF038B00000006A11E3D0E00002204040932753081E3450D
530D0018BCFFFF038B00000006A11E3D0E00012204060932753081E6450D
530D0018BCFFFF038B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38450D

530D0104D3FFFFD1450D
530D0102DDDD450D
530D0007C0FFFF010808CF450D
530D0006C2FFFFF30CBF450D
``````
• Hello and welcome to re.se. It'd be great if you could add more details in the question - where is this data from? What device is sending it? over what medium? Why do you think its a checksum? This would help us understand better about the problem you are facing. The question in its current state is likely to be marked "need details" and closed. Commented Apr 5, 2022 at 16:51

I do not know what type of CRC-8 this is. I tried everything and I found the solution. Please, see the code below. It works if you do not take 4 first bytes into calculation.

Maybe it will help someone.

``````static string CalcCrc(byte[] input)
{
int crc = 0;
for (int i = 0; i < input.Length; i++)
crc += input[i];
crc &= 0xff;
string crchex = crc.ToString("X2");
return crchex;
}
``````