The PDM Microphone Usage on Seeed Studio XIAO nRF52840 Sense
Seeed Studio XIAO nRF52840 Sense is equipped with a PDM (Pulse Density Modulation) Microphone which can receive audio data in real-time and can be used for audio recognition. With the wireless connection and fine performance in processing audio data because of the FPU, it can be used for more interesting TinyML projects like remote voice controlling of devices.
Note:
- Seeed Studio XIAO nRF52840 is not equipped with this PDM Microphone module.
- The PDM Microphone will perform better when we use the "Seeed nrf52 mbed-enabled Boards Library", so we highly recommon that.
This wiki will introduce the basics of using this PDM Microphone on this board and includes 2 examples. One example focuses on visualizing raw data from the microphone in real-time and another example focuses on saving recorded audio from the microphone on an SD card. Let's explore them now!
Visualize raw data from PDM Microphone in real-time
In this example, we are going to visualize the raw data from the PDM Microphone on a Serial Monitor and Serial Plotter in real-time.
- Step 1. Download Seeed_Arduino_Mic Library as a zip file
- Step 2. Open Arduino IDE, navigate to
Sketch > Include Library > Add .ZIP Library...
and open the downloaded zip file
- Step 3. Navigate to
File > Examples > Seeed Arduino Mic > mic_serial_plotter
to open mic_serial_plotter
- Step 4. Upload the codes and open the Serial Monitor
Note: Once you upload the codes, it will not be executed automatically until you click Serial Monitor on the upper right corner of the Arduino window.
Now you will see the raw microphone data displayed in real-time on the serial monitor as above!
- Step 5. If you navigate to
Tools > Serial Plotter
and open Serial Plotter, you will see the raw microphone data displayed in real-time on a graph!
Save recorded audio from the microphone on an SD card
Just like the Seeed Studio XIAO series, Seeed Studio XIAO nRF52840 Sense is perfectly compatible with Seeeduino Seeed Studio XIAO Expansion board. It is pin to pin installed on the expansion board which means you can use the SD card module on the expansion board. If you don't want to use the expansion board, you can connect it with a separate SD card module through the SPI interface.
- Step 1. Attach the Seeed Studio XIAO nRF52840 Sense on a Seeed Studio XIAO Expansion board and insert an SD card into the SD card slot of the expansion board.
Note: When you see the light on the expansion board regularly flashing green, the connection is successful.
Since we already installed Seeed_Arduino_Mic Library before, we do not need to install again for this example. However, if you have not yet installed it, please follow the above example.
- Step 2. Download Seeed_Arduino_FS Library as a zip file
Note: This library is needed to access the SD card and save the data
- Step 3. Open Arduino IDE, navigate to
Sketch > Include Library > Add .ZIP Library...
and open the downloaded zip file
- Step 4. Navigate to
File > Examples > Seeed Arduino Mic > mic_Saved_OnSDcard
to open mic_Saved_OnSDcard
- Step 5. Upload the codes and open the Serial Monitor
Note: Once you upload the codes, it will not be executed automatically until you click Serial Monitor on the upper right corner of the Arduino window.
Now the audio data will start sampling, record for 5 minutes and save the data to SD card automatically.
This test.9568.wav is a 5-second audio file and it is saved on the SD card.
If you want to resample audio data, you should push the reset button and then click "serial monitor" again to sample.