Unable to configure MAX9814 mic module

I am having troubles when trying to configure the MAX9814 mic module with ESP32+ AudioReactive.
I spent the last many nights on this but still no result.
My setup is all powered by batteries (Lipo for the ESP32, power bank for the led strip, with common ground), but even I power it with power supply I get exactly the same results:

SYMPTOM:
generally the mic does not respond unless I hit the module with my finger. Otherwise I get some low noise which I can get rid of by increasing the Squelch. In addition, every some 5-6 seconds I am getting spikes. Gain pin is connected to 3.3V Vin.

REMEDIES THAT DID NOT WORK:

  • change all possible combinations of Squeltch and Gain
  • applying the above with all possible combinations of AGC and Limiter
  • doing all the above by powering on and off the ESP32

Generally nothing really works, I have got into the thought that the mic module might be faulty. The best case scenario was to have

  • Squelch 20
  • Gain 40
  • AGC Vivid
    In this scenario I can make it work without hitting the mic with my finger but by clapping my hands just a few centimeters above it. The spike are always there :slight_smile:

Any suggestions? Has anyone faced this problem before

Cant say about the wiring or batteries but could be a power or grounding issues ( sorry if that is too general )
What could be practical to test the mic is to just connect it directly to your MCU without any leds using usb as in this picture and use peek to view the result . if thats works then less guess work
image

Could you please describe how to configure my VS code to use peek and see the input as a graph?
thanks!

I mean use peek in wled so you do not really need to use Arduino
image
But if you have to ( you do not really need to do that ) then use the analog sound sampling sketch example listed here

All of that assuming you have wired your mic like this as you listed , otherwise try another mic

thanks! I had connected the MAX9814 like this. I couldn’t resist the temptation and I spent 9 extra euros and bought a new adafruit MAX9814.

The good news
It worked! I could simple talk and see the led reacting. Perhaps the first max9814 was damaged when I soldered it or it was faulty from the very beginning.

The bad news
Well, the audioreactive stops working after a couple of minutes (4-10mins). I deactivated the AGC and the limiter, but still it stops working after a few minutes. Any ideas? The strange thing is that it must be a software issue because even the first “faulty” MAX9814 was stopping working after a few minute time. The rest of WLED presets work smoothly, but the music ones are dead. In addition, the only way to bring it back to life is to entirely power off and on the ESP32. If I simply restart the WLED the audioreactive still does not work.
Any suggestions?

If you wired the mic as in the picture ( without anything else connected to mcu and powered the MCU from usb ) then it should work . If that is the case then reflash the latest and show the info page so i could replicate with MAX9814 on the same version you are using .
Else If you are facing the issue with the analog mics and suspect it is a power related issues ( which i think it is ) then might be try to fix that or use INMP441 digital mic as it could be less impacted by power related

hi, I have managed to figure out what is wrong, but I don’t know how to fix it!

First, after putting everything in a box, and wiring the mic analog in with a shielded wire the spikes almost disappeared. The main problem was that after a few minutes the audioreactive was stopping to work, whereas the non music effects where still playing flawlessly. What it ended to be is that not all usermod go well together and in my case after adding a couple of them I ended up not knowing what’s wrong. In my case I had the following usermods from aircookie repository:

  1. Display ALT
  2. Rotary Encoded ALT
  3. Autosave
  4. Battery

I started to install one by one to see what’s wrong and strangely but definitely confirmed the Battery usermod makes the audioreactive to crash after a few minutes of playing. If I remove the battery usermod the audioreactive plays without problem for hours and hours (i have tested this). When I include the battery usermod in the build option and upload it the audioreactive stops after 4-5 minutes.

My build option for battery is:
-D USERMOD_BATTERY -D USERMOD_BATTERY_USE_LIPO -D USERMOD_BATTERY_TOTAL_CAPACITY=1200 -D USERMOD_BATTERY_LOW_POWER_INDICATOR_ENABLED -D USERMOD_BATTERY_LOW_POWER_INDICATOR_THRESHOLD=10 -D USERMOD_BATTERY_MEASUREMENT_PIN=34

It is a Firebeetle 2 ESP32 which has an integrated LiPo charger which is internally connected to GPIO 34.

Is there a get around for this issue?

I have not tested battery usermod in a long time and also did not test it with analog mics but could be an issue . please report that to github here Issues · Aircoookie/WLED · GitHub .

For an obvious workaround I think you could either stop using battery usermod or might be try with a digital mic if that would reduce the conflict with battery usermod since that uses analog

thanks!

It ended up that audioreactive mode on analog mic (max9814) does not allow other analog inputs. Hence I cannot read the connected to the LiPo battery GPIO.

You will be surprised how better is digital mic and they are so cheap so just go for it . Just few extra wires but trust me they are less headache afterword , just get more then one if this is the first time you will solder it

I can imagine, but unfortunately wiring and enclosure is almost finished. Somehow I chose the analog because it’s the first section of the documentation, it looked like the main suggestion from the authors. I definitely should have chosen the digital mic. One last question, what do you mean by

What should I expect after packing everything together? The mic module actually is going to be in a not so accessible place :slight_smile:

analog may be removed in the future as it has a lot of overhead.

What i have tested personally that when i re-flash units that are having a digital mic the audio will just work straight forward and I do re-flash really a lot .( That is not to say i have issues with max9814 but i only have two units with analog mics as I migrated all to digital ) .

Also there is a note on the kb for quality and also conflict with other analog devices

The SR site ( which is the fork where audio was originated also mentions the advantages of digital mics even when listing analog mics as supported ) Analog Audio Input Options · atuline/WLED Wiki · GitHub.

I do understand your case for an already built project and I also faced the same issues when migrating but nothing to do about that unfortunately

Yes, now it is totally understood that the analog mic was causing all this trouble. Perhaps this note for other analog inputs while having analog mic should be somehow highlighted in the documentation. Anyways, after loosing some hours of sleep I am pretty glad now that the wled is up and working in a very stable manner :slight_smile:

As about the battery indicator I am about putting an additional circuit piece that will show me the full/empty battery states with a two color green/red led.
Perhaps this will do the job:

If you have any other small size schematic to suggest please recommend.