Amazing as usual, I gave up on connecting the tiny microphone, but with this library you make it work!! Thanks again for your amazing way of presenting just what we need:)
I have been wanting to build a "Arduino based" MP3 player for awhile, but didn't see the tools necessary. This video is exactly what I needed. Thank You, Andreas.
Internet radio on the Esp32 is amazing. check out the Adafruit i2s stereo decoder board, connected to a hifi amp, you get great sound quality. makes you relaize how bad DAB is
Perfect, many many thanks... Yesterday i played around with this Ai Thinker board but didnt had any luck because i was unable to get the esp-adf to work. I will try it with this library.
This is really useful. I have been putting off making a smart mp3 player play sleep music at night (along with controlling some ambient lights and switching the bedroom fan on/off). I have purchased a UDA1334A I2S Stereo DAC breakout a while back and tested it tonight as you suggested and it works perfectly! Thank you. I do wish however I was able to figure out how to start the mp3 stream via an MQTT command! If you have any suggestions about this, I would gladly hear them!
Wow, sound using I2S has now been demystified. Great work. Creating comprehensive single source of documented and working solutions for audio through internet is great time saver. I use to have to scour the internet and look for information that a lot of times did not work properly or was difficult to adapt to my projects due to code complexity, bugs and undocumented functions. Thanks for spending the time and money so others don't have to.
I'm using this library for streaming i2s audio from a FM Radio chip to Bluetooth Speakers 🔊 but sometimes it will freeze up as Andrea experienced, at least when I was testing 6 months ago. I also use this library to stream Internet radio to Bluetooth speakers 🔊 or to a I2S amplifier which works well. Love to see more people get involved and keep improving the library.
On the note of Master/Slave naming scheme….the company I work with calls it Master/Member which I believe is a better encapsulation of what the phrase conveys….just a thought…
Great find, it's a skill finding the solution, sometimes you create it - often you reinvent a wheel already out there and you find that wheel, so thank you. Now need to get some ESP32's (already planned), been playing with pico's and the ESP32's predecessor and been fun. But the built-in wifi and Bluetooth on the ESP32, sure does offset the PICO's lovely PIO interface perks and performance. One question - what is a good external ADC at a good price balance for resolution? Also looking at ADC's with multiple channels - they seem to poll one channel at a time. What I want to do is poll 4 ADC ports in sync so that the value I get from all 4 is the exact (close as beyond clock jitter that I want as low as possible) time. What I want to do is read 4 piezo elements (cheap mic's if you like) located around a hard surface like a blackboard and from that, hopefully, work out where contact is made to the surface. Turning any hard surface into a touch interface. Now the ideal plan is to be able to read accurate enough in sync so that I can get a good accuracy of the surface noise location and be able to write upon the board and get a digital representation of that via the sound location of the 4 piezo elements. With that, a cheap and simple device that could digitise any blackboard work. So any suggestions, or pointers and insights etc, would be extremely well received. Thank you in advance.
Been working on that myself a few years back, wanted to run it on an arduino for a drum synth input that takes drum surface polar coordinates into account. Life got in the way, but if I were to revisit that idea (some day!) I'd use separate controllers on a common clock to handle all the peak sensing and compare timestamps a few millis later. Might just cut it without lagging too much. I just realized how much faster the signal would move through a solid, so instead of timestamps you'd be comparing levels, of course. The system would need calibration anyway. To cut costs, 3 sensors inputs could be used instead of 4, if accuracy and sensitivity are high enough.
@@ronnetgrazer362 Yip, clock sync is golden for this - cool idea for drums and be funky to see an overhead display of the drummers' actions from another perspective. Hopefully, motivating you into rekindling that project, I know what it is like, many things on the go and flip between them depending upon time, mode and resources.
@@PaulGrayUK Exactly, there's always another interesting project fighting for attention! I made a million edits to the previous comment btw, sorry for that. And i just now realized that sufficient precision would allow you to fit all 3(?) sensors in the middle of the sensing surface, spaced apart just enough to fit the main PCB in between. Don't know if you figured 4 corners means one sensor on each of them like I did mere seconds ago, but I don't see why you couldn't sense outside of the array as long as specs allow for it.
@@ronnetgrazer362 I was looking at 4 sensors around the outside, so any sound which will be in contact with the surface would have a delay difference for each sensor and with that, want them far apart around the outside and for my objective - 4 should be 1 more than enough and 1 more for a level of accuracy. But need to play and see if 4 is the sweet spot or 5 or 3. What the offset in costs and more so accuracy and see how those plots out. Drums bit more complicated. Don't want to add anything that will change the sound of the drum. So maybe a laser mic would be the way for those and can have under the drum tracking from the underside - how many I'd start with 3, should cover the main area drummers like to play upon the skin (can look at used drum skins to get good idea or area you are targeting to cover). It May work, may not, but be fun to play with as everybody loves lasers. :) However - like any well-formed plan, there will be exceptions - and drummers doing a rimshot would be one that would prove to fall into that path of exceptions. But may also be detectable by the pattern it plays out upon the laser mic array. One of those, try and see.
As always watching your video and ideas are creeping, which will cost me some time .... Could it handle streaming webradio from internet and send it to a bluetooth speaker ? Resources Bottlenecks ? Thanks for the allied swiss enabling.
Amazing video! And I loved the Master/whatever reference :) Do you think it would be possible do use an ADC module with i2s, si5351 oscilator, mixer chip like ne602 and an ESP32 to build a SDR receiver only with modules?
Thank you for bringing Phil's library to my attention at least. You''ve opened up some possibilities for a lot of projects. (One thing, at 9:40 I couldn't get Frankie Laine singing Ghost Riders in the Sky out of my head.)
Thank you for this. I've been trying to finish a project using other available ESP32/ESP8266 audio libraries but run into problems with reliability or getting the functionality I want. Hopefully this library will help me to finally get it working.
Mist, jetzt muss ich schon wieder ein neues Gitarreneffektgerät bauen. Danke für die Infos. Hast Du schon Erfahrungen zwischen der Latenz Input und Output? Also ADC -> I2S -> ESP.Copy -> I2S -> DAC.
Nein, ich habe keine Latenzmessung gemacht. Schau mal in die "Maximilian" Beispiele rein. Das ist ein Audioprojekt mit vielen vorgefertigten Effekten...
I built the blue toothe speaker in your video with the esp32 dev board and max98357a! I made the connections on a breadboard and uploaded the A2DP code to it! It worked for about a minute and started dropping out. Now I cant get it to show in the device manager on my phone or laptop. Looks like i got some work ahead for me. Pretty impressive how easy you made it though, since I'm new to micro controllers and programing! Awesome projects you have! 👍
@@AndreasSpiess wow cool! I wasn't expecting a comment back from the creator! 👋😀 I think the project simply wasn't getting enough current as I was using a 7805 voltage regulator to power both the boards up! Probably a brown out issue but if I still have problems I'll definitely contact phil. pleasant surprise to hear from you! Thanks for your input!
@@AndreasSpiess I got my project working! 😀👍 I powered the circuit directly without 7805 voltage regulator and tested it all day and didn't drop once! Very cool project and easy all thanks too your wonderful and helpful channel! Keep up the great work! Your channel makes a difference and is much appreciated! Now I'm going to make a more permanent version of the circuit with my first attempt at making homemade pcbs and soldering the stand alone esp32 and amplifier modules to it!
Very interesting. Is the ESP32 fast enough to decode AAC LC and HE-AAC now in software? I have seen other ESP32 radio projects that rely on the VS1053B decoder board to do the AAC decoding. It would be a very neat solution to be able to avoid having extra decoder boards in a small internet radio box.
Please make also a video about the minimal setup like A2DP sink for ESP32-A1S module as they have two different models because of the two codecs, one with AC101 and the new ES8388. Thank you!
Hi Andreas, wenn er das mit dem Bluetooth noch hin bekommt, hat er das Schweitzer Taschenmesser neu definiert. Das mit dem Bluetooth in zu Audio Out ist dass was ich auf Arduino brauche.
Das läuft in anderen Kombinationen. Schau einfach ab-und zu in seine libraries und die issues. Ich warte auch drauf, denn dann kann man sich den Ausgangsverstärker und die Buchse sparen...
I noticed that lately I keep hitting videos with this specific guy with a Swiss accent. After the 5th video I decided, "Well... I guess this guy with a Swiss accent has earned a subscription..." :D Thank you for all of the work you do!
Interesting! Is the ESP32 + I2S microphone able to recognize some voice commands? Should ESP32 use TensorflowLite to do that? Is ESP32 powerfull enough for this task? Thx.
@@AndreasSpiess I would like to count accuratly how many times a day my neighbour his dog barks because nobody believes me when I say it must be hundreds of times ... anybody who can do that with ESP32 or RP please let me now....payed project :-)
thank you and it is really helpful. and also do you have plan to use a2dp and BLE serieal communication at the same time? since esp32 support dual bluetoth but there are not imformation about it (especially with arduino IDE) thank you again ser
I would really like to use a capability like this with Home Assistant to build small devices that I could use to play audio announcements, alerting tones, etc. and maybe also use them for music playback as a flexible media_player type device. More projects to investigate! Thanks for the introduction to this capability that I wasn't previously aware of!
Wonderful video!! I'm stuck though: I have the ESP32 v2.0.10 by Espressif installed in the latest Arduino IDE's Board Manager but I do not find the AI Thinker Audio Kit board listed. What board do you choose or is there another board configuration that needs to be installed instead of or in addition to the Espressif one? And does the board program via the UART port or is it necessary (or recommended) to program via the JTAG interface pins on the board? I keep searching the Internet for details on this but come up empty handed. Thanks in advance for any direction that could be provided on this.
The board can be programmed via USB. I use the ESP32 dev module board definition. You need to install 2 libraries and try which board you got. Information and support is on Github
I always enjoy receiving a new episode from your channel. I just have to remind myself: sit down and pay attention! Thank you for such an information-rich source!!
Dear Andreas, thank you for your work and the roofless enthusiasm for new technologies. As always - great video. There's also another audio feature aavailable for ESP32's - ESP TEL - I think you may find it very useful considering you're also a biker and this is a great solution for the bikers pack to use - all together with the BT headsets, multi microphone settings for noice cancelation inside helmet and voice recognition for controlling navi inside a phone for example ir certain bike functions like extra lights with color patterns or whatever else (more about it here:ruclips.net/video/jVVwDic1aO4/видео.html).
Hi Andreas - I have not seen any videos on the ESP32 ability to play notes. It can produce the 12 notes of the scale across 8 octaves. It uses just 2 commands - in setup - ledcAttachPin(TONE_OUTPUT_PIN, TONE_PWM_CHANNEL); and ledcWriteNote(TONE_PWM_CHANNEL, NOTE,Octave); // where note is one of the 12 from NOTE_C to NOTE_B. By using channels 1 and 9 you can produce stereo - eg independent channels - one set for the left hand and one for the right hand. Connect the GPIO output pins of the ESP32 and earth to an amplifier. By creating an array of NOTES[12] you could create a stereo laser harp or Theremin. Have you done a RUclips video on this feature of the ESP32 ? Perhaps I have missed it.. Best regards... Keith (Australia).
Yes, the ledcAttachPin command is very versatile. I never did such a video. I only once used a library which played some titles. But this is many years back.
Wow, amazing idea. Do you think it's possible implement a full-duplex audio? I have in my mind on baby monitor with respond possibility by mom . Imagine a small bear with this object. Of course, it's important avoid wave contamination to baby but my be a solution to night nightmare
I did not find an example for both directions and, as you saw, there is also some delay. So another technology would probably be better for your project.
Slave - ETYMOLOGY OF SLAVE "The classification and stigma of slavery is referred to in medieval Latin as sclavus, in relation to the Byzantine Greek sklábos, being a derivation of sklabēnós, which translates as ‘Slavic’, originally as a self-reference for the Slavic people..."
Would be interesting to see the impact of this continuous streaming on power draw. I always thought it would be cool to build an Internet Radio for Pandora, and I suspect the ESP32 would be easier on batteries than, say, a Pi Zero W.
So you mentioned that some pins are a no go for the ESP32 , how can we find them i looked up the data sheet and besides being massive it got me even more confused. Also besides those 2 pins are there any other no go pins? On a side note ESP32 matrix tutorial would be interesting. Keep up to good work, great video again!
Very nice library, I have to try it with my AtomEcho. I have to be careful, though. I fried the neopixel on the Echo when I installed the wrong audio example for the i2s library and the default config tried to play sound on it.
When bluetooth won't connect I have to usually go ask my wife to turn off her phone's bluetooth; (often on the other side of the house since we share bed headphones). The particular ones we have are annoying because it auto-connects on power on, and usually her iPhone connects before my pixel. The biggest problem is you cannot force a bluetooth reset while connected, and the connection happens before the 'press and hold' functionality can force the chip to reset. ...Was your wife's phone connecting to your speaker today when yesterday it worked?
Andreas, Thank you for sharing your work here. I have been studying many video and other sources about integrating the INMP441 to the RP-Pico or ESP32. In all cases I remain confused with the INMP441's I2S 24 bit data output being mapped directly to 16 bits. Could you explain this? Thanks
Hello again, @AndreasSpiess, I am deciding to buy from your links all the componentes for my project, but I still have a question, I see that you used the ESP32 Wroom board according to the link. But before buying, can you answer a couple of questions? *1 Which board did you select in the IDE list to compile correctly? *2 Did you modify, or add any line of code in the configuration so that it compiles correctly? I try to compile for Wroom or for generic ESP32, and it returns a compilation error for that board. After I managed to compile, I bought all the components from your links. thanx Andreas!
1. I always use the ESP32 Drv board 2. You have to read the error message and correct the error. No errors should occur because of the board. 3. Thanks for using the links!
Hello Andreas, great video - as always! Did you or anyone else had success in streaming music via internet and playing it back via a connected bluetooth speaker (using ESP8266 Lib)? I'm trying to build my own ESP32-based web-radio player and try to use an existing bluetooth speaker for playback. It'S hard to finde a complete and working code example on the internet.
Hi ive done coding for recording to the flash memory of the ESP32 and successfully saved the recording with file sizing utilizing SPIFFS as file forwarding system. But it seems like wifi.h FSbrowser(seperate code) wipes out the flash of the esp32 when compiling over to the ESP32 as the file size is then shown as 0B.
Great job as always. I downloaded the libary on 09/28/2022 but I did not find the example streams-generator-csv. Can you tell me how to get it back. Thank you
I find Phil's examples impossible to use, as a beginner programmer. He does not cover the whole topic, and leaves out critical information for setting up the example. Such as: what board do you set the Arduino IDE to for the ESP32 Audio Kit??? I cannot compile any of his example sketches because of this!🤔 Phil could really use some help from you, cleaning up loose ends, and making the examples much more usable and understandable!
Can this be used to stream chunks as well without interruptions? I have been building on ESP32 S3, playing wav file works but audio gets laggy & lossy while streaming chunks all the way from server to speaker
hello, i saw that in the esp32 that i use i have 2 i2s buses, do you think that i can use 4 mic (for example inmp441)? and if so how many microphones could i use with this card (ttgo v1.7.1)? thank you
Hi Andreas, thanks for the nice video and content. Here are some questions: 1 - How many ohms has the speaker that you used at valse.mp3 example? 2 - Is there a limitation in ESP32 about speakers impedance? 3 - It is possible an audio comunication between LoRa Rf? A conversation between two people for example. Here is the guy with Brazilian accent :)
Hi Helmuth I am no expert but checkout the i2c audio module he used the MAX98357A. "Output Power: 3.2W at 4Ω, 10% THD, 1.8W at 8Ω, 10% THD, with 5V supply". I highly doubt LORA is good for that application since it is very low transfer rate. LORA would be better for sending text messages.
The stream-generator-csv seems like doesnt exist in the git you had provided @Andreas Spiess if there is any other git zip folder kindly help me out with it, also i am using inmp441 as my microphone i had given my pin connections accordingly, by referring an another vedio, i used the code you provided for inmp441, while doing so, i am getting all zeros in the serial monitor, finally i want to perform inmp441 with esp 32 besides hearing the sound with the help of the website you provided, kindly help me out with this. Thank you,
I downloaded the library in the form of a zip file. Then I unzipped the folder and copied it into the: arduino\libraries\ After that I launched the arduino IDE, tried to open and compiled few example projects. I found out none of the examples I tried were compiled -- They would asked for many missing include files. Questions: Are these sample projects structured right? seemed like the directory path struncture were all wrong !!! Could somebody tell me what I did wrong?
HI - if there is a buffer for connected Bluetooth MAC adresses try to clear that. - I had this inconsistencies on linux. After that reconnecting / repair was working fine . I dunno if the bluetooth chip you are using has this inbuildt funtionality. in linux I had to write a script to clear the buffer every 24 hrs.
Love this channel! I decided to buy the ESP32 Audio Kit, but cant get the external microphone to work. Were you able to get the external input to work on your board? I can get the built in mics to work on Channel 2, but Channel 1 does not work for me. Am I doing something wrong?
I love that you don't just cover one topic in each video and make a "series". Instead you give us a comprehensive guide end to end. Thank you!
Thank you for your feedback. Sometimes not easy in 15 or less minutes ;-)
I second to that 👍🏻
Ah, a library that is properly documented. How Swiss!
I agree. Its documentation is good. And I think also the examples. It helps a lot for the beginning...
Kudos for explaining master clock on the ESP32, and doing it well.
You are welcome!
I've used Phil's library for a few projects - it's really good work and removes a lot of the complexity of I2S.
Thank you for your feedback! I am also a subscriber of your channel ;-)
@@AndreasSpiess You've no idea how happy that makes me. I feel like I have won the internet :)
A video jam-packed with information and ideas! Thanks.
Glad you enjoyed it!
Yeah! Another ESP32 video! Thanks for creating it. Recording and playing sound is a very useful topic.
Many viewers agree that this is a useful library!
Amazing content density. Thanks! I am going to try this out this week. I wish I had viewed the video the day it came out... So very busy 😑
We are all busy. No problem ;-)
Nice topic, so thanks for all the insights, Andreas.
Glad you enjoyed it! I also see some interesting projects...
This is really getting a Swiss channel... an accent, a library...
What a great video and really usefull !
You are right! This was truly by chance. There is not a lot of ESP32 audio content around...
Amazing as usual, I gave up on connecting the tiny microphone, but with this library you make it work!! Thanks again for your amazing way of presenting just what we need:)
I hope you will be successful!
Awesome video Andreas.
Thank you very much!
I have been wanting to build a "Arduino based" MP3 player for awhile, but didn't see the tools necessary. This video is exactly what I needed. Thank You, Andreas.
You are welcome!
Internet radio on the Esp32 is amazing. check out the Adafruit i2s stereo decoder board, connected to a hifi amp, you get great sound quality. makes you relaize how bad DAB is
These I2S decoders seem to have a decent quality, especially for the price...
For those who were confused like I was, streams-generator-csv has been renamed streams-generator-serial.
Thank you for the info!
Perfect, many many thanks...
Yesterday i played around with this Ai Thinker board but didnt had any luck because i was unable to get the esp-adf to work.
I will try it with this library.
Use the respective examples of the library!
@@AndreasSpiess Yep, they are working perfectly fine 👍
This is really useful. I have been putting off making a smart mp3 player play sleep music at night (along with controlling some ambient lights and switching the bedroom fan on/off). I have purchased a UDA1334A I2S Stereo DAC breakout a while back and tested it tonight as you suggested and it works perfectly! Thank you. I do wish however I was able to figure out how to start the mp3 stream via an MQTT command! If you have any suggestions about this, I would gladly hear them!
Maybe you open an Issue on Phil's GitHub. I am sure you are not the only with this question...
Wow, sound using I2S has now been demystified. Great work. Creating comprehensive single source of documented and working solutions for audio through internet is great time saver. I use to have to scour the internet and look for information that a lot of times did not work properly or was difficult to adapt to my projects due to code complexity, bugs and undocumented functions.
Thanks for spending the time and money so others don't have to.
You are welcome! All the work was done by Phil!
If combined with the esp32-cam and a sip library the next step would be a ESP32 Video Doorbell😁
I thought of the esp32cam too due to integrated SD card reader!
Just do it (and document it ;-)
Share it pls
I'm using this library for streaming i2s audio from a FM Radio chip to Bluetooth Speakers 🔊 but sometimes it will freeze up as Andrea experienced, at least when I was testing 6 months ago.
I also use this library to stream Internet radio to Bluetooth speakers 🔊 or to a I2S amplifier which works well.
Love to see more people get involved and keep improving the library.
Cool projects! Let's hope the A2DP issue can be resolved. Maybe you can provide more debugging info to Phil?
Excellent video, very interesting, pity I don't have time to "play" with this, but it surely will be on my preferred list or pension hobby list.
Cool. A bucket list is very important ;-)
On the note of Master/Slave naming scheme….the company I work with calls it Master/Member which I believe is a better encapsulation of what the phrase conveys….just a thought…
So they added a new variant. Interesting!
Very cool! Wonder minimal sized phased array needed to integrate with multicast udp over ku and ka microwave downlink. Could be useful...
I do not understand your comment :-(
Great find, it's a skill finding the solution, sometimes you create it - often you reinvent a wheel already out there and you find that wheel, so thank you.
Now need to get some ESP32's (already planned), been playing with pico's and the ESP32's predecessor and been fun. But the built-in wifi and Bluetooth on the ESP32, sure does offset the PICO's lovely PIO interface perks and performance.
One question - what is a good external ADC at a good price balance for resolution? Also looking at ADC's with multiple channels - they seem to poll one channel at a time. What I want to do is poll 4 ADC ports in sync so that the value I get from all 4 is the exact (close as beyond clock jitter that I want as low as possible) time. What I want to do is read 4 piezo elements (cheap mic's if you like) located around a hard surface like a blackboard and from that, hopefully, work out where contact is made to the surface. Turning any hard surface into a touch interface. Now the ideal plan is to be able to read accurate enough in sync so that I can get a good accuracy of the surface noise location and be able to write upon the board and get a digital representation of that via the sound location of the 4 piezo elements. With that, a cheap and simple device that could digitise any blackboard work.
So any suggestions, or pointers and insights etc, would be extremely well received.
Thank you in advance.
I made a video about external and internal ADCs. Parallel is always hard. But maybe you do not need parallel, just only s small difference.
Been working on that myself a few years back, wanted to run it on an arduino for a drum synth input that takes drum surface polar coordinates into account. Life got in the way, but if I were to revisit that idea (some day!) I'd use separate controllers on a common clock to handle all the peak sensing and compare timestamps a few millis later. Might just cut it without lagging too much.
I just realized how much faster the signal would move through a solid, so instead of timestamps you'd be comparing levels, of course. The system would need calibration anyway. To cut costs, 3 sensors inputs could be used instead of 4, if accuracy and sensitivity are high enough.
@@ronnetgrazer362 Yip, clock sync is golden for this - cool idea for drums and be funky to see an overhead display of the drummers' actions from another perspective. Hopefully, motivating you into rekindling that project, I know what it is like, many things on the go and flip between them depending upon time, mode and resources.
@@PaulGrayUK Exactly, there's always another interesting project fighting for attention!
I made a million edits to the previous comment btw, sorry for that.
And i just now realized that sufficient precision would allow you to fit all 3(?) sensors in the middle of the sensing surface, spaced apart just enough to fit the main PCB in between. Don't know if you figured 4 corners means one sensor on each of them like I did mere seconds ago, but I don't see why you couldn't sense outside of the array as long as specs allow for it.
@@ronnetgrazer362 I was looking at 4 sensors around the outside, so any sound which will be in contact with the surface would have a delay difference for each sensor and with that, want them far apart around the outside and for my objective - 4 should be 1 more than enough and 1 more for a level of accuracy. But need to play and see if 4 is the sweet spot or 5 or 3. What the offset in costs and more so accuracy and see how those plots out.
Drums bit more complicated. Don't want to add anything that will change the sound of the drum. So maybe a laser mic would be the way for those and can have under the drum tracking from the underside - how many I'd start with 3, should cover the main area drummers like to play upon the skin (can look at used drum skins to get good idea or area you are targeting to cover). It May work, may not, but be fun to play with as everybody loves lasers. :) However - like any well-formed plan, there will be exceptions - and drummers doing a rimshot would be one that would prove to fall into that path of exceptions. But may also be detectable by the pattern it plays out upon the laser mic array. One of those, try and see.
As always watching your video and ideas are creeping, which will cost me some time ....
Could it handle streaming webradio from internet and send it to a bluetooth speaker ?
Resources Bottlenecks ?
Thanks for the allied swiss enabling.
AFAIK Wi-Fi and Bluetooth are exclusive or on one ESP chip (they use the same radio)
Unfortunately the ESP32 does not support Bluetooth and WIFI at the same time.
ah guessed it..... so its a two-esp solution with i2s in between
or esp with audio out as shown ....
Amazing video! And I loved the Master/whatever reference :) Do you think it would be possible do use an ADC module with i2s, si5351 oscilator, mixer chip like ne602 and an ESP32 to build a SDR receiver only with modules?
I will cover SDR stuff on my second channel. And this video is the preparation for digital filters which are needed there...
Thank you for bringing Phil's library to my attention at least. You''ve opened up some possibilities for a lot of projects.
(One thing, at 9:40 I couldn't get Frankie Laine singing Ghost Riders in the Sky out of my head.)
Unfortunately, I do not understand your reference to Ghost Riders :-(
Thank you for this. I've been trying to finish a project using other available ESP32/ESP8266 audio libraries but run into problems with reliability or getting the functionality I want. Hopefully this library will help me to finally get it working.
I hope, too!
Mist, jetzt muss ich schon wieder ein neues Gitarreneffektgerät bauen. Danke für die Infos. Hast Du schon Erfahrungen zwischen der Latenz Input und Output? Also ADC -> I2S -> ESP.Copy -> I2S -> DAC.
Nein, ich habe keine Latenzmessung gemacht. Schau mal in die "Maximilian" Beispiele rein. Das ist ein Audioprojekt mit vielen vorgefertigten Effekten...
@@AndreasSpiess Tnx! Ich habe jetzt erstmal so ein komplettes Audio Board bestellt. Eine guter Punkt um mal ohne viel Aufwand rumzutesteten.
Looking forward to that video on applying audio filters with this library on esp32! I have a need to hpf audio at about 150hz...
That should be possible... Not decided how I will cover the topic.
I built the blue toothe speaker in your video with the esp32 dev board and max98357a! I made the connections on a breadboard and uploaded the A2DP code to it! It worked for about a minute and started dropping out. Now I cant get it to show in the device manager on my phone or laptop. Looks like i got some work ahead for me. Pretty impressive how easy you made it though, since I'm new to micro controllers and programing! Awesome projects you have! 👍
Welcome to the channel. I wish you luck finding the problems. Otherwise, Phil is helpful if you create an issue on github.
@@AndreasSpiess wow cool! I wasn't expecting a comment back from the creator! 👋😀 I think the project simply wasn't getting enough current as I was using a 7805 voltage regulator to power both the boards up! Probably a brown out issue but if I still have problems I'll definitely contact phil. pleasant surprise to hear from you! Thanks for your input!
@@ryanmowry1170 All comments are answered on this channel ;-)
@@AndreasSpiess I got my project working! 😀👍 I powered the circuit directly without 7805 voltage regulator and tested it all day and didn't drop once! Very cool project and easy all thanks too your wonderful and helpful channel! Keep up the great work! Your channel makes a difference and is much appreciated! Now I'm going to make a more permanent version of the circuit with my first attempt at making homemade pcbs and soldering the stand alone esp32 and amplifier modules to it!
You are covering exactly what I am working on this weekend. Thanks!
Excellent! Hopefully you get along a little faster.
Phil might have a Swiss accent, but he’ll never as cool as you in your hat :D
Thank you. He is cool for me because he has a lot of useful skills ;-)
Thanks for such a great video. How can I implement voice translation on esp32. Input and output both are voice.
You have to search for a project. I do not know one :-(
To bad about that BT audio, hope to see it fixed soon. I see great potential for using this with KaRadio and BT speakers.
Others had more luck. It seems to work somehow...
The BluetoothA2DPSink library by Phil Schatzmann with an ESP32 connected to a PCM5102 decoder module plays audio via Bluetooth
Cool. Thanks for the feedback!
Impressive find 👍
Great walkthrough of the process as always 👍😀
Thanks for sharing your experience with all of us 👍😀
You are welcome! I am glad this video solves many problems!
Lovely! great efforts! thank you everyone from swissterland!
:-)
Thank you Andreas, send Phil my gratitude
You are welcome! I hope he reads these comments, too
Very interesting. Is the ESP32 fast enough to decode AAC LC and HE-AAC now in software? I have seen other ESP32 radio projects that rely on the VS1053B decoder board to do the AAC decoding. It would be a very neat solution to be able to avoid having extra decoder boards in a small internet radio box.
Yes it will decode ACC and MP3 streams of like up to 320kbs without any problems from my testing. No need for external decoders
Please make also a video about the minimal setup like A2DP sink for ESP32-A1S module as they have two different models because of the two codecs, one with AC101 and the new ES8388. Thank you!
You find a lot of examples for both versions of the A1S in Phil's repo.
Hi Andreas, wenn er das mit dem Bluetooth noch hin bekommt, hat er das Schweitzer Taschenmesser neu definiert. Das mit dem Bluetooth in zu Audio Out ist dass was ich auf Arduino brauche.
Das läuft in anderen Kombinationen. Schau einfach ab-und zu in seine libraries und die issues.
Ich warte auch drauf, denn dann kann man sich den Ausgangsverstärker und die Buchse sparen...
I noticed that lately I keep hitting videos with this specific guy with a Swiss accent. After the 5th video I decided, "Well... I guess this guy with a Swiss accent has earned a subscription..." :D Thank you for all of the work you do!
Welcome aboard the channel!
THANK YOU SO MUCH ANDREAS! This gives me a lot of idea to play with radio and internet hehehe
Cool. That is very good.
Where can I find the code for the simple baby monitor
My children are already adults, so I have no need and did not search for it.
imo the ESP32s integrated dac is pretty ok especially for simple audio notifications on your projects
Agreed. We also want to use it for a radio project where bandwidth is limited to 2.5kHz. But for "real" audio it is not good enough
Simply Beautiful! Love your work ! Audio was a very big problem for me in my projects but you showed me such a great way to tackle that. Thank you !
Glad I could help!
Really a great project. Thanks for honestly sharing your experiences with all the wrong details a beginner makes. So we all can learn from it.
Glad it was helpful!
Classic Andreas , Informative and comprehensive , easy to follow . Thank you !
You are welcome!
Interesting! Is the ESP32 + I2S microphone able to recognize some voice commands? Should ESP32 use TensorflowLite to do that? Is ESP32 powerfull enough for this task? Thx.
You can try Tensorflow. Maybe you find a project. I am not a big fan...
@@AndreasSpiess I would like to count accuratly how many times a day my neighbour his dog barks because nobody believes me when I say it must be hundreds of times ... anybody who can do that with ESP32 or RP please let me now....payed project :-)
Literally all the information I was looking for for 2 different projects in 1 great video. Thanks :)
You are welcome!
I just saw your Super Thanks on my PC (it is not displayed on the IPad). Thank you for your support!
Helpful video. I liked it
:-)
thank you and it is really helpful. and also do you have plan to use a2dp and BLE serieal communication at the same time? since esp32 support dual bluetoth but there are not imformation about it (especially with arduino IDE)
thank you again ser
Maybe you ask Phil, the creator of the library?
Hi, is there a way to integrate the I2S microphone to the “camerawebserver” example for the ESP32cam? A full baby monitor!! Thnx
I think so. Just try it!
I would really like to use a capability like this with Home Assistant to build small devices that I could use to play audio announcements, alerting tones, etc. and maybe also use them for music playback as a flexible media_player type device. More projects to investigate! Thanks for the introduction to this capability that I wasn't previously aware of!
Either using a webserver or an SD card as a source should enable all these projects.
Wonderful video!! I'm stuck though: I have the ESP32 v2.0.10 by Espressif installed in the latest Arduino IDE's Board Manager but I do not find the AI Thinker Audio Kit board listed. What board do you choose or is there another board configuration that needs to be installed instead of or in addition to the Espressif one?
And does the board program via the UART port or is it necessary (or recommended) to program via the JTAG interface pins on the board? I keep searching the Internet for details on this but come up empty handed.
Thanks in advance for any direction that could be provided on this.
The board can be programmed via USB. I use the ESP32 dev module board definition. You need to install 2 libraries and try which board you got. Information and support is on Github
I always enjoy receiving a new episode from your channel. I just have to remind myself: sit down and pay attention! Thank you for such an information-rich source!!
That is the right attitude! Then you do not need to ask questions about things which were presented in the video ;-)
Dear Andreas, thank you for your work and the roofless enthusiasm for new technologies. As always - great video. There's also another audio feature aavailable for ESP32's - ESP TEL - I think you may find it very useful considering you're also a biker and this is a great solution for the bikers pack to use - all together with the BT headsets, multi microphone settings for noice cancelation inside helmet and voice recognition for controlling navi inside a phone for example ir certain bike functions like extra lights with color patterns or whatever else (more about it here:ruclips.net/video/jVVwDic1aO4/видео.html).
Thank you for the link. Cool project. It looks like it is only available on the IDF platform. I decided to stick to Arduino…
Hi Andreas - I have not seen any videos on the ESP32 ability to play notes. It can produce the 12 notes of the scale across 8 octaves. It uses just 2 commands - in setup - ledcAttachPin(TONE_OUTPUT_PIN, TONE_PWM_CHANNEL); and ledcWriteNote(TONE_PWM_CHANNEL, NOTE,Octave); // where note is one of the 12 from NOTE_C to NOTE_B. By using channels 1 and 9 you can produce stereo - eg independent channels - one set for the left hand and one for the right hand. Connect the GPIO output pins of the ESP32 and earth to an amplifier. By creating an array of NOTES[12] you could create a stereo laser harp or Theremin. Have you done a RUclips video on this feature of the ESP32 ? Perhaps I have missed it.. Best regards... Keith (Australia).
Yes, the ledcAttachPin command is very versatile. I never did such a video. I only once used a library which played some titles. But this is many years back.
I wonder if we can make a 2 way communication for home surveillance system.
This should be possible.
Wow, amazing idea. Do you think it's possible implement a full-duplex audio? I have in my mind on baby monitor with respond possibility by mom . Imagine a small bear with this object.
Of course, it's important avoid wave contamination to baby but my be a solution to night nightmare
I did not find an example for both directions and, as you saw, there is also some delay. So another technology would probably be better for your project.
@@AndreasSpiess Thanks, I'll take a look around
Slave -
ETYMOLOGY OF SLAVE
"The classification and stigma of slavery is referred to in medieval Latin as sclavus, in relation to the Byzantine Greek sklábos, being a derivation of sklabēnós, which translates as ‘Slavic’, originally as a self-reference for the Slavic people..."
Thanks for the information!
Would be interesting to see the impact of this continuous streaming on power draw. I always thought it would be cool to build an Internet Radio for Pandora, and I suspect the ESP32 would be easier on batteries than, say, a Pi Zero W.
I did not check. WiFi anyway is not ideal with batteries.
Can ESP32 act as a 2-way VOIP gateway, for use as intercom network for example?
And is there any support for SIP?
I do not know about the two-way thing. And about the latency (which is important in this respect. Maybe you try it?
It would be awesome with ESP-NOW for lower latency
So you mentioned that some pins are a no go for the ESP32 , how can we find them i looked up the data sheet and besides being massive it got me even more confused. Also besides those 2 pins are there any other no go pins?
On a side note ESP32 matrix tutorial would be interesting.
Keep up to good work, great video again!
I made a whole video about this topic (including an Excel sheet)...
@@AndreasSpiess then ill just have to find it
@@sanjikaneki6226 GR
#363 Which ESP32 pins are safe to use? ruclips.net/video/LY-1DHTxRAk/видео.html
Great! Can You make an spl sensor with this?
What is an spl sensor?
Very nice library, I have to try it with my AtomEcho. I have to be careful, though. I fried the neopixel on the Echo when I installed the wrong audio example for the i2s library and the default config tried to play sound on it.
Better be careful than sorry ;-)
I prefer Main/Sub to Master/Slave. Has the same abbreviation (M/S)
Good point!
what about using it as dlna receiver from home assistant?
I do not see the connection to the topic of the video :-(
When bluetooth won't connect I have to usually go ask my wife to turn off her phone's bluetooth; (often on the other side of the house since we share bed headphones). The particular ones we have are annoying because it auto-connects on power on, and usually her iPhone connects before my pixel. The biggest problem is you cannot force a bluetooth reset while connected, and the connection happens before the 'press and hold' functionality can force the chip to reset.
...Was your wife's phone connecting to your speaker today when yesterday it worked?
Good point. Maybe another device was connected (I have many such devices). But I do not know.
Woa cool, but is there a way to stream audio from the phone and sending microphone output to the phone like a Bluetooth headset?
Yes, this should be possible.
Andreas, Thank you for sharing your work here.
I have been studying many video and other sources about integrating the INMP441 to the RP-Pico or ESP32. In all cases I remain confused with the
INMP441's I2S 24 bit data output being mapped directly to 16 bits. Could you explain this?
Thanks
You can shift the bits of a 24 bit number by 8 bits to the right (divide by 256). The result should be a (less precise) 16 bit number.
Hello again, @AndreasSpiess, I am deciding to buy from your links all the componentes for my project, but I still have a question, I see that you used the ESP32 Wroom board according to the link.
But before buying, can you answer a couple of questions?
*1 Which board did you select in the IDE list to compile correctly?
*2 Did you modify, or add any line of code in the configuration so that it compiles correctly?
I try to compile for Wroom or for generic ESP32, and it returns a compilation error for that board.
After I managed to compile, I bought all the components from your links. thanx Andreas!
1. I always use the ESP32 Drv board
2. You have to read the error message and correct the error. No errors should occur because of the board.
3. Thanks for using the links!
How to connect dac max98357a and microphone inmp441 simultaneously? Thanks
I never tried it. But the ESP32 has 2 I2S interfaces. So I assume you use one for input and one for output
Hello Andreas, great video - as always! Did you or anyone else had success in streaming music via internet and playing it back via a connected bluetooth speaker (using ESP8266 Lib)? I'm trying to build my own ESP32-based web-radio player and try to use an existing bluetooth speaker for playback. It'S hard to finde a complete and working code example on the internet.
I once made a video about an internet radio using an ESP32.
Hi ive done coding for recording to the flash memory of the ESP32 and successfully saved the recording with file sizing utilizing SPIFFS as file forwarding system. But it seems like wifi.h FSbrowser(seperate code) wipes out the flash of the esp32 when compiling over to the ESP32 as the file size is then shown as 0B.
Well possible. SPIFFS is not like an SD card because it is part of flash memory.
arduino-audio-tools zip import errors out in IDE 2.3.0. It can't create a symbolic link
Update: Fixed by running Arduino IDE as admin.
Thank you for the info!
Great job as always.
I downloaded the libary on 09/28/2022 but I did not find the example
streams-generator-csv. Can you tell me how to get it back.
Thank you
Maybe it was renamed. If you do not find it, just place an issue to Phil in his Github.
I find Phil's examples impossible to use, as a beginner programmer. He does not cover the whole topic, and leaves out critical information for setting up the example. Such as: what board do you set the Arduino IDE to for the ESP32 Audio Kit??? I cannot compile any of his example sketches because of this!🤔 Phil could really use some help from you, cleaning up loose ends, and making the examples much more usable and understandable!
I agree: This is not a topic for beginners!
Can this be used to stream chunks as well without interruptions? I have been building on ESP32 S3, playing wav file works but audio gets laggy & lossy while streaming chunks all the way from server to speaker
I do not know for sure. You have to try if it fits your needs.
hello, i saw that in the esp32 that i use i have 2 i2s buses, do you think that i can use 4 mic (for example inmp441)? and if so how many microphones could i use with this card (ttgo v1.7.1)?
thank you
I assume you can use 4 microphones. But I have never tried and I do not know if such a setup is supported by libraries
Cool! New horizons. Thanks
Indeed, it opens new possibilities!
Hi Andreas, thanks for the nice video and content.
Here are some questions:
1 - How many ohms has the speaker that you used at valse.mp3 example?
2 - Is there a limitation in ESP32 about speakers impedance?
3 - It is possible an audio comunication between LoRa Rf? A conversation between two people for example.
Here is the guy with Brazilian accent :)
Hi Helmuth I am no expert but checkout the i2c audio module he used the MAX98357A. "Output Power: 3.2W at 4Ω, 10% THD, 1.8W at 8Ω, 10% THD, with 5V supply". I highly doubt LORA is good for that application since it is very low transfer rate. LORA would be better for sending text messages.
@@JonnyWaldes many thanks :)
I agree with Jonny
The stream-generator-csv seems like doesnt exist in the git you had provided @Andreas Spiess if there is any other git zip folder kindly help me out with it, also i am using inmp441 as my microphone i had given my pin connections accordingly, by referring an another vedio, i used the code you provided for inmp441, while doing so, i am getting all zeros in the serial monitor, finally i want to perform inmp441 with esp 32 besides hearing the sound with the help of the website you provided, kindly help me out with this.
Thank you,
This library is not supported by me. But its documentation is quite good. So if you do not find what you need, it is not available :-(
I downloaded the library in the form of a zip file. Then I unzipped the folder and copied it into the: arduino\libraries\
After that I launched the arduino IDE, tried to open and compiled few example projects. I found out none of the examples I tried were compiled -- They would asked for many missing include files. Questions: Are these sample projects structured right? seemed like the directory path struncture were all wrong !!! Could somebody tell me what I did wrong?
I did not use it recently. So maybe you ask the question on GitHub.
hey there its really helpful video, i need an help i am testing it with max98357 and inmp441 but confused in pin connections can you help.
Maybe you check the Wiki of the project. There you should find a lot of info.
he has since removed that example for stream generator csv. its march 13 2023
Maybe it is renamed? Ask him on GitHub.
Hi I want to know if I might have problems when use I2S ADC or the PMOD with my microphone that needs a plug in power of 2V??
I do not know :-(
hey great video! How about text to speech using ESP32? I tried using the given examples, but it do not work :(
I Never tried it.
Nice one :)
Plenty of ideas for future tinkering !
True. I have some projects in mind, too...
HI - if there is a buffer for connected Bluetooth MAC adresses try to clear that. - I had this inconsistencies on linux. After that reconnecting / repair was working fine . I dunno if the bluetooth chip you are using has this inbuildt funtionality. in linux I had to write a script to clear the buffer every 24 hrs.
Thank you for the info!
"Error:13 internal: library install failed: moving extracted archive to destination dir: library not valid"
Maybe you open an issue on Github?
I went to the link for the ESP32 board you are using but got to a different product. I would like to get the ESP32 board you use in this video.
Not all modules are currently available. Check which are supported by the library.
This looks great. Thanks so much!
You are welcome!
If you are not comfortable with Master/Slave call it Manager/Subordinate
I hope this will be politically correct ;-)
Love this channel! I decided to buy the ESP32 Audio Kit, but cant get the external microphone to work. Were you able to get the external input to work on your board? I can get the built in mics to work on Channel 2, but Channel 1 does not work for me. Am I doing something wrong?
I never used the Kit. But Phil used it a lot. So just ask him on Github.
@@AndreasSpiess Thanks Andreas, I will do that! Thanks again for all your videos, they are very well done and very informative!
good job. do you have one record voice and write to SD card with ESP32? thanks.
Unfortunately, no.
HI, nice tutorial!! but from adc to webserver? how? like for baby monitor
I do not know. My babies are already adults ;-)
Great stuff as always Andreas! Thanks a lot for this!
You are welcome!
Can you make an ESP32 walkie Talkie? I mean, as long as you are in the same wifi network? could it work?
It could work. I even made one with a Raspberry Pi Zero which worked worldwide (in another video)
Thanks, Andreas very well explained as always, we want more 😁
:-) We will see...