Thanks for the reply. I have looked at the sites mentioned above but they either have examples using on board UART or bitbashed TX or polled RX. so far, I think my solution has merit. I will be running the micro at 11.0592Mhz. If the incoming Bitbashed RX data is 9600 Baud, I will have 1/2 bit time max. to process any received data from the 19200 UART port.(I have less than 52 uS to process incoming UART data, this is 143 instruction cycles). As you suggest, I will simply drop UART bytes into a buffer and check for end of packet byte then set a flag to indicate packet is ready for processing. I can double buffer this message and then can continue receiving UART data until a period exists where the message can be processed. The bitbashed port can buffer data in a similar fashion. It is great to get some responses that offer constructive ideas on solving the problem or how to make the process more efficient. Many times in chat groups people will offer "advice" such as read a book, check out microchip, by a bigger micro - which does not help at all as these are all obvious things that most people would consider first. I think often people like to be seen to be actively replying to lots of subjects but don't actually have a solution themselves. Anyway, this is not a grizzle. Just appreciation that I have had a couple of sensible and helpful replies. Thanks PICLIST Regards David Huisman