Robbie A checksum is simly the addition of a byte or two placed in the data packet that equals the sum (or a derivitive from it) of the data and probably the address bits. This can then be recalculated by the receiving processor and "checked" against the received value. If it matches, then the data is assumed to be OK. If it doesn't, then data corruption has occurred. There are variations used to acheive this, a common one is that the "checksum" is modified so that all address, data and checksum bytes add to 0 (or 0xFF etc.). This can simplify the receive processing sometimes. Cyclic Redundancy Checks (CRCs) can also be used but are more mathamatically intensive and are normally used for larger packet sizes or where a higher degree of protection is required. A simple one or two byte checksum is normally sufficient for short data bursts. Richard P Hello all, Apologies if you have seen this already, but we've just swapped our network and provider so lot's of e-mails have gone blindly into cyberspace never to be seen again! Can anyone give me a little help with regards to programming a PIC for a radio data modem application. I have written the code to convert a set of parallel inputs into a series of data for transmission and have formed the data stream such that the packet structure is ,, but talking to someone they mentioned that in order to maintain data integrity I should implement a Checksum at the end of the data stream for error checking. Unfortunately I don't have any previous experience in radio protocols and don't know how to implement this into the PIC code, can anyone give me a further insight into how this works and possibly some code samples to determine the manner in which this is incorporated. Many Thanks Robbie Banks Design Engineer Axiom Process Ltd. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.