Thanks for mentioning the octocouplers implementation, it looks very interesting and I'll look it. Other options I'm aware of to avoid USB and complex drivers/protocols:
- Scanning QR codes (for example https://air-gap.it/)
- Audio codes (for example https://github.com/romanz/amodem)