Realtime stereo audio streaming using ESP 8266
Posted: Tue Jan 10, 2017 12:05 pm
Hi, I have been thinking of setting up a *realtime* wireless(read Wifi) stereo audio streaming using Arduino Due or Teensy3.2 board, so that i can hear what my TV plays even in the kitchen
(I'd refrain from using using off the shelf Bluetooth modules as I also want this to be a learning exercise)
Disclaimer: The premise on which I ascertained it to be feasible is that even a sampling rate of 44Khz @10bit depth we are talking of data rates of 440Kbps which I believe should be achievable.
Brief: The idea is to sample the stereo audio from the headphone jack connected to phone/TV etc. using an MCU post voltage conditioning and level shifting.
Now, the digital data will be sent over a wifi link (ESP8266 or NodeMCU) to another MCU with similar ESP/NodeMCU frontend, where it will be converted back to Analog stereo signal and fed through the stereo jack to another set of speakers. I came across various projects which are sampling mono channel audio and saving it or playing an saved audio file using an arduino uno/ equivalent, but none come close to my requirements
Now my questions to the informed members here:-
a) Does it sound feasible?
b) Recommendations on MCU AVR or ARM
c) What should be the preferred wireless module of choice? ESP series(8266-01 or NodeMCU with 12E) or Nordic NRF24L01+?
d) Is it advisable to use the Arduino Due at the receiving end as it has Two DAC outputs? (Recommendations on minimum MCU required to achieve it)
I have not dwelled upon the following issues, which I am aware of, but not knowledgeable about:
a) The effect on performance due to latencies involved in transferring data at both ends from RF frontend to MCUs? Should I use SPI or Serial? As the data will be send very frequently the number of transfers will be large IMO with small payloads
b) Limited SRAM of the MCU to buffer the sampled signal/ received data.
c) ADC sampling rate achievable from the MCU.
I understand that a lot of complexities (probably) have been left untouched so I'd request the members here to enlighten.
(I'd refrain from using using off the shelf Bluetooth modules as I also want this to be a learning exercise)
Disclaimer: The premise on which I ascertained it to be feasible is that even a sampling rate of 44Khz @10bit depth we are talking of data rates of 440Kbps which I believe should be achievable.
Brief: The idea is to sample the stereo audio from the headphone jack connected to phone/TV etc. using an MCU post voltage conditioning and level shifting.
Now, the digital data will be sent over a wifi link (ESP8266 or NodeMCU) to another MCU with similar ESP/NodeMCU frontend, where it will be converted back to Analog stereo signal and fed through the stereo jack to another set of speakers. I came across various projects which are sampling mono channel audio and saving it or playing an saved audio file using an arduino uno/ equivalent, but none come close to my requirements
Now my questions to the informed members here:-
a) Does it sound feasible?
b) Recommendations on MCU AVR or ARM
c) What should be the preferred wireless module of choice? ESP series(8266-01 or NodeMCU with 12E) or Nordic NRF24L01+?
d) Is it advisable to use the Arduino Due at the receiving end as it has Two DAC outputs? (Recommendations on minimum MCU required to achieve it)
I have not dwelled upon the following issues, which I am aware of, but not knowledgeable about:
a) The effect on performance due to latencies involved in transferring data at both ends from RF frontend to MCUs? Should I use SPI or Serial? As the data will be send very frequently the number of transfers will be large IMO with small payloads
b) Limited SRAM of the MCU to buffer the sampled signal/ received data.
c) ADC sampling rate achievable from the MCU.
I understand that a lot of complexities (probably) have been left untouched so I'd request the members here to enlighten.