EspNowAudio

From RevSpace
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Project EspNowAudio
Whyunopicture.png
Status Initializing
Contact bertrik
Last Update 2020-03-17

What

The idea is to experiment a bit more with ESP now, in particular in combination with audio transfer.

Stuff to learn:

Possible end result: A kind of zero-standby power intercom. When you press the button, an ESP8266 is powered up. It immediately starts transmitting audio from a digital I2S microphone over ESP now. The receiving end will probably be an ESP32, that receives the ESP now audio and converts into a standardized audio-over-ip protocol, e.g. VBAN.

Plans:

  • build an Arduino playground project so I can access the API from the command line and play with it
  • start with an ESP32 + INMP441

Next steps:

  • build a framework to stream the data and determine stream rate:
    • queue is filled with random data
    • queue is emptied by an espnow send process running in the main loop()
    • espnow completion callback notifies when next packet can be sent
  • investigate I2S communication from a microphone on an ESP8266
  • convert espnow data to UDP/VBAN on the receiving end
  • convert UDP/VBAN to audio on laptop

Related interesting stuff:

Result

ESP NOW broadcast just seems to work fine (not sure what prevented me from making it work earlier). I've fixed the WiFi channel to 1.

On the receiving side, I use an ESP32. On the sending side, I use an ESP8266:

  • init the esp now library
  • add the broadcast address as a peer
  • send a message
  • that's it!

Transmission appears to be very fast, taking less than a millisecond for 10 messages in a row. However, with broadcast, the sending side does not receive (or wait for) any acknowledgements, the tx callback just reports the broadcast address, the rx callback reports nothing.

References