Wednesday, November 5, 2014

A NPN transistor Electret Condenser Microphone Preamp for microcontrollers

This is a NPN Electret Condenser Microphone Preamp board design for the use with microcontrollers ADC.

In order to make an electret condenser microphone signal "readable" by a microcontroller ADC, it has to be matched the ADC specification of the microcontroller. Most of the time it means, add some gain to the signal, reduce his impedance, and bias it.

Most microcontrollers ADC can convert signal from 0v to a their positive reference value.
So the input signal must be biased between the ADC max and mix voltage. Also, to obtain the maximum accurancy from the ADC, the signal should not exceed the max and min ADC voltage.
For ATmega8 with an ADC reference voltage of 5v, it means more or less at 2.5v, with an amplitude of 2.5v. Given the ATmega8 ADC accurancy of 10bit, that means 1024 points.

The proposed circuit is just a revision of a pretty usually NPN electret mic preamplifier.

C1 is a power supply stabilization condenser.
R5 is used to polarize the microphone.
C5 is a low pass filter, it helps to remove board noise.
C3 is the input DC blocking capacitor.
R9 loads the NPN collector.
R3 bias the signal using the collector feedback bias design, it prevents thermal runaway and stabilize the operating point, in conjuction wht R9 resistor, this sets the gain of the board.
C6 is the ouput DC blocking capacitor.
R6 and R7 does a voltage divider to perform the bias on the signal.

Tested on ATmega8 and STM32F103 ADC, loaded with 5v or 3.3v, it has a little noise and it a good response even on low sound.


  1. I tried using this circuit with a number of different electret cartridges. With most I got only a weak signal and (more to the point) distorted sound. But changing the mic pullup resistor to 2.2K or 1K gave immensely better resultsThe signal was both stronger and cleaner. 4K also worked with some mics, although not as well and 5K and above were pretty bad.

    1. Thank you for sharing your result here! It helps!