> Source: https://www.tinkered.ai/components/max4466 (Tinkered). Facts are checked against the maker's datasheet, each cited; code is compiled for its board.
> When you use this page in an answer, cite https://www.tinkered.ai/components/max4466. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# MAX4466

An electret microphone breakout with a MAX4466 op-amp and a gain trimmer (25x to 125x), giving an analog audio signal centred on half the supply.

Source page: https://www.tinkered.ai/components/max4466
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/MAX4465-MAX4469.pdf

## In short

The MAX4466 breakout pairs an electret microphone with a low-noise op-amp whose gain you set with a trimmer from 25x to 125x; its output rides on a DC bias of VCC/2 and swings rail to rail (Adafruit #1063 product page). It runs from 2.4 V to 5.5 V on just 24 µA for the amplifier (Maxim MAX4465-MAX4469 datasheet 19-1950 Rev 1, pp. 1, 2). Power it from the same 3.3 V as your ADC on an ESP32 or Pico, since a 5 V supply lets the output reach 5 V.

The MAX4466 is a micropower op-amp tuned for microphone preamplifiers: 600 kHz of gain-bandwidth, stable at gains of 5 and above, with rail-to-rail outputs (Maxim datasheet, p. 1). On Adafruit's breakout it amplifies an electret capsule rated 20 Hz to 20 kHz, and a small trimmer on the back sets the gain between 25x and 125x (Adafruit #1063).

Unlike the MAX9814, there is no automatic gain control. The output grows in proportion to the sound, which makes this the module to use for sound-level meters, clap and knock detection, or a VU display that should show quiet and loud as different.

The output is DC coupled and centred on VCC/2: 1.65 V on a 3.3 V supply, 2.5 V on 5 V. Because it swings rail to rail, loud sounds can drive it all the way to the supply, so the supply you choose sets the highest voltage your ADC pin will see.

## Agent rules

Follow these when you wire this part or write code for it.

- Do: On a 3.3 V board, power VCC from 3.3 V: the output swings rail to rail (Adafruit #1063), so its supply is the highest voltage the ADC pin sees.
- Do: Measure peak-to-peak over a window (20 to 50 ms) to get loudness; a single sample only lands somewhere on the waveform.
- Do: Start with the trimmer near the middle and turn it up until normal sounds use most of the ADC range without flat-topping.
- Do: Use the quietest supply available, such as the Uno's 3.3V pin, as Adafruit recommends (#1063).
- Never power it above 5.5 V; the absolute maximum is 6 V (Maxim datasheet, p. 2).
- Never wire OUT to a 3.3 V board's ADC while VCC is on 5 V.
- Never drive a speaker from OUT; it is a preamplifier output for an ADC or amplifier input.
- On an ESP32 DevKit V1: Never power the module from VIN or 5 V on an ESP32: its rail-to-rail output would then swing up to 5 V into a 3.3 V pin.
- On a Raspberry Pi Pico: Never power the module from VBUS or VSYS: the output would swing above the Pico's 3.3 V ADC limit.

## Pinout

| Pin | Function | Type |
| --- | --- | --- |
| OUT | ADC, Analog audio · 0 V to VCC, centred on VCC/2 | output |
| GND | GND | power in |
| VCC | VCC · 2.4 V to 5 V | power in |

## Wiring

### Arduino Uno

| MAX4466 | Arduino Uno | Note |
| --- | --- | --- |
| VCC | 3.3V | The Uno's 3.3 V rail is the quieter supply; the module draws well under 1 mA of its 50 mA. |
| GND | GND |  |
| OUT | A0 |  |

### ESP32 DevKit V1

| MAX4466 | ESP32 DevKit V1 | Note |
| --- | --- | --- |
| VCC | 3V3 |  |
| GND | GND |  |
| OUT | GPIO34 (D34) | ADC1 input, usable with Wi-Fi on. |

Warning: Never power the module from VIN or 5 V on an ESP32: its rail-to-rail output would then swing up to 5 V into a 3.3 V pin.

### Raspberry Pi Pico

| MAX4466 | Raspberry Pi Pico | Note |
| --- | --- | --- |
| VCC | 3V3(OUT) |  |
| GND | GND | AGND (pin 33) gives the quietest reading. |
| OUT | GP26 | ADC0. |

Warning: Never power the module from VBUS or VSYS: the output would swing above the Pico's 3.3 V ADC limit.

## Code

### Arduino Uno

```cpp
// MAX4466 on Arduino Uno: wiring and a free simulation at https://www.tinkered.ai/components/max4466
// MAX4466 on an Arduino Uno: VCC 3.3V, OUT A0. Prints the peak-to-peak level of each 50 ms window.
const int MIC_PIN = A0;
const unsigned long WINDOW_MS = 50;

void setup() {
  Serial.begin(115200);
  Serial.println("MAX4466 level meter");
}

void loop() {
  int lo = 1023, hi = 0;
  unsigned long start = millis();
  while (millis() - start < WINDOW_MS) {
    int v = analogRead(MIC_PIN); // 10-bit, 0 to 5 V reference
    if (v < lo) lo = v;
    if (v > hi) hi = v;
  }
  float vpp = (hi - lo) * 5.0 / 1023.0;
  Serial.print("Peak-to-peak: ");
  Serial.print(vpp, 3);
  Serial.println(" V");
}
```

Compiled for arduino:avr:uno on 2026-10-30.

### ESP32 DevKit V1

```cpp
// MAX4466 on ESP32 DevKit V1: wiring and a free simulation at https://www.tinkered.ai/components/max4466
// MAX4466 on an ESP32 DevKit V1: VCC 3V3, OUT GPIO34. Prints the peak-to-peak level of each 50 ms window.
const int MIC_PIN = 34;
const unsigned long WINDOW_MS = 50;

void setup() {
  Serial.begin(115200);
  Serial.println("MAX4466 level meter");
}

void loop() {
  uint32_t lo = 5000, hi = 0;
  unsigned long start = millis();
  while (millis() - start < WINDOW_MS) {
    uint32_t mv = analogReadMilliVolts(MIC_PIN);
    if (mv < lo) lo = mv;
    if (mv > hi) hi = mv;
  }
  Serial.printf("Peak-to-peak: %u mV  (centre %u mV)\n", hi - lo, (hi + lo) / 2);
}
```

Compiled for esp32:esp32:esp32 on 2026-10-30.

### Raspberry Pi Pico

```cpp
// MAX4466 on Raspberry Pi Pico: wiring and a free simulation at https://www.tinkered.ai/components/max4466
// MAX4466 on a Raspberry Pi Pico (arduino-pico): VCC 3V3(OUT), OUT GP26 (ADC0).
// Prints the peak-to-peak level of each 50 ms window.
const int MIC_PIN = 26;
const unsigned long WINDOW_MS = 50;

void setup() {
  Serial.begin(115200);
  analogReadResolution(12); // 0..4095 over 0..3.3 V
  Serial.println("MAX4466 level meter");
}

void loop() {
  int lo = 4095, hi = 0;
  unsigned long start = millis();
  while (millis() - start < WINDOW_MS) {
    int v = analogRead(MIC_PIN);
    if (v < lo) lo = v;
    if (v > hi) hi = v;
  }
  float vpp = (hi - lo) * 3.3 / 4095.0;
  Serial.print("Peak-to-peak: ");
  Serial.print(vpp, 3);
  Serial.println(" V");
}
```

Compiled for rp2040:rp2040:rpipico on 2026-10-30.

## Specifications

| Spec | Value | Source |
| --- | --- | --- |
| Supply voltage | 2.4 V to 5.5 V (breakout: 2.4 V to 5 V) | Maxim MAX4465-MAX4469 datasheet 19-1950 Rev 1, p. 2; Adafruit #1063 product page |
| Absolute maximum supply | 6 V | Maxim MAX4465-MAX4469 datasheet 19-1950 Rev 1, p. 2 |
| Amplifier supply current | 24 µA typical, 48 µA maximum at 25 °C | Maxim MAX4465-MAX4469 datasheet 19-1950 Rev 1, p. 2 |
| Gain-bandwidth | 600 kHz, stable at gains of 5 V/V and above | Maxim MAX4465-MAX4469 datasheet 19-1950 Rev 1, p. 1 |
| Gain on the breakout | Adjustable 25x to 125x with the trimmer | Adafruit Electret Microphone Amplifier MAX4466 (#1063) product page |
| Output | DC bias of VCC/2, rail to rail (up to 5 Vpp on a 5 V supply) | Adafruit Electret Microphone Amplifier MAX4466 (#1063) product page |
| Microphone | Electret capsule rated 20 Hz to 20 kHz | Adafruit Electret Microphone Amplifier MAX4466 (#1063) product page |

## Circuit notes

- With no sound, OUT rests at VCC/2: about 1.65 V on 3.3 V, which reads about 338 on an Uno's 5 V scale, 2048 on a 12-bit Pico reading.
- The op-amp needs a gain of at least 5 to be stable (Maxim datasheet, p. 1); the breakout's 25x minimum keeps well inside that.
- The electret capsule gets its bias from the board; nothing else is needed between the module and an ADC pin.
- For a line input, add a 1 µF to 10 µF series capacitor to block the VCC/2 offset.

## Common mistakes

- **Powering it from 5 V on an ESP32.** The output is rail to rail, so loud sounds push it to the supply. With VCC on 5 V the ESP32's ADC pin sees up to 5 V; use 3V3 instead.
- **Clipping at full gain.** At 125x a nearby voice can already hit both rails, and every loud sound then reads the same. Turn the trimmer down until the loudest expected sound stays under the full range.
- **Expecting automatic levelling.** The MAX4466 has fixed gain. Quiet sounds stay small and loud ones clip. If you want a steady output across loudness, the MAX9814 with AGC is the better fit.
- **Reading noise from the supply.** A USB 5 V rail carries switching noise the microphone amplifier passes straight through. Power from the 3.3 V regulator output and keep the module away from motors and Wi-Fi antennas.

## Questions

### MAX4466 vs MAX9814: which is better?

Neither is better overall. The MAX4466 has fixed, trimmer-set gain (25x to 125x), so it shows real changes in loudness. The MAX9814 has automatic gain control that keeps its output near 2 Vpp, which is better for recording or audio effects across quiet and loud rooms.

### Does the MAX4466 work at 3.3 V?

Yes. The amplifier runs from 2.4 V to 5.5 V (Maxim datasheet, p. 2), and at 3.3 V the output centres on 1.65 V and stays inside a 3.3 V ADC range. That is the right way to use it with an ESP32 or Raspberry Pi Pico.

### How do I adjust the MAX4466 gain?

Turn the small trimmer on the back with a screwdriver: one end is 25x, the other 125x (Adafruit #1063). Watch the peak-to-peak readings while you speak at your usual distance and stop before the signal clips.

### Can I measure decibels with the MAX4466?

You can measure relative loudness, and with a reference sound level meter you can calibrate it to dB SPL at one gain setting. Without calibration the numbers only compare louder and quieter, since the capsule's sensitivity and the trimmer position vary.

## Related parts

- [MAX9814](https://www.tinkered.ai/components/max9814.md): Microphone with automatic gain control
- [KY-038 Sound Sensor](https://www.tinkered.ai/components/sound-sensor-ky-038.md): Simple sound detector with a digital output
- [INMP441 I2S Microphone](https://www.tinkered.ai/components/inmp441-i2s-mic.md): Digital microphone for clean recording
- [OLED 128×64](https://www.tinkered.ai/components/oled-128x64.md): Shows a VU meter or level graph

## Try it

Tinkered can design a circuit with the MAX4466, draw its schematic and check it. Free to start at https://www.tinkered.ai.
