Product images are for informational purposes only and may vary slightly depending on the batch and supplier. Product specifications and prices may be subject to change without notice. We do our best to provide accurate and complete product specifications, but they may not be completely accurate. If you encounter any such situation, please let us know.
The product is intended for specialists and requires qualified and authorized personnel. The product does not include assembly/use instructions . Putting the product into operation by unqualified persons leads to the loss of the warranty according to the Terms and Conditions on the site.
The specified technical parameters (current, power, etc.) represent maximum allowable values under ideal operating conditions. For safe use and optimal lifespan, it is recommended to operate the product continuously at no more than 50% of the specified maximum values.
Digital Microphone Module, INMP441 Compatible, I2S, Omnidirectional, 24-bit, 3.3V
Omnidirectional MEMS module with I2S output, ideal for audio projects with ESP32 and other microcontrollers, without a separate codec. Delivers 24-bit data for clear capture of voice and ambient sounds, has good signal-to-noise ratio and low power consumption. Operates at 1.8-3.3V , and left/right channel selection is made simply by the L/R pin.
Shipping by Thursday 27 August
International fast shipping within EU. Free Shipping for orders above 100 EUR in most EU countries.
We ship from our stock within 24H
You earn points with every order, worth 5%.
The INMP441 Digital Microphone Module is an omnidirectional MEMS module with I2S output, designed for audio projects with ESP32 and other microcontrollers, without the need for a separate audio codec.
It provides clear voice and ambient sound capture thanks to its wide frequency response and good signal-to-noise ratio, making it suitable for recording applications, voice commands, sound detection, or small conference systems.
The module delivers 24-bit audio data through the I2S interface, has low power consumption, and operates stably at power supplies from 1.8V to 3.3V, with left-right channel selection easily done via the L R pin.
The module is available both in Original and Compatible versions (cheaper). This product is COMPATIBLE, with lower performance compared to the original module.
Specifications:
Supply Voltage: 1.8V - 3.3V
Model: INMP441, COMPATIBLE
Microphone type: Omnidirectional MEMS with bottom port
Interface: I2S 24-bit
Signal-to-noise ratio: 61 dBA
Sensitivity: -26 dBFS
Frequency response: 60 Hz to 15 kHz
Current consumption: 1.4 mA
PSR: -75 dBFS
I2S pins: SCK, WS, SD
Channel selection: L R
Dimensions mm (diameter): 14mm
Pinout:
| INMP441 Pin | Role | ESP32 (example) |
|---|---|---|
| VDD | Power supply 1.8V to 3.3V | 3V3 |
| GND | Ground | GND |
| SCK | I2S clock BCLK | GPIO14 |
| WS | I2S word select LRCLK | GPIO15 |
| SD | I2S data out | GPIO32 |
| L/R | Channel selection | GND for Left or 3V3 for Right |
Usage:
Connect the module to the ESP32 as follows
SCK to GPIO14
SD to GPIO32
WS to GPIO15
L R to GND for left channel or to VDD for right channel
GND to GND
VDD to 3.3V
Mount a 100nF decoupling capacitor as close as possible to the VDD pin for stability and noise reduction on the power supply.
For good results, keep the I2S wires as short as possible and avoid routing them near interference sources such as step-up converters, motors, or power cables.
If the application is in a noisy environment, use software filtering and noise reduction algorithms, because an omnidirectional microphone captures sound from all directions and may pick up more ambient noise than a directional microphone.
Secure the module so that the microphone port is not covered and has free access to air for correct sound capture.
Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.
Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.
Avertismente generale de siguranta:
Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.
Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.
Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.
Nu lasati produsul alimentat nesupravegheat in timpul testelor.
Produsul nu este jucarie si nu este destinat copiilor.
Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.
Identificare produs:
Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.
Producator / Importator / Distribuitor:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Website: www.sigmanortec.ro
Persoana responsabila in UE:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Documentatie si siguranta:
Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].
ESP Example Code:
#include <Arduino.h>
#include "driver/i2s.h"
// INMP441 - ESP32 connection
// SCK(BCLK) - GPIO14
// WS(LRCLK) - GPIO15
// SD(DOUT) - GPIO32
// L/R - GND (Left) or 3V3 (Right)
static const i2s_port_t I2S_PORT = I2S_NUM_0;
#define I2S_BCLK 14
#define I2S_LRCLK 15
#define I2S_DOUT 32
// Audio settings
#define SAMPLE_RATE 16000
#define I2S_READ_LEN 1024 // bytes per read
void setupI2S()
{
i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),
.sample_rate = SAMPLE_RATE,
.bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT, // INMP441 outputs 24 bits in a 32-bit frame
.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, // if L/R is connected to GND
.communication_format = I2S_COMM_FORMAT_I2S,
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,
.dma_buf_count = 8,
.dma_buf_len = 256,
.use_apll = false,
.tx_desc_auto_clear = false,
.fixed_mclk = 0
};
i2s_pin_config_t pin_config = {
.bck_io_num = I2S_BCLK,
.ws_io_num = I2S_LRCLK,
.data_out_num = I2S_PIN_NO_CHANGE,
.data_in_num = I2S_DOUT
};
i2s_driver_install(I2S_PORT, &i2s_config, 0, NULL);
i2s_set_pin(I2S_PORT, &pin_config);
i2s_zero_dma_buffer(I2S_PORT);
}
void setup()
{
Serial.begin(115200);
delay(200);
setupI2S();
Serial.println("INMP441 I2S start. Reading and displaying signal level");
}
void loop()
{
uint8_t i2sData[I2S_READ_LEN];
size_t bytesRead = 0;
esp_err_t result = i2s_read(I2S_PORT, i2sData, I2S_READ_LEN, &bytesRead, portMAX_DELAY);
if (result != ESP_OK || bytesRead == 0) return;
// Convert a few samples for a simple level measurement (peak)
int32_t peak = 0;
// Data is 32-bit little-endian, useful data is 24 bits
for (int i = 0; i < (int)bytesRead; i += 4) {
int32_t sample = (int32_t)(
((uint32_t)i2sData[i]) |
((uint32_t)i2sData[i + 1] << 8) |
((uint32_t)i2sData[i + 2] << 16) |
((uint32_t)i2sData[i + 3] << 24)
);
// Sometimes a shift is needed to align the 24-bit sample
sample >>= 8;
int32_t absS = sample < 0 ? -sample : sample;
if (absS > peak) peak = absS;
}
Serial.print("Peak: ");
Serial.println(peak);
delay(50);
}