Use UART and GPIO low-level drivers for hardware abstraction