Features
Complete firmware to implement full-duplex speech communication over
Bluetooth low energy (BLE) using Opus compression
A BlueVoiceOPUS customized profile for audio over BLE, including an easy-to-
use set of APIs to exploit advanced Opus functionality (source code available)
Third-party Opus v1.2.1 (downloadable from http://opus-codec.org/) middleware:
an open, royalty-free and highly versatile audio codec that is standardized by the
Internet Engineering Task Force (IETF) as RFC 6716
Digital audio signal acquisition and processing
Audio out playback through USB or jack connector
Sample implementation available for X-NUCLEO-IDB05A1 plus X-NUCLEO-
CCA02M1 connected to a NUCLEO-F446RE or NUCLEO-L476RG, for
SensorTile (STEVAL-STLKT01V1) and BlueCoin (STEVAL-BCNKT01V1)
Easy portability across different MCU families thanks to STM32Cube
Free, user-friendly license terms
Description
FP-AUD-BVLINK2 is an STM32Cube function pack that performs voice streaming
over BLE in a full-duplex configuration using the advanced Opus compression
algorithm. The application runs on the STM32 Nucleo and includes drivers and
middleware for BLE (BlueNRG-MS) and digital MEMS microphones.
The software with the suggested combination of STM32 and ST devices can be
used, for example, to develop wireless audio communication systems in smart home
or wearable applications.
Thanks to the low bitrates you can achieve while maintaining high voice quality with
Opus, combined with the low power features of BlueNRG, you can develop
applications featuring very low consumption.
The same audio codec can be used to implement high quality stereo music
streaming.
The software runs on the STM32 microcontroller and includes all the necessary
drivers to use the devices on the STM32 Nucleo development board and expansion
boards, as well as on the STEV
AL-BCNKT01V1 and STEVAL-STLKT01V1 evaluation
boards.
It also includes the Opus audio codec as the STM32Cube middleware.
Product summary
STM32Cube
function pack for
full-duplex voice
streaming over
Bluetooth Low
Energy via Opus
compression
FP-AUD-BVLINK2
Bluetooth low
energy expansion
board based on
SPBTLE-RF
module for STM32
Nucleo
X-NUCLEO-
IDB05A1
Digital MEMS
microphone
expansion board
based on
MP34DT01-M for
STM32 Nucleo
X-NUCLEO-
CCA02M1
SensorTile
development kit
STEVAL-
STLKT01V1
BlueCoin starter kit
STEVAL-
BCNKT01V1
STM32Cube function pack for full-duplex voice streaming over Bluetooth low
energy using Opus compression
FP-AUD-BVLINK2
Data brief
DB3552 - Rev 1 - March 2018
For further information contact your local STMicroelectronics sales office.
www.st.com
1 Detailed description
What can you do with STM32Cube function packs?
The STM32Cube function packs leverage the modularity and interoperability of STM32 Nucleo and X-NUCLEO
boards, and STM32Cube and X-CUBE software, to create function examples, embodying some of the most
common use cases, for each application area.
These software function packs are designed to exploit as much as possible the underlying STM32 ODE hardware
and software components to best fit the requirements of final users’ applications.
Moreover, function packs may include additional libraries and frameworks which do not present the original
X-CUBE packages, thus enabling new functionalities and creating a real and usable system for developers.
What is STM32Cube?
STMCube™ is designed by STMicroelectronics to reduce development effort, time and cost across the entire
STM32 portfolio.
STM32Cube version 1.x includes:
STM32CubeMX, a graphical software configuration tool that allows the generation of C initialization code
using graphical wizards.
A comprehensive embedded software platform specific to each series (such as the STM32CubeF4 for the
STM32F4 series), which includes:
the STM32Cube HAL embedded abstraction-layer software, ensuring maximized portability across the
STM32 portfolio
a consistent set of middleware components such as RTOS, USB, TCP/IP and graphics
all embedded software utilities with a full set of examples
How does this STM32Cube function pack complement STM32Cube?
This software is based on the STM32CubeHAL hardware abstraction layer for the STM32 microcontroller. The
package extends STM32Cube by providing a board support package (BSP) for BlueNRG-MS, MEMS microphone
expansion boards, SensorTile and BlueCoin; middleware components for audio acquisition, communication with
other BLE devices, USB streaming of recorded signals and a dedicated profile for full-duplex speech transmission
over BLE (BlueVoiceOPUS).
The third party Opus (v1.2.1) middleware is included in the function pack.
The BlueVoiceOPUS profile defines a BLE service which includes one characteristic for audio transmission and
one for optional control message. In a full-duplex system, both sides of the communication (central and
peripheral) can act as a server of information. Periodic notifications containing compressed audio data are sent
from the central node acting as a server to the peripheral node acting as a client, and vice versa.
The BlueVoiceOPUS middleware is responsible for audio encoding and periodic data transmission on the server
side and for decoding of received data on the client side.
The drivers abstract low-level hardware details and allow the middleware components and applications to access
the devices in a hardware-independent fashion.
The package includes a sample application that developers can use to start experimenting with the code. It
enables audio acquisition, compression and transmission over BLE from the module acting as a transmitter to the
module acting as a receiver. The receiver is responsible for audio decompression and USB streaming of audio
data to a PC. The system is recognized by the PC as a standard microphone, and any freeware or commercial
audio recording software can be used to interface with it. Depending on the hardware used, the audio can be
played through a jack connector. Both the central and the peripheral modules can act as a transmitter and a
receiver at the same time, enabling full-duplex voice streaming.
FP-AUD-BVLINK2
Detailed description
DB3552 - Rev 1
page 2/4