If the microcontroller doesn't have a stand-alone async serial port, it's necessary to bit-bang data in and out. When doing that there's no inherent buffering - the microcontroller has to be programmed to sample (and usually oversample) the incoming data stream to reconstruct the bits into a byte, which can then be stored. If the microcontroller has to accomplish other tasks too, and it doesn't have enough horsepower, or the programmer wasn't skilled at making it perform multiple tasks, characters can be lost. Most current microcontrollers make this so much easier!
Bob
