

The INMP441 is a low-power, high-performance MEMS (Micro-Electro-Mechanical Systems) microphone manufactured by Analog Devices (MIC). It features a digital I2S (Inter-IC Sound) interface, enabling direct connection to digital audio processors, microcontrollers, and DSPs without the need for an external ADC. The INMP441 is designed for applications requiring high-quality audio capture, such as portable devices, voice recognition systems, and audio processing applications.








The INMP441 is designed to deliver high performance while maintaining low power consumption. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Supply Voltage (VDD) | 1.8V to 3.3V |
| Current Consumption | 1.4 mA (typical) |
| Signal-to-Noise Ratio (SNR) | 61 dB |
| Acoustic Overload Point | 120 dB SPL |
| Frequency Response | 60 Hz to 15 kHz |
| Sensitivity | -26 dBFS ±1 dB |
| Output Format | I2S (Pulse Density Modulation) |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | 3.5 mm × 2.65 mm × 0.98 mm |
The INMP441 has a total of 7 pins. Below is the pinout and description:
| Pin Name | Pin Number | Description |
|---|---|---|
| VDD | 1 | Power supply input (1.8V to 3.3V). |
| GND | 2 | Ground connection. |
| WS | 3 | Word Select (I2S clock signal for left/right channel selection). |
| SCK | 4 | Serial Clock (I2S clock signal for data synchronization). |
| SD | 5 | Serial Data (I2S data output). |
| L/R | 6 | Left/Right channel select. Connect to GND for left channel or VDD for right. |
| NC | 7 | No connection. Leave unconnected or grounded. |
The INMP441 communicates using the I2S protocol, which requires three main signals: SCK (Serial Clock), WS (Word Select), and SD (Serial Data). Below are the steps to use the INMP441 in a circuit:
VDD pin to a 1.8V–3.3V power source and the GND pin to ground.SCK pin to the I2S clock pin of the microcontroller.WS pin to the I2S word select pin of the microcontroller.SD pin to the I2S data input pin of the microcontroller.L/R pin to GND for the left audio channel or to VDD for the right audio channel.NC pin unconnected or connect it to ground.VDD pin to reduce noise.The Arduino UNO does not natively support I2S communication. However, you can use an external I2S interface module or switch to a microcontroller like the ESP32, which has built-in I2S support. Below is an example of using the INMP441 with an ESP32:
| INMP441 Pin | ESP32 Pin |
|---|---|
| VDD | 3.3V |
| GND | GND |
| WS | GPIO25 |
| SCK | GPIO26 |
| SD | GPIO22 |
| L/R | GND (Left) |
#include <driver/i2s.h>
// I2S configuration
#define I2S_NUM I2S_NUM_0 // I2S port number
#define I2S_WS 25 // Word Select pin
#define I2S_SCK 26 // Serial Clock pin
#define I2S_SD 22 // Serial Data pin
void setup() {
// Configure I2S
i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX), // Master mode, receive only
.sample_rate = 16000, // Sampling rate
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, // 16-bit audio
.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, // Left channel only
.communication_format = I2S_COMM_FORMAT_I2S, // I2S format
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // Interrupt level
.dma_buf_count = 8, // Number of DMA buffers
.dma_buf_len = 64 // Length of each DMA buffer
};
// Configure I2S pins
i2s_pin_config_t pin_config = {
.bck_io_num = I2S_SCK, // Serial Clock pin
.ws_io_num = I2S_WS, // Word Select pin
.data_out_num = -1, // Not used (output pin)
.data_in_num = I2S_SD // Serial Data pin
};
// Install and start I2S driver
i2s_driver_install(I2S_NUM, &i2s_config, 0, NULL);
i2s_set_pin(I2S_NUM, &pin_config);
}
void loop() {
// Buffer to store audio data
uint8_t audio_data[128];
size_t bytes_read;
// Read audio data from INMP441
i2s_read(I2S_NUM, audio_data, sizeof(audio_data), &bytes_read, portMAX_DELAY);
// Process audio data (e.g., send to a server or save to SD card)
}
sample_rate and bits_per_sample parameters as needed for your application.No Audio Data Received:
L/R pin is correctly configured for the desired channel.Distorted Audio:
Microcontroller Not Supporting I2S:
Can I use the INMP441 with a 5V microcontroller? No, the INMP441 operates at 1.8V–3.3V. Use a level shifter if interfacing with a 5V microcontroller.
What is the maximum sampling rate supported? The INMP441 supports sampling rates up to 48 kHz, depending on the microcontroller's I2S configuration.
Can I use multiple INMP441 microphones in a single system?
Yes, you can use multiple microphones by configuring their L/R pins for different channels and connecting them to separate I2S interfaces.