The Complete Guide to Recording an Analog Microphone with ESP32 to an SD card

MAX9814 and MAX4466

Cawin Chan


Photo by Richard Horvath on Unsplash

You would think that this would be easy, but I have been through hell and back just trying to get this to work. Let me do the heavy lifting for you.

Atomic14 is a well-known name in the field of ESP32 with audio data. He creates really simple but effective videos that detail the how-to’s for audio sampling through analog and I2S microphones. The main takeaway from him is to use ESP32’s in-built I2S as it has a dedicated DMA (Direct Memory Access) controller that allows us to stream samples from the ADC (Analog Digital Converter) straight into ram buffers independently from the CPU. A.K.A We utilize the ESP32’s RAM to stream samples faster and more consistently.

In my guide, I will be referencing his hard work which I believe should get more attention.

There is a severe lack of proper documentation on analog microphones since I2S microphones seem to be the most used for the ESP32. This is a stark difference from the Arduino where the usage of the commonly used MAX9814 and MAX4466 has always been showered with praise and affection. As such, my work is meant to provide an updated working solution that allows recording the MAX9814 to the SD card. It should be pointed out that the MAX4466 produced a ton of…