added a software UART