Capture audio from a microphone on your Raspberry Pi Pico or any RP2040 based board. 🎤
- RP2040 board
- Microphones
| Raspberry Pi Pico / RP2040 | Analog Microphone |
|---|---|
| 3.3V | VCC |
| GND | GND |
| GPIO 26 | OUT |
| Raspberry Pi Pico / RP2040 | PDM Microphone |
|---|---|
| 3.3V | VCC |
| GND | GND |
| GND | SEL |
| GPIO 2 | DAT |
| GPIO 3 | CLK |
GPIO pins are configurable in examples or API.
See examples folder.
git clone https://github.com/ArmDeveloperEcosystem/microphone-library-for-pico.git - Set up the Pico C/C++ SDK
- Set
PICO_SDK_PATH
export PICO_SDK_PATH=/path/to/pico-sdk- Create
builddir, runcmakeandmake:
mkdir build
cd build
cmake -DPICO_BOARD=pico_w -DWIFI_SSID=<wifi_ssid> -DWIFI_PASSWORD=<wifi_password> -DSERVER=<server> -DPORT=<port> ..
make- Copy example
.uf2to Pico when in BOOT mode. - Listen
nc -lup <port> > audio.pcm- Process
ffmpeg -f s16le -ar 16000 -ac 1 -i audio.pcm audio.wavThis project was created on behalf of the Arm Software Developers team, follow them on Twitter: @ArmSoftwareDev and YouTube: Arm Software Developers for more resources!
The OpenPDM2PCM library is used to filter raw PDM data into PCM. The TinyUSB library is used in the usb_microphone example.
Disclaimer: This is not an official Arm product.