Funny thing about the UART not being able to do manchester coding— since he's defining the protocol, it totally could! He'd just have to define each data byte as two wire bytes, and then translate on each end.<p>On the whole though, it seems weird to eschew software USB but then go ahead with software serial. I would definitely have just done this as FTDI -> SPI. Or thrown away the AVR, and gone with a some dirty-cheap 32-bit ARM chip that has the needed peripherals built right in. Maybe an STM32F04, which is $3.64 at quantity 1:<p><a href="http://www.digikey.ca/product-detail/en/STM32F042K6T6/497-14647-ND/4815294" rel="nofollow">http://www.digikey.ca/product-detail/en/STM32F042K6T6/497-14...</a><p>That's a 32-pin LQFP package, which is straightforward to hand-solder for an intermediate.