I'd be more concerned about what you're wanting to do with the data, and how big the data is. Getting the data itself can't be that bad. You'll need a timer that you can set to interrupt you when you should go check the input line, and an edge triggered int to start the timer off when you see the start of the flag byte. You're going to have a guaranteed maximum run time in any state, so you need to assure that you don't drift significantly during that time. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist