I'm building my own TCP/IP stack in JAL, and have mentioned a number of problems / instabilities in the past week, that no one on this list has seen :-( After studying the uChip TCP/IP stack, I found 1 trick that's not mentioned in the errata. === quote ==== // Validate the data returned from the ENC28J60. Random data corruption, // such as if a single SPI bit error occurs while communicating or a // momentary power glitch could cause *this to occur in rare circumstances*. if(header.NextPacketPointer > RXSTOP || ((BYTE_VAL*)(&header.NextPacketPointer))->bits.b0 || header.StatusVector.bits.Zero || header.StatusVector.bits.CRCError || header.StatusVector.bits.ByteCount > 1518 || !header.StatusVector.bits.ReceiveOk) { Reset(); } === quote ==== After implementing this trick, my system has become a lot more stable (not completely). But no wonder, ... ... this trick simple resets the complete system every 10 seconds or so, because messages like IPX-RIP, NBIPX will trigger this reset !! I can't hardly call this "*to occur in rare circumstance*" ;-) Is this really the way to get the ENC28J60 or am I missing something else ? thanks, Stef Mientki -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist