Skip navigation

Stream spdif in

Posted by lensteruk May 21, 2016

hopefully someone can point me in the right direction to complete my first audio project.


The aim is to take an output from my LINN amp via SPDIF (primarily from my turntable) and connect this to the Cirrus Audio Card on the RASPI and stream this audio to a second pi which is configured to receive the stream and output it to a speaker.


The idea is to create several raspi enabled speakers around the house and use this to stream the output from my turntable.


I now have the receiver all set up and working beautifully using openElec but I am a bit stuck sending the audio from SPDIF in


I am sure it's relatively simple and a headless distro with a pre configured daemon but.....


for those who like to make hifi-music with the raspberry pi there is a download with a realtime kernel for the rpi a+ and b+ boards available on

To get everything running read

Have fun.

I just bought a new copy of the Cirrus Logic Audio Card.  I'm still waiting on delivery of the quadcore Pi 2, so my fallback option is to start off using it on my B+.


Rather than downloading and installing the Cirrus Audio linux os image, I'd prefer to keep my existing deployed linux installation and build a new kernel/driver to add support for the card on my existing system.  To do this I'm following CirrusLogic's official "Build the Code" instructions on github:


Unfortunately, the "Build the Code" instructions contain unresolved errors that prevent the user from completing a successful kernel build, unless he takes the time to understand the build instructions, recognize the errors, and fix them on his own.  As supplied, the CirrusLogic instructions are defective the just do not work.  It appears that CirrusLogic's official "Build the Code" guide is just defective.  It almost seems as if someone did a half-baked job of writing the instructions, as it looks like they didn't even bother to verify that the build instructions actually work, because as they are written they will not work.


Overall, I'm quite disappointed with my purchase for a couple of reasons:


1.  The CirrusLogic Audio card is being advertised as being compatible with the new quadcore RPi2, when the reality is that it doesn't work because the kernel drivers for ARM7 are vaporware.


2.  Falling back to using the CirrusLogic Audio Card with ARM6 on the RPi B+ isn't an option, as CirrusLogic's Official "Build the Code" guide contains errors and doesn't even work.


CirrusLogic needs to take the time to  fix these problems, so that the product they're selling actually works like it's advertised to work.  Unfortunately, if you take the time to survey the web, you'll find plenty of people who are having problems getting the platform to work.  You shouldn't have to be a linux kernel developer, and you shouldn't have to recognize the errors in CirrusLogic's instructions and correct them yourself in order to get this product to work.  Overall, I'm quite disappointed.

Introduction to the Cirrus Logic Audio Card

With the launch of the Model B+ there was one significant, yet highly appreciated change which meant the existing audio card with the P5 pogo pins was no longer compatible with the Model B+. This is a mechanical limitation and unfortunately it wasn't possible to find a neat solution for the existing card.

To deliver the same audio experience we have updated and created a new audio card for Model B+, called the Cirrus Logic audio card. For anyone who may have missed it Wolfson Microelectronics was acquired by Cirrus Logic in the summer of 2014, hence the name change for the audio card.

This short blog introduces the new Cirrus logic audio card and provides some background on hardware and software developments.



From a hardware perspective if it isn't broke then don’t mess with it - that was the simple approach we took to the hardware design.

So the updated audio card uses the same core components (WM5102 and WM8804) and has the same core architecture as the original card. From a features perspective there is no significant change however we have listened to the feedback and made some minor improvements. This is mainly around a back powering option, changing the expansion header to 2.54mm pitch, increasing the expansion header to make the unused GPIO pins from the Raspberry Pi accessible and adding the option to connect external stereo ECM microphones to the line input.  

This ensures that users can experience the same high quality audio experience using Model B / B+ or A+.


Please refer to the table on the main Cirrus Audio card community page, this provides a good summary of the feature comparison between cards.


The key take away on hardware is that the same primary functions remain on both audio cards with only minor changes in hardware design.



From a software perspective we continue to update and improve.

Firstly the software for Model B and Model A+/B+ is exactly the same, automatic detection and pin mapping is included so there is no need for different compiled software kernels for the two boards. You can use the Cirrus 3.12 kernel image on either the Wolfson or Cirrus boards with no manual configuration or setup required.


What is currently available from a software perspective

  • A Raspbian image is available for download from the E14 community website using kernel 3.12. This will support the Model B,  B+ and A+ using either the Wolfson or Cirrus audio cards.
  • We have also published our source code for the 3.12 kernel on our own newly created github repository. You can find details and the source code here -


From the existing Raspberry Pi pull request we received good feedback on issues that users discovered, we have where possible addressed the issues and these are incorporated in the Cirrus github.

With regards to upstreaming into the Raspberry Pi kernel and in particular Kernel 3.12, we have encountered issues relative to how the kernel operates when the card is not connected, there are also issues which impact other audio cards. We have tried to find a solution to this but unfortunately the effort is not insignificant and reaches further than our own drivers. Therefore we are currently unable to support inclusion into the official Raspberry Pi 3.12 kernel.

We have discussed this with the maintainer and he is in support of this limitation and also with regards to our plans going forward.


What is our current plan going forward

Integration into the Raspberry pi kernel and in turn the Raspbian distribution remains our end goal. With the issues we have encountered integrating into the 3.12 kernel we are now focusing our efforts on integration to the latest kernel (3.18). The 3.18 kernel in particular adds support for device tree, this in turn provides support for add on modules and in particular will allow the issues with multiple I2S audio cards in 3.12 to be addressed. The Raspberry Pi kernel is planning to move from the current 3.12 kernel in the future so this provides an opportunity to add future support as part of the standard distribution.



There are now two audio cards available for the appropriate model of Raspberry Pi, both cards use the same software and most importantly both will deliver the same HD audio experience for both capture and playback.


We hope you find the new audio card a worthwhile addition to your Raspberry Pi Model B+ experience.

I was unable to boot off of cirrus_audio.img when it was copied onto a couple different 16GB SD cards.


It works fine after being copied onto an 8GB SD card.


The old wolfson image installed and booted just fine on a 16GB SD card.


Not sure if anyone else has tried this. I was planning on eventually installing this on a 64 GB SD card (I have some on order), but am not sure at this point that I'll be able to do so.


Has anyone else been able to install the cirrus_audio boot image onto a 16 GB SD card or larger?

Cirrus Logic Audio Card for use with Raspberry Pi being demonstrated at electronica 2014, available soon at Farnell element 14.