Обнаружил интересное.  Гер  Бенчофф в 2014 году знатно упоролся и написал библиотеку...  реализующую программный uart   ....через  аудиовыход ...на  js
У меня нет слов. Если это работает и сейчас,  то это будет гениально.
Да,  скорость не превышает 9600,  да выбор языков разработки и сред  резко сужается,  да, существуют ограничения на автопроигрывание  и прослушивание, но при этом появляется хоть какая то свобода  использования старых китайских смартфонов  в робототехнике.

подробности:  http://forum.espruino.com/conversations/257732/ 

upd
Итак...
1. фича входит в  espruino ide. Для своих целей можно попытаться выдернуть  файл
https://www.espruino.com/ide/EspruinoTools/core/serial_web_audio.js  и разобраться как оно работает.
2. Есть нескромное  подозрение  что при  некоторой удаче эта эмуляция   uart  будет  корректно работать с  программной реализацией uart под названием  picoUart