The Raspberry PI Pico has some UART interfaces that you can use to do asynchronous serial communications using three or five wires. These are based on the ARM PrimeCell UART and are quite capable of running at 2Mbps, so good enough for processing a stereo CD Digital Audio stream, which needs just 1,411,200 bps, over a USB 2.0 connection. The Pico UARTs have 32 character Tx/Rx FIFOs which can be directly connected to DMA channels. There is an example of using DMA channels to transfer a packet stream over a UART . The notable thing here is that, because the hardware does almost all of the work, the amount of programming necessary is minimal: all that is involved is setting up some registers to configure the UART and the two DMA channels. I was surprised that there is no library for running an error-corrected session layer over such a link. The FreeRTOS library provides no such facility, and it will be awkward to implement something like this because it cuts across a lot of the str...