FC-109 (MAX9812) microphone amplifier module

In an earlier post I happily announced that I ordered a microphone amplifier board. Today I’ll write about this module.

The facts

The FC-109 module is a very simple one. It has only 3 pins:

  1. GND
  2. VCC, which can be either 3.3V or 5V (a 3.3V stabilizer is included)
  3. OUT, which should be connected directly to an arduino analog input pin

The module is based on the MAX9812 chip from Maxim Integrated. It’s a low-cost fixed gain (20dB) microphone amplifier IC. How much is 20 decibels? Well, it means 10x amplification but the only way to really know is to try it out.

The experiment

I built the following circuit:

IMG_20151219_213427

I used the 5v pin to power the amplifier but I could have used the 3.3V one as well. It doesn’t make any difference.

Here’s the Arduino sketch I used:

// selecting the analog input pin
const int inputPin = A0;
// size of the window
const int inputWindow = 100;
// placeholder for a single measurement
unsigned int inputSample;

void setup() {
  // initializing the analog input
  pinMode(inputPin, INPUT);
  // initializing the serial communication
  Serial.begin(9600);
}

void loop() {

  // two variables for minimum and maximum values in window
  unsigned int inputMax = 0;
  unsigned int inputMin = 1024;

  // loop for the window
  for (unsigned int i = 0; i < inputWindow; i++) {
    // read in a single value
    inputSample = analogRead(inputPin);
    // get the minimum and maximum value
    inputMin = min(inputMin, inputSample);
    inputMax = max(inputMax, inputSample);
  }

  // send the values on serial
  Serial.print("Min: ");
  Serial.print(inputMin);
  Serial.print("  Max: ");
  Serial.print(inputMax);
  Serial.print("  Diff: ");
  Serial.print(inputMax - inputMin);
  Serial.println();
}

And this is the output after uploading and running the sketch:

serial_monitor

What you can see here is silence, a snap with my fingers, and silence again. Notice that the “zero level” before the snap was around 162 and after the snap it’s around 225. But sometimes it was around 300. This offset seemed to be quite unstable during the experiment (maybe I’m missing something in my circuit). In order to maximally utilize the capabilites of the Arduino, the offset should be at the half of the ADC’s range, 512 in our case. Of course this is beyond expectations. We know that the amplifier runs from 3.3 volts therefore it simply can not produce anything above that.

The conclusion

This module should only be used in undemanding projects like detecting claps, or measuring the loudness of something in general. I think it shouldn’t be used for any task where the sound is recorded and processed or played back. It just can not provide the necessary output voltage levels on its own.

The source

 

8 CommentsLeave a comment

    • Rob – did this work fine as is, or did you need additional circuitry? I’ve been looking at the MAX9812 IC for a microphone project, but if this works without any modifications then I might use this module instead.

  • Bro, based on oscilloscope observation, this circuit outputs signal between -2.5 and 2.5V. Use a positive clamping circuit (capacitor+diode) and you will probably have a better result

  • Hello,
    Do you have the circuit schematics of this board? I would like to use it in a different way and I need to know a detailed schematics in order to be abel to access internal points.
    Another doubt that I have is if the power voltage is 3.3v or 5v (selectable), or if I can use the voltage range between 3.3v to 5v.
    If it is selectable, how to select it?
    Cheers

    • Hello Clerio,
      Unfortunately I don’t have the schematics for the board but I can take high resolution pictures if you need and you might be able to draw the schematics based on that. The power is not selectable, the board is compatible with both 5v and 3.3v levels.

      Cheers,
      Adam

  • The board works fine.
    As Sunrise mentioned it outputs a signal around ground level due to the capacitor on its output. If you want to have a signal around Ub/2 you can use two resistors on your AD input or as I did: remove the capacitor on the board and replace it with a solder bridge.

Leave a Reply to First experiments with Arduino: a finger-snapping switch – Pilar Gomez Ruiz Cancel Reply

Your email address will not be published. Required fields are marked *