Hi, I’ve just unpacked my two boards. Tested the Audio+ board (the “speaker-test” verification does NOT work : even when the Audio+ board is detected and selected, the speaker-test doesn’t send O/P to the DAC. The best test is using a browser to stream.) All good.
I then added the radio board and followed the installation steps from the github readme (because there are NO installation instructions at the “installation instructions” link…). The radio board works using it’s on-board amp (analog O/P), but the Audio+ board is no-longer detected and thus can’t be used for O/P.
The only way I’ve found to get the DAC board detected and operational is to remove the dtoverlay entry for the Radio board. Conflict with SPI CS’s? Other conflict ? The Radio board’s pinouts aren’t documented - that would be a good starting point, please.
My goal was to create a DAB+ radio with HiFi Stereo O/P.
Hi Glenn,
Thanks for the detailed report. This is not an SPI chip-select conflict. The issue is the I2S audio configuration.
The radio board outputs audio as I2S into the Raspberry Pi, very similar to an I2S microphone/capture device. The Audio+ board is then the I2S playback device. If both boards load their own independent overlays, Linux may only expose one card correctly, or one overlay may hide/conflict with the other.
We have added a simpler combined setup for this case: the Radio board is declared as the I2S capture side, and the Audio+/MIC+ style board is used as the I2S playback side. Then ALSA routes the radio audio natively with alsaloop, no Python audio bridge needed.
The guide is here:
The basic idea is:
alsaloop
-C hw:CARD=radioi2soutput,DEV=0
-P hw:CARD=radioi2soutput,DEV=1
-f S16_LE
-r 48000
-c 2
We also added an ALSA softvol example so the output volume can be controlled cleanly with amixer.
So yes, your goal should be possible: Radio board for DAB/FM reception, and Audio+ for the stereo output. The important point is to use one combined I2S profile instead of enabling two separate audio overlays at the same time.
We will also improve the pinout / hardware documentation, because you are right that this should be easier to understand from the start.