STM32 Nucleo
expansion boards
Hardware
Application
FP-AUD-SMARTMIC1
X-NUCLEO-CCA01M1 (Translate)
X-NUCLEO-CCA02M2 (Sense)
STM32 Nucleo
development board
STEVAL-BCNKT01V1
evaluation board
PDM2PCM
AcousticBF
Middleware
STM32Cube Hardware Abstraction Layer (HAL)
Hardware
Abstraction
AcousticEC
AcousticSL USB Device Serial Protocol
Features
Software expansions for STM32Cube:
AcousticBF real-time beam forming
AcousticEC real-time acoustic echo cancellation
AcousticSL real-time sound source localization
Complete application including all the acoustic functions in a single sample
application
Software graphic user interface to easily control parameters and algorithms from
a host PC
Free, user-friendly license terms
Sample implementation available on a NUCLEO-F446RE development board
when connected to an X-NUCLEO-CCA01M1 and an X-NUCLEO-CCA02M2
expansion board
Sample implementation available on the BlueCoin starter kit (STEVAL-
BCNKT01V1)
Description
FP-AUD-SMARTMIC1 is an STM32Cube function pack. This software package
implements a complete application targeting advanced processing for MEMS
microphone arrays, including digital MEMS microphone acquisition, beamforming,
source localization and acoustic echo cancellation. The processed audio is sent to a
USB host and a loudspeaker connected to the relevant expansion boards.
The function pack is built on STM32Cube software technology to ease portability
across different STM32 microcontrollers.
This sample implementation supports two kind of systems: STM32 NUCLEO-F446RE
development board equipped with the X-NUCLEO-CCA01M1 or X-NUCLEO-
CCA02M2 expansion boards and the STEVAL-MIC001Vx, STEVAL-MIC002Vx or
STEVAL-MIC003Vx digital microphone evaluation boards or the BlueCoin starter kit
(STEVAL-BCNKT01V1).
Product summary
STM32Cube
function pack for
MEMS microphone
acquisition,
advanced audio
processing and
audio output
FP-AUD-
SMARTMIC1
Sound terminal
expansion board
based on
STA350BW for
STM32 Nucleo
X-NUCLEO-
CCA01M1
Digital MEMS
microphone
expansion board
based on
MP34DT06J for
STM32 Nucleo
X-NUCLEO-
CCA02M2
BlueCoin starter kit
STEVAL-
BCNKT01V1
Applications
Sound Sensing
Speakers
Remote Controls
STM32Cube function pack for MEMS microphone acquisition, advanced audio
processing and audio output
FP-AUD-SMARTMIC1
Data brief
DB3275 - Rev 3 - January 2020
For further information contact your local STMicroelectronics sales office.
www.st.com
1 Detailed description
1.1 What can you do with STM32Cube function packs?
STM32Cube function packs leverage the modularity and interoperability of STM32 Nucleo and X-NUCLEO
boards together with STM32Cube and X-CUBE software to create function examples for some of the most
common use cases of different application technologies.
These software function packs are designed to exploit the underlying STM32 ODE hardware and software
components as much as possible to best satisfy the requirements of final user applications.
Moreover, function packs may include additional libraries and frameworks that are not present in the original X-
CUBE packages, thus enabling new functionalities allowing real and usable system for developers.
1.2 What is STM32Cube?
STM32Cube is a combination of a full set of PC software tools and embedded software blocks running on STM32
microcontrollers and microprocessors:
STM32CubeMX configuration tool for any STM32 device; it generates initialization C code for Cortex-M
cores and the Linux device tree source for Cortex-A cores
STM32CubeIDE integrated development environment based on open-source solutions like Eclipse or the
GNU C/C++ toolchain, including compilation reporting features and advanced debug features
STM32CubeProgrammer programming tool that provides an easy-to-use and efficient environment for
reading, writing and verifying devices and external memories via a wide variety of available communication
media (JTAG, SWD, UART, USB DFU, I2C, SPI, CAN, etc.)
STM32CubeMonitor family of tools (STM32CubeMonRF, STM32CubeMonUCPD, STM32CubeMonPwr) to
help developers customize their applications in real-time
STM32Cube MCU and MPU packages specific to each STM32 series with drivers (HAL, low-layer, etc.),
middleware, and lots of example code used in a wide variety of real-world use cases
STM32Cube expansion packages for application-oriented solutions
The FP-AUD-SMARTMIC1 firmware is based on the STM32CubeHAL hardware abstraction layer for the STM32
microcontroller, and exploits BSP and middleware layers to build a complete acoustic application based on a
MEMS microphone array. The software acquires audio signals from four digital MEMS microphones, elaborates
them using embedded DSP libraries and streams the processed audio to a USB host and a loudspeaker
connected to the relevant expansion boards.
A software example which performs a set of operations to remotely control the device from a PC host is also
provided.
The package includes several audio DSP libraries:
the AcousticBF library provides an implementation for a real-time adaptive beamforming algorithm - using
the audio signals acquired from two digital MEMS microphones, it creates a virtual directional microphone
pointing to a fixed direction in space;
the AcousticEC library provides an implementation for a real-time echo cancellation routine based on the
well-known SPEEX implementation of the MDF algorithm;
the AcousticSL library provides an implementation for a real-time sound source localization algorithm: using
2 or 4 signals acquired from digital MEMS microphones, it can estimate the arrival direction of the audio
source.
The firmware provides a sample implementation supporting two systems:
STM32 NUCLEO-F446RE development board equipped with the X-NUCLEO-CCA01M1 expansion board
(based on the STA350BW Sound Terminal
®
2.1-channel high-efficiency digital audio output system) or X-
NUCLEO-CCA02M2 expansion board (based on the MP34DT06J digital MEMS microphones) and STEVAL-
MIC001Vx, STEVAL-MIC002Vx or STEVAL-MIC003Vx digital microphone evaluation boards
BlueCoin starter kit (STEVAL-BCNKT01V1)
FP-AUD-SMARTMIC1
Detailed description
DB3275 - Rev 3
page 2/4