IrDA receiver always receives one dummy byte before starting to work properly. This dummy byte is usually FF. This dummy byte is received because the BitTimer needs to be enabled with a signal that is low. And since the receiver is ON, it thinks this is a data byte and receives this data. The time taken for the receive buffer to get set is the time taken for one byte to be received.
This dummy byte serves to synchronise the IrDA circuitry and, according to the standard IrDA protocol, this is not considered a bug.
There is a way to avoid receiving the dummy byte. To do this, you will have to change the Start API of the IrDA user module.
1. Remove the receiver start
2. start the BitTimer and enable interrupts for this BitTimer.
3. On the first 'Compare true' interrupt for the BitTimer, start the UART.
4. Also, disable interrupts for this BitTimer as soon as the receiver is started.