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
build
dir, runcmake
andmake
:
mkdir build
cd build
cmake -DPICO_BOARD=pico_w -DWIFI_SSID=<wifi_ssid> -DWIFI_PASSWORD=<wifi_password> -DSERVER=<server> -DPORT=<port> ..
make
- Copy example
.uf2
to Pico when in BOOT mode. - Listen
nc -lup <port> > audio.pcm
- Process
ffmpeg -f s16le -ar 16000 -ac 1 -i audio.pcm audio.wav
This 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.