
1. Introduction
2. Schematic

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

Add Arduino Library File
Reference here if you don't know how to use library files:Install and use library files
Library file download: Click to download
Unzip the downloaded Arduino library files to the desktop and then place them in Arduino's libraries folder.
6, Add MicroPython environment library file
Please click here for reference if you cannot install library files
7. Arduino IDE example program
Example program (ESP32 development board): Click to download
#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]);
}
}Example program (ESP32-S3 development board): Click to download
8, Mixly Example Program (Graphic Language)
Mixly Library (ESP32 Development Board - C Language Version):Click to download
Sample Program (ESP32 Development Board - C Language Version):Click to download

MiXin Mixly library file (ESP32-S3 development board - C language version): Click to download
Example Program (ESP32-S3 Development Board - C Language Version): Click to Download
9. Setting up the Test Environment
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 Python test environment setup
10, video tutorial
Arduino UNO video tutorial: Click to view
ESP32 Python Video Tutorial:
11. Test Conclusion
Arduino UNO Test Conclusion:
