Skip to main content
Visitor II
February 23, 2024
Solved

STM32H747: PDM MIC voice/audio via network (VBAN) - for you

  • February 23, 2024
  • 1 reply
  • 2020 views

If you need an example, how to use PDM microphones (MICs) on STM32 MCU and how to bring the voice/sound via network to a host computer (PC) - here is my project:

https://github.com/tjaekel/PortentaH7_VFR_CubeIDE 

Here is a YouTube video with a demonstration:

https://youtu.be/HZ2tHTENgCg 

it is based on Portenta-H7 (STM32H747) (with breakout board or using the vision shield), but I post it here because: it is NOT based on Arduino drivers, nor Arduino IDE! It is an STM32 Cube HAL based project, for STM32CubeIDE, a regular STM HW/FW project like a NUCLEO board.

What it does (it is a pretty heavy/large project):

  • it uses PDM MICs and send it via network (via VBAN): get it via network and route the PDM voice to your laptop speaker, record it with tools (it appears like a sound card interface on PC)
  • it has an UART command interpreter: use commands to enable MIC, to control amplification of MIC etc.
  • it runs a web server where you can also enter commands
  • it provides a "Pico-C" interpreter: write scripts in C-code language, directly on MCU, without a need for a compiler (like Python scripts, directly on MCU)
  • some more stuff, like SD Card (e.g. used for "Pico-C" scripts), with a file system (FAT32)
  • SPI and I2C interfaces
  • use ADC to measure MCU internal voltage references and temperature
  • use ADC to measure voltages on (two) external analog pins
  • use QSPI flash (I use it for "man" pages: get more help about Console Commands)
  • program and recover the PMIC power controller on this board or another board (maybe bricked)
  • change to low power mode command
  • use PWM (2x) to control RC servo motors (tilt motors for two axis)

Have fun with it (or use as reference "how to do").

 

    This topic has been closed for replies.
    Best answer by tjaekel

    Remark:
    you can compile and generate code to flash via UART and Arduino dfu_util (flash MCU without a debugger).

    But, via the breakout board - you can also connect a regular ST-LINK debugger and make use of the entire flash memory (it would rip out the UART loader). Just see the linker script file settings.

    1 reply

    tjaekelAuthorAnswer
    Visitor II
    February 23, 2024

    Remark:
    you can compile and generate code to flash via UART and Arduino dfu_util (flash MCU without a debugger).

    But, via the breakout board - you can also connect a regular ST-LINK debugger and make use of the entire flash memory (it would rip out the UART loader). Just see the linker script file settings.