Practicality Issues

A project log for ESP32 TNC and Audio Relay for HF/VHF Packet Radio

Wireless packet radio interface for HF/VHF/UHF transceivers, using ESP32 as KISS TNC or audio relay for use with soft modems

Ryan KinnettRyan Kinnett 04/05/2020 at 00:100 Comments

Bidirectional audio streams?

Not sure how to implement bidirectional audio over BT with ESP32's single BT radio.  ESP32 can be configured as an A2DP source or sink, but not both simultaneously, apparently.  What I originally had mind was that the ESP32 would present itself as a BT headset, such that soundcard modulation software (i.g. soundmodem, FLdigi, etc) running on the terminal PC can select the ESP32 as both the input and output audio device, and use either as needed.  Since bidirectional A2DP does not appear to be a thing, in order to make this BT audio relay concept work, I would need to either find a way to dynamically switch between source and sink modes, or attach a peripheral BT transceiver and maintain parallel BT A2DP source and sink links.

I don't know if switching BT modes dynamically will break the Windows audio device targets, or if there is some way to maintain both links even while the ESP32 is not listening on one or the other.  If I can find a way to switch between source and sink modes without breaking the Windows audio targets, then the next step would be to figure out how to trigger mode switching.  The Winlink packet mode settings allow you to specify a com port for PTT, and that com port can be set to a virtual com port routing over TCP.  That should be feasible, albeit convoluted.  This makes the other idea, attaching a second BT radio to the ESP32, seem more appealing, but I was hoping to keep the parts list and cost as low as possible.  I might experiment with A2DP streaming and mode switching later.  For now I am deprioritizing audio relay over Bluetooth capabilityIf anyone reads this and has ideas, please let me know asap!

I'm also looking into audio streaming over TCP or UDP.  I think bidirectionality will be easier to implement this way.  Similar to the concept above, I would use third-party virtual sound card software to forward encoded audio over wifi.

Not sure yet which Windows virtual audio device to use.  PulseAudio seems like a good choice but I'm not familiar with it.  Also, VB-Audio has an app for that, though it doesn't seem to support sample rates lower than 44100 Hz which is much faster than I need.  I could use suggestions..

Summary of Planned Modes:

I've narrowed down to 2 operating modes:  audio relay mode via UDP over wifi, and packet mode with KISS via BLE, TCP, and USB serial.