>And just for the end bit, the second for next loop is in error! The compiler catches typos like that very well, thank you! CRC was supposed to be local - sorry about that. >And on top of that the method does have the ability to loose sync if the >CRC contains 0x0d in the data stream. This can lead to a packet that will Not mine, because the CRC is passed through the sendc() function, which will add the 0x20 to a 0x0d. No length is necessary in the header using my description. I use it with variable-length messages all the time. In my implementation, the caller also passes a length parameter for those who need it. Andy ================================================================== Andy Kunz Life is what we do to prepare for Eternity ------------------------------------------------------------------ andy@rc-hydros.com http://www.rc-hydros.com - Race Boats andy@montanadesign.com http://www.montanadesign.com - Electronics ==================================================================