cancel
Showing results for 
Search instead for 
Did you mean: 

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

tjaekel
Senior III

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").

 

1 ACCEPTED SOLUTION

Accepted Solutions
tjaekel
Senior III

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.

View solution in original post

1 REPLY 1
tjaekel
Senior III

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.