Sound as single bits
The TK101 does not send a voltage that rises and falls with sound. It sends single bits, one for every pulse of a clock the ESP32-S3 provides, and the sound is in how many of them are 1s. That is PDM, and it is why the microphone needs a board that can read it.
One bit per clock pulse
The ESP32-S3 sends a clock to the microphone on CLK. On every pulse, the microphone sends back a single bit on DATA: a 1 or a 0. That is all that ever travels between them.
No single bit means anything. What carries the sound is the density of 1s: mostly 1s while the pressure is high, mostly 0s while it is low, half and half in silence. The name for this is pulse density modulation, PDM.
Why a microphone would do this
A digital output needs no quiet analog wiring between the microphone and the microcontroller. The conversion happens inside the microphone's can, a few millimetres from the sound, and what leaves it is a logic signal that a long jumper wire or a noisy supply cannot easily change.
The cost is on the other end. Something has to make a clock of about 1 to 2 MHz and turn millions of bits a second back into numbers. The ESP32-S3's first I2S peripheral, I2S0, has a PDM mode that does exactly that, which is why this block is paired with an ESP32-S3.
What it will not work with
- An Arduino Uno or Nano. No I2S or PDM hardware, and 5 V logic.
- analogRead(). DATA is not a level: any one reading is a single bit.
The analog TK27 microphone is the block for an Uno. It gives a voltage, and it hears claps, knocks and loud voices rather than ordinary speech.
When it does not work
No, but the ESP32-S3 reads both with the same hardware. I2S sends whole numbers, a word per sample, on a bit clock and a word-select line. PDM sends one bit per clock pulse on a single data wire and leaves the counting to the receiver. The ESP32-S3's I2S0 has a PDM mode that does that counting.
No. DATA is a stream of 1s and 0s at about a megahertz, not a level. analogRead() would catch one bit at random and read either about 0 or about 3.3 V. The ESP32-S3's I2S0 in PDM mode has to make the clock and count the bits.
No. The Uno has no I2S or PDM hardware to make a megahertz clock and count the bits that come back, and it runs at 5 V, over the microphone's 3.6 V limit. Use an ESP32-S3.
Four pins, a microphone under 3 mm long, and a jumper you can leave alone.
What is on the board →Edit this page — content/books/pdm-microphone/sound-as-single-bits.mdx
Questions about this product
See what other owners have asked, and read their solutions.
PDM Microphone
Loading discussions…
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.