I bought an electret mic breakout board (https://www.sparkfun.com/products/9964) and was able to get it to work quite well, so I decided to use the circuit in an open-source sensor module that I am working on. I received the PCBs from OSHPark yesterday and assembled the first prototype, but am getting some strange readings.
Without doing any sort of buffering or averaging, I’m just outputting the direct results of an analogRead to the serial port and monitoring it in the Arduino IDE. Without making any noise, I’m seeing a very regular oscillation occurring in the signal that is making it impossible to use. When I tap the electret I am able to make the signal top out, but the oscillating noise is still there.
I put together a Processing sketch that just graphs the analog data being received straight from my Arduino. I’ve attached a screenshot of the sketch running (purple graph on black background image).
've never designed an audio circuit before, so I’m not sure what is happening. I don’t own an oscilloscope, nor do I know how to use one to troubleshoot a problem like this. Does anyone have some ideas about what is going on, and what I can do to solve the oscillation?
I’ve attached the Eagle files (schematic and PCB file) for my board, as well as an image of the PCB if that helps.
I noticed that when I measure two of the 10k resistors with a multimeter I see ~5.76k instead of 10k. However, I see the same thing when I measure the same resistors on the Sparkfun BoB. Odd.
I also reviewed my BOM and found that I used some capacitors that had a tolerance of “-20%, +80%”. I am wondering if the problems I am seeing are due these parts, or somehow general PCB design.
Lumiboard - sensor module (rev B).zip (21.2 KB)