John Walshe wrote: > > Hi Alan,Mike, > Unfortunately I'm already using the HW uart to talk to something else. > My problem here was with a s/w uart running at 9600 > John The trouble with software UARTs (bit banged I assume) is that you always have to be ready to receive a byte 'before' it gets there. If you are too late then you miss it, or half of it and thus mess up the rest of your data stream. You may not afford to have interrupts enabled, because while that is executing, the receive code may be denied the chance to recognise a valid start bit. Same with WDT timeouts. If you are expecting to receive more than one byte, buffer the incoming data stream then act on it after receiving it all. Of course, if you have an interrupt enabled (RB0INT for example) to catch the start bit, then that may make things easier. Perhaps backtrack a little and only test that your RX routine is actually grabbing the bytes - echo them back maybe. -- Best regards Tony mICros http://www.bubblesoftonline.com mailto:sales@bubblesoftonline.com -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads