Figure out which CRC16 algorithm was used
<p>I have a serial communication protocol and having some trouble finding out about checksum algorithm that has been used. I've tried several <code>CRC16 algorithms</code> and none of them seem to work.</p>

<p>messages looks like this ( in Hex ):</p>

<pre><code>55 13 04 03 09 f1 01 00 00 06 50 08 00 02 00 00 00 cc 1a 
55 13 04 03 09 f1 01 00 00 06 50 00 00 02 00 00 00 94 3b
55 13 04 03 09 f1 02 00 00 06 50 08 00 02 00 00 00 7f e4 
55 13 04 03 09 f1 02 00 00 06 50 00 00 02 00 00 00 27 c5
55 13 04 03 09 f1 03 00 00 06 50 08 00 02 00 00 00 ee b1
55 13 04 03 09 f1 03 00 00 06 50 00 00 02 00 00 00 b6 90 
</code></pre>

<p>I know that the start byte is <code>0x55</code> and the 2nd byte is the message length</p>

<p>If necessary, I can provide more data. Any help or hint would be appreciated ;)</p>

<p>Best regards, Amir</p>