Sound Card with STM32F7 Discovery and S/PDIF, USB, Touch, LCD VU Meter

Home
STM32F7 Discovery Spot

Most flexible Sound Card ever

  • You are looking for a USD 47.00 Sound Card with S/PDIF, USB, Touch, VU Meter ...?
  • Yes, for USD 47.00 plus your Firmware (download below) - you get a Configurable Sound Card
  • You have a STM32F7 Discovery [1] eval board and want to do more with it?
  • You want to convert USB or S/PDIF Audio into I2S in order to feed a DAC?
  • Yes, there is: STM32F7 Discovery board with Audio Firmware [2][3], connect to a PC as sound card.
  • Or use STM32F7 Discovery as Audio Sound Card on Lyrebird

How does it work?

I was looking for a micro-controller based Embedded ARM Cortex M7 Board for audio processing, as interface for Lyrebird True24 DAC, or any other exernal I2S DAC ...

The STM32F7 Discovery board is a great solution and works fine.

  • The firmware is an OpenSTM32 [3] Cortex-M7 project, I am thinking about to use Coocox.
  • The firmware will provide an USB Audio device, or S/PDIF input device so that it works as USB Audio 1.0 device, S/PDIF player.
  • Select the interface, as 48 or 96KHz S/PDIF or 48KHz USB via LCD Touch Panel.
  • The onboard headphone DAC is used.
  • The I2S signals, e.g. for Lyrebird DAC, are available on headers (currently on the QSPI chip, I will provide also on Arduino headers, potentially it will disable onboard DAC).
  • Yes, it works also to feed the Lyrebird DAC, as external I2S DAC connected.
  • Have also a nice VU Meter, displayed on the LCD.

Please find the ZIP with the project below (for OpenSTM32, as Coocox coming).

Or load and flash the BIN file, without any worries with IDE and compilation (see provided flash images for ST-Link tool).

Remark: both projects are identical, except: there is a macro ONBOARD_DAC. Depening if set to it or as NO_ONBOARD_DAC it generates FW for onboard DAC or as I2S on Arduino header.

Downloads

Please, if you want to try, download the OpenSTM32 project here.

This project supports S/PDIF input, USB input, select via LCD Touch, send I2S to onboard DAC and have I2S output on QSPI pins (for an external DAC with flying wires. Or with macro set in a different way it generates I2S on Arduino header.

Download Eclipse_WS project (10 MB)

If you have STM32 ST-Link Utility installed - you can download and flash the BIN image file directly without to compile project.

Download STM32F7_USBAudio BIN image (110 KB)

External I2S on Arduino Header

Please, if you want to try, download the OpenSTM32 project here.

This project supports S/PDIF input, USB input, select via LCD Touch, send I2S to SAI_1_B (not onboard DAC) and have I2S output on Arduino header, CN5 (for an external DAC stacked with Discovery board, using the dedicated headers).

Download Eclipse_WS_ext project (10 MB)

If you have STM32 ST-Link Utility installed - you can download and flash the BIN image file directly without to compile project.

Download STM32F7_USBAudio_ext BIN image (105 KB)

STM32F7 and Lyrebird DAC

STM32F7 external I2S on Arduino header

Trouble - do you want to order?

If you have trouble to build the project, not familiar with firmware build, to use OpenSTM32, to flash the board or you need a turn key solution - I can do it for you: if you agree to spend USD 50.00 plus tax, plus shipment I will send you a working board.

Please, send me an email to tj[]tjaekel.com or rpidac[]tjaekel.com if you want to purchase a flashed STM32F7 Discovery board.

Remarks

The VU Meter is linear, not (yet) calibrated in dB.

In original CubeF4 FW, demo, was an issue with the USB buffer management, playing via DMA to SAI (I2S). I tried to fix this issue. Otherwise, you will hear phase of distortion randomly, for a short period. But it seems to depend on the Discovery board itself, some work nice, some not, potentially an issue with the clock generation (not really accurate). It has not completely resolved.

Setting the volume for onboard DAC to 100 (full) does not sound well: it has audible distortions. Set just to 80, also it aligns with same volume level if playing from S/PDIF (not the same volume level).

There is still an issue if you press next on Windows Media Player: sound streamed stopps for a while and the DMA repeats the recent buffer content. Could be fixed bu monitoring if audio input was there ans stop DMA (or fill buffer with NULL samples) in case of no input, no updates.

Select an audio interface on Touch Screen - it will start to play, make sure that sample rate correlates, for new interface press RESET button.

Video

Please see a YouTube video here

Pictures

Discovery Audio Devices on PC Discovery Audio Devices Selection on touch LCD Discovery with LCD VU Meter Discovery with external I2S DAC
 

References

[1] ST: STM32F7 Discovery

[2] Order at Digikey

[3] OpenSTM32 tools, forum etc.