All, I have wasted way too much time so I am hoping that someone on the list can help me. I have an application that utilizes the serial port for sending and receiving either very short (4 byte) packets or long (1000 byte) packets. I have been requested to implement CRC to the data packets. The problem I am having is that every CRC program I have been able to find provides a different answer for the same conditions. One site claims that their implementation is correct and another states that theirs is correct. Since the CRC will either be checked or generated by a separate program on the PC I need to be reasonably sure that what I have implemented is correct and repeatable. A 2 byte overhead for a 4 byte packet seems excessive so I thought of using CRC8. But will CRC8 be sufficient for a 1000 byte packet? Can anyone point me to (or provide me with) some source code that implements the CRC generation/checking (either table driven or algorithm) in "C" please since I have been asked to limit my use of assembly since it makes it more difficult for them to maintain in the future. For what ever difference it makes, I am working with the PIC24. Thanks, Phil -- -------------------------------- Long ago when men cursed and beat the ground with sticks, it was called witchcraft.. Today, it's called golf. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist