
1. Introduction
2. Schematic
INMP441 Omnidirectional Microphone Module - HS-S05C-L Schematic Click to View
Module Parameters
Pin Name | description |
|---|---|
G | GND (Negative Power Input) |
V | VCC (Positive Power Input) |
WS | Character Select through Pin |
SD | Data pin |
SCK | clock pin |
Supply voltage: 3.3V
Connection method: PH2.0 4P terminal wire
Installation method: Modular fixed
4, Circuit Board Size

5 of Arduino IDE example program
Choose the development board Python ESP32 [ESP32 Generic(4MB)] and upload in code mode
Attention: If prompted with an error message about the library file during program upload, please import the library file first!
Download and import tutorial for Mixly IDE ESP32 library:Click to view
Example program (ESP32-Python):
#define SAMPLE_RATE (44100)
#define I2S_MIC_WS (12)
#define I2S_MIC_SD (13)
#define I2S_MIC_BCK (14)
#define I2S_PORT_0 (I2S_NUM_0)
#define bufferLen (1024)
#include "Arduino.h"
#include "driver/i2s.h"
int16_t sBuffer_RX[bufferLen];
size_t bytesIn = 0;
void I2s_Mic_Init()
{
i2s_config_t i2s_config_RX{};
i2s_config_RX.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX);
i2s_config_RX.sample_rate = SAMPLE_RATE;
i2s_config_RX.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
i2s_config_RX.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
i2s_config_RX.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
i2s_config_RX.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
i2s_config_RX.dma_buf_count = 8;
i2s_config_RX.dma_buf_len = bufferLen;
i2s_config_RX.use_apll = false;
i2s_driver_install(I2S_PORT_0, &i2s_config_RX, 0, NULL);
i2s_pin_config_t pin_config_RX{};
pin_config_RX.mck_io_num = I2S_PIN_NO_CHANGE;
pin_config_RX.bck_io_num = I2S_MIC_BCK;
pin_config_RX.ws_io_num = I2S_MIC_WS;
pin_config_RX.data_out_num = I2S_PIN_NO_CHANGE;
pin_config_RX.data_in_num = I2S_MIC_SD;
i2s_set_pin(I2S_PORT_0, &pin_config_RX);
i2s_start(I2S_PORT_0);
}
int16_t* Mic_Value()
{
i2s_read(I2S_PORT_0, sBuffer_RX, sizeof(sBuffer_RX), &bytesIn, portMAX_DELAY);
for (int i = 0; i < bufferLen; i++)
{
sBuffer_RX[i] = sBuffer_RX[i]*2;
if (sBuffer_RX[i] > (32767))
sBuffer_RX[i] = (32767);
else if (sBuffer_RX[i] < (-32768))
sBuffer_RX[i] = (-32768);
}
return sBuffer_RX;
}
void setup(){
I2s_Mic_Init();
Serial.begin(115200);
}
void loop(){
short *data = Mic_Value();
for (int i = 0; i <= 1023; i = i + (1)) {
Serial.println(data[i]);
}
}6, Miciqi Mixly Example Program (Graphical Language)
MiXdk library file (ESP32 development board-C language version):Click to download
Sample Program (ESP32 Development Board - C Language Version):Click to download

7, Test Environment Setup
Arduino ESP32 Test Environment Setup
Prepare Components:
ESP32 Development Board *1
ESP32 EXP1 Expansion Board *1
USB TYPE-C DATA CABLE *1
HS-S05C-L Omnidirectional Microphone Module*1
PH2.0 5P PH2.0 connector to DuPont wire *1
Circuit wiring diagram:

ESP32 Test Environment Setup
Prepare Components:Pending update...
Circuit wiring diagram:Pending update...
8. Video tutorial
Arduino UNO video tutorial:Click to view
ESP32 Python Video Tutorial:Click to view
9, test result
Arduino UNO test results:
