EspNowAudio

From RevSpace
Revision as of 15:37, 17 March 2020 by Bertrik Sikken (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Project EspNowAudio
350px
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