title: Figure out which CRC16 algorithm was used
body: <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>