I've used similar approaches for serial UARTs, start off with the start bit on an edge int, wait half a bit time, sample, then wait a full bit time, sample, etc. Works pretty well. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist