Skip to main content

Initialization and Output plotting

Visualize microphone samples in the Serial Plotter

This example initializes the SPK0641HT4H-1 on ESP32 and streams decimated PCM samples to the Arduino Serial Plotter for quick signal visualization.

#include "Soldered-Microphone-SPK0641HT.h"

constexpr int PDM_CLK = 4;
constexpr int PDM_DIN = 19;

Microphone mic;

void setup() {
Serial.begin(115200);
mic.begin(PDM_DIN, PDM_CLK, 16000, 16, 512);
mic.setHPF(true);
mic.setGainDb(10.0f);
}

void loop() {
const int range_limit = 3000;
Serial.print(-range_limit); Serial.print(' ');
Serial.print(range_limit); Serial.print(' ');

int16_t samples[256];
size_t count = mic.read(samples, 256);

for (size_t i = 0; i < (count < 8 ? count : 8); i++) {
Serial.print(samples[i]);
Serial.print(' ');
}
Serial.println();
}

Function reference

mic.begin(int pinData, int pinClk, uint32_t sampleRate, uint16_t bitDepth, size_t samplesPerBuffer)

Initializes the microphone driver and PDM capture with given pins and audio parameters.

Returns value: bool, true on success

mic.setHPF(bool enabled)

Enables a high-pass filter to reduce DC and very low-frequency components.

Returns value: None

mic.setGainDb(float gainDb)

Applies digital gain (dB) after decimation.

Returns value: None

mic.read(int16_t* dst, size_t samples)

Reads up to 'samples' PCM16 values from the capture buffer. Returns how many were read.

Returns value: int, number of samples read

SPK0641HT4H-1 Pinout
Connection example.

SPK0641HT4H-1 Pinout
Expected output.

Full example

outputPlotting.ino

Example showing how to Initialize a microphone and show the values sampled from it on the Serial plotter