There are several variations on CRC16 calculation. Some of the things you should look out for: 1: The polynomial. Although the term CRC16 is supposed to indicate the use of a specific polynomial (don't have it handy here), many people use the term CRC16 to refer to _any_ 16-bit CRC calculation. 2: The initial value of the CRC register. Again, CRC16 provides a standard, but you'll see variations. 3: What bytes are included in the computation. Often some bytes of the message are _not_ included in the CRC compution. Bob Ammerman RAm Systems (contract development of high performance, high function, low-level software) -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu