Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit I2S Mic breakout (SPH0645): Examples, Pinouts, and Specs

Image of Adafruit I2S Mic breakout (SPH0645)
Cirkit Designer LogoDesign with Adafruit I2S Mic breakout (SPH0645) in Cirkit Designer

Adafruit I2S Microphone Breakout (SPH0645) Documentation

1. Introduction

The Adafruit I2S Microphone Breakout (SPH0645) is a compact, high-performance digital microphone module designed for capturing high-quality audio. It utilizes the I2S (Inter-IC Sound) interface for transmitting audio data, making it an excellent choice for projects requiring precise and efficient sound capture. Unlike analog microphones, the SPH0645 outputs digital audio data, reducing noise and improving signal quality.

This breakout board is ideal for applications such as:

  • Voice recognition systems
  • Audio recording and processing
  • Sound level monitoring
  • IoT devices with audio input
  • DIY smart assistants and home automation projects

The SPH0645 is compatible with microcontrollers like the Arduino UNO, Raspberry Pi, and other platforms that support I2S communication.


2. Technical Specifications

Key Technical Details

Parameter Value
Microphone Type Digital MEMS Microphone
Interface I2S (Inter-IC Sound)
Supply Voltage (VDD) 1.8V to 3.3V
Current Consumption ~1.4 mA (typical)
Frequency Response 50 Hz to 15 kHz
Signal-to-Noise Ratio 65 dB
Sensitivity -26 dBFS ±3 dB
Output Format 24-bit PCM (Pulse Code Modulation)
Dimensions 15.2mm x 17.7mm x 1.5mm

Pin Configuration and Descriptions

Pin Name Pin Number Description
3V 1 Power supply input (1.8V to 3.3V). Connect to 3.3V on your microcontroller.
GND 2 Ground connection. Connect to the ground of your circuit.
BCLK 3 Bit Clock input for I2S communication.
DOUT 4 Data Output. Transmits the digital audio data in I2S format.
LRCLK 5 Left/Right Clock input for I2S communication. Determines left or right channel.

3. Usage Instructions

Connecting the SPH0645 to an Arduino UNO

The SPH0645 requires an I2S interface, which is not natively supported by the Arduino UNO. However, it can be used with other Arduino boards like the Arduino Nano 33 BLE Sense or Arduino Zero, which have I2S capabilities. For demonstration purposes, we will use the Arduino Nano 33 BLE Sense.

Wiring Diagram

SPH0645 Pin Arduino Pin
3V 3.3V
GND GND
BCLK D3 (I2S Bit Clock)
DOUT D4 (I2S Data Input)
LRCLK D5 (I2S Word Select)

Arduino Code Example

Below is an example code to capture audio data from the SPH0645 using the Arduino I2S library:

#include <I2S.h> // Include the I2S library for audio data handling

void setup() {
  Serial.begin(115200); // Initialize serial communication for debugging
  while (!Serial);      // Wait for the serial monitor to open

  // Start the I2S interface in receive mode
  if (!I2S.begin(I2S_PHILIPS_MODE, 44100, 32)) {
    Serial.println("Failed to initialize I2S!");
    while (1); // Halt the program if I2S initialization fails
  }

  Serial.println("I2S Microphone Initialized!");
}

void loop() {
  int sample = 0;

  // Check if audio data is available
  if (I2S.available()) {
    sample = I2S.read(); // Read a 32-bit audio sample from the microphone

    // Print the audio sample to the serial monitor
    Serial.println(sample);
  }
}

Important Considerations and Best Practices

  1. Power Supply: Ensure the SPH0645 is powered with a stable voltage between 1.8V and 3.3V. Do not exceed 3.3V.
  2. I2S Compatibility: Verify that your microcontroller supports I2S communication. The Arduino UNO does not natively support I2S.
  3. Clock Signals: The SPH0645 requires both BCLK (Bit Clock) and LRCLK (Left/Right Clock) signals to function correctly.
  4. Noise Reduction: Use short, shielded wires for connections to minimize noise and interference.
  5. Sampling Rate: The SPH0645 supports a sampling rate of up to 48 kHz. Ensure your microcontroller is configured accordingly.

4. Troubleshooting and FAQs

Common Issues and Solutions

Issue Possible Cause Solution
No audio data is received Incorrect wiring or pin connections Double-check the wiring and ensure all connections match the pinout table.
I2S initialization fails Microcontroller does not support I2S Use a microcontroller with I2S support, such as the Arduino Nano 33 BLE.
Audio data is noisy or distorted Power supply noise or long wires Use a stable power source and keep wires short to reduce interference.
Low audio sensitivity Incorrect microphone orientation Ensure the microphone's sound port is unobstructed and facing the sound source.
Sampling rate mismatch Microcontroller and SPH0645 not synchronized Set the correct sampling rate in your code (e.g., 44.1 kHz or 48 kHz).

Frequently Asked Questions (FAQs)

  1. Can I use the SPH0645 with the Arduino UNO?

    • The Arduino UNO does not natively support I2S. Use a board like the Arduino Nano 33 BLE or Arduino Zero.
  2. What is the maximum sampling rate supported by the SPH0645?

    • The SPH0645 supports sampling rates up to 48 kHz.
  3. Can I use the SPH0645 with a Raspberry Pi?

    • Yes, the SPH0645 is fully compatible with the Raspberry Pi, which has native I2S support.
  4. How do I reduce noise in my audio recordings?

    • Use short, shielded wires for connections, and ensure the microphone is powered by a clean, stable voltage source.
  5. What is the difference between BCLK and LRCLK?

    • BCLK (Bit Clock): Synchronizes the data transfer between the microphone and the microcontroller.
    • LRCLK (Left/Right Clock): Indicates whether the current audio data corresponds to the left or right audio channel.

This documentation provides a comprehensive guide to using the Adafruit I2S Microphone Breakout (SPH0645). Whether you're a beginner or an experienced user, this guide will help you integrate the SPH0645 into your next audio project with ease.

Explore Projects Built with Adafruit I2S Mic breakout (SPH0645)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-S3 and INMP441 I2S Microphone Audio Data Logger
Image of esp32-s3-DevKitC-1-N8R2-inmp441: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
This circuit features an ESP32-S3-DevKitC-1-N8R2 microcontroller connected to an INMP441 microphone via I2S protocol. The ESP32 reads audio data from the microphone and prints it to the serial monitor, enabling real-time audio data acquisition and monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi Zero-Based Audio Visualizer with OLED Display and INMP441 Microphone
Image of HEART_SOUND: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
This circuit features a Raspberry Pi Zero connected to an INMP441 MEMS microphone and a 1.3" OLED display. The Raspberry Pi Zero communicates with the OLED display via I2C (using GPIO2 for SDA and GPIO3 for SCL), and it interfaces with the INMP441 microphone using I2S (with GPIO4 for SCK, GPIO9 for L/R selection, ID_SD for SD, and GPIO12 for WS). The circuit is designed for audio input through the microphone and visual output on the OLED display, likely for applications such as sound visualization or audio monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based I2S Digital Microphone Interface
Image of inmp441 mic with esp32: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
This circuit connects an INMP441 MEMS microphone to an ESP32 microcontroller. The microphone's left/right (L/R) and ground (GND) pins are tied to the ESP32's ground, while its I2S interface pins (WS, SCK, SD) are connected to the ESP32's corresponding I2S pins (D25, D32, D33) for digital audio data transfer. The microphone is powered by the ESP32's 3.3V output.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Voice-Activated SD Card Audio Recorder
Image of Main Design: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
This circuit features an ESP32 Devkit V1 microcontroller connected to a Micro SD Card Module for data storage, an Adafruit MAX9814 Electret Microphone Amplifier for audio input, and an Adafruit MAX98357A I2S Class-D Mono Amp connected to a loudspeaker for audio output. A pushbutton is interfaced with the ESP32 for user input. The circuit is likely designed for audio recording and playback with the capability to store the audio data on the SD card.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit I2S Mic breakout (SPH0645)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of esp32-s3-DevKitC-1-N8R2-inmp441: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
ESP32-S3 and INMP441 I2S Microphone Audio Data Logger
This circuit features an ESP32-S3-DevKitC-1-N8R2 microcontroller connected to an INMP441 microphone via I2S protocol. The ESP32 reads audio data from the microphone and prints it to the serial monitor, enabling real-time audio data acquisition and monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of HEART_SOUND: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
Raspberry Pi Zero-Based Audio Visualizer with OLED Display and INMP441 Microphone
This circuit features a Raspberry Pi Zero connected to an INMP441 MEMS microphone and a 1.3" OLED display. The Raspberry Pi Zero communicates with the OLED display via I2C (using GPIO2 for SDA and GPIO3 for SCL), and it interfaces with the INMP441 microphone using I2S (with GPIO4 for SCK, GPIO9 for L/R selection, ID_SD for SD, and GPIO12 for WS). The circuit is designed for audio input through the microphone and visual output on the OLED display, likely for applications such as sound visualization or audio monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of inmp441 mic with esp32: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
ESP32-Based I2S Digital Microphone Interface
This circuit connects an INMP441 MEMS microphone to an ESP32 microcontroller. The microphone's left/right (L/R) and ground (GND) pins are tied to the ESP32's ground, while its I2S interface pins (WS, SCK, SD) are connected to the ESP32's corresponding I2S pins (D25, D32, D33) for digital audio data transfer. The microphone is powered by the ESP32's 3.3V output.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Main Design: A project utilizing Adafruit I2S Mic breakout (SPH0645) in a practical application
ESP32-Based Voice-Activated SD Card Audio Recorder
This circuit features an ESP32 Devkit V1 microcontroller connected to a Micro SD Card Module for data storage, an Adafruit MAX9814 Electret Microphone Amplifier for audio input, and an Adafruit MAX98357A I2S Class-D Mono Amp connected to a loudspeaker for audio output. A pushbutton is interfaced with the ESP32 for user input. The circuit is likely designed for audio recording and playback with the capability to store the audio data on the SD card.
Cirkit Designer LogoOpen Project in Cirkit Designer