element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Cirrus Logic Audio Card working on the Raspberry Pi 2
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 165 replies
  • Subscribers 684 subscribers
  • Views 22778 views
  • Users 0 members are here
  • wolfson
  • raspberry
  • audio
  • pi
  • cirrus
  • raspberry_pi
  • rpi2
  • raspeberry_pi_accessories
  • pi2
Related

Cirrus Logic Audio Card working on the Raspberry Pi 2

Former Member
Former Member over 10 years ago

Hi all!

 

As you might know, Cirrus Logic's main kernel source branch recently switched to 3.18.

My first thought was "Hmm, that means the Cirrus Logic card could finally work on the RPi2..."

I have built a couple of 3.18 kernels for my B+ and RPi2 and I have managed to get both models to produce sound image

 

It's still early days, i.e. there are possibly bugs and glitches to fix, but for those of you who would like to try it out I've made an image file that you can download here:

https://drive.google.com/file/d/0BzIaxMH3N5O1cmJ1bFhMcG1hc0E/view?usp=sharing

The file is a 1.3 GB zip. Uncompressed size is 3.1 GB, so it fits comfortably on a 4 GB card.


The image is based on the standard 2015-02-16-raspbian-wheezy image from the Foundation that you flash to a SD card for a fresh install.

I have only added my kernels and set up the configuration files to get the card going.

It should work on the older B model  with a Wolfson Audio Card too, but I haven't tested that yet.

 

Have fun!

--

Ragnar

  • Sign in to reply
  • Cancel
Parents
  • Former Member
    Former Member over 10 years ago

    For those interested I've uploaded the following packages to my Raspbian repository (http://rpi.autostatic.com/):

    • linux-image-cirrus: meta package that installs a kernel with Wolfson/Cirrus Logic audio interface support
    • cirrus-config-overlay: package that installs the device tree overlay file for the Wolfson/Cirrus Logic audio interface
    • cirrus-config-modprobe: package that installs the modprobe config file for the Wolfson/Cirrus Logic audio interface
    • cirrus-config-scripts: package that installs the playback, record and reset scripts for use with the Wolfson/Cirrus Logic audio interface
    • cirrus-config: meta package that installs all the above packages

    If anyone is interested in testing these packages, go ahead, feedback is greatly appreciated. On a clean Raspbian install adding my repo, installing the cirrus-config package and rebooting your RPi should enable the Wolfson/Cirrus Logic audio interface. No need to edit any config files.

     

    Jeremy

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • troydhanson
    troydhanson over 10 years ago in reply to Former Member

    This worked perfectly. Thanks!

     

    To recap my steps. Starting from fresh Raspbian wheezy on Rpi2 with Cirrus AC.

    wget -q -O - rpi.autostatic.com/autostatic.gpg.key | sudo apt-key add -
    sudo wget -q -O /etc/apt/sources.list.d/autostatic-audio-raspbian.list rpi.autostatic.com/autostatic-audio-raspbian.list
    sudo apt-get update
    sudo apt-get install cirrus-config
    sudo reboot
    Playback_to_Lineout.sh
    aplay some-wav-file
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • troydhanson
    troydhanson over 10 years ago in reply to Former Member

    This worked perfectly. Thanks!

     

    To recap my steps. Starting from fresh Raspbian wheezy on Rpi2 with Cirrus AC.

    wget -q -O - rpi.autostatic.com/autostatic.gpg.key | sudo apt-key add -
    sudo wget -q -O /etc/apt/sources.list.d/autostatic-audio-raspbian.list rpi.autostatic.com/autostatic-audio-raspbian.list
    sudo apt-get update
    sudo apt-get install cirrus-config
    sudo reboot
    Playback_to_Lineout.sh
    aplay some-wav-file
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • Former Member
    Former Member over 10 years ago in reply to troydhanson

    Troy,

     

    I need to record audio in files .wav and save in the SD card to the raspberry  with cirrus audio logic card, someone help me please,  it is urgent!!!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to Former Member

    Diego

     

    This works for me, to capture and record audio from the Cirrus card:

     

    #!/bin/bash

    ./Record_from_lineIn.sh

    arecord -f S16_LE  -c 2 -d 300 -D hw:sndrpiwsp -r 192000 /tmp/s.wav

     

    I want only 16-bit audio.  If you want full 24-bit, then replace S16_LE with S24_LE

    -c 2 specifies two channels (stereo)

    -d 300 specifies 300 seconds of audio captured

    -D gives the device name ( arecord -L will list available devices)

    -r 19200 specifies rate 19.2 kHz

    /tmp/s.wav is the name of the file for the captured audio

     

    You'll find other options from

    man arecord


    Good luck -- Ross



    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to Former Member

    Thank you for this!

     

    Interestingly, you have a typo in your actual line of code.  Instead of 19200 you have 192000.  As it turns out, 192000 is actually a valid sample rate.  441000 threw an error.  Of course I really wanted 44100.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to Former Member

    OK, so I was able to record from both the onboard MEMS mics and from this: http://www.amazon.com/Lavalier-Omnidirectional-Condenser-Microphone-Smartphones/dp/B011EXBCMQ

     

    That lapel mic is a TRRS (Tip, Ring, Ring, Sleeve) which is meant for smartphones.

     

    I wasn't sure how it would behave with the Headphone jack (black) or the Line-In Jack (Pink) of the CLAC.

     

    Below are the batch files I created.

     

    For the MEMS mic record I used:

     

    File: testDMIC.sh

    #!/bin/bash

    ./Record_from_DMIC.sh

    arecord -f S16_LE  -c 2 -d 5 -D hw:sndrpiwsp -r 44100 s_testDMIC.wav

     

    pi@raspberrypi: ~$ sudo chmod +x testDMIC.sh

    pi@raspberrypi: ~$ sudo bash testDMIC.sh

    pi@raspberrypi: ~$ aplay s_testDMIC.wav

     

    It worked very well.  Playback was crystal clear.

     

    For the Lapel Mick I tried two ways.  First, recording from the Headset jack (black)

     

    File: testMicHeadset.sh

    #!/bin/bash

    ./Record_from_Headset.sh

    arecord -f S16_LE  -c 2 -d 5 -D hw:sndrpiwsp -r 44100 s_testMicHeadset.wav


    (plug in the Mic to the Heaset Jack)

    pi@raspberrypi: ~$ sudo chmod +x testMicHeadset.sh

    pi@raspberrypi: ~$ sudo bash testMicHeadset.sh

    (unplug the mic from the headset jack, plug in the speakers/headphones to the headset jack)

    pi@raspberrypi: ~$ aplay s_testMicHeadset.wav


    Again, it worked very well.  Was a bit hotter than the MEMS mics, or maybe I should say the MEMS mics were a tad bit attenuated in comparison.  Playback was crystal clear.


    The second way was to record using the Lapel Mic using the Line In (Pink)


    #!/bin/bash

    ./Record_from_lineIn.sh

    arecord -f S16_LE  -c 2 -d 5 -D hw:sndrpiwsp -r 44100 s_lineIn.wav


    Got nothing out of the wav file.  Was completely silent.  This makes sense, since microphone levels are such low power and would require a pre-amp to go into a Line Level.  So I was intrigued by the script titled "Record_from_lineIn_Micbias.sh" which, according to the user manual, says:

    "Record from line in socket at microphone sensitivity level, and with mic bias voltage switched ON "

     

     


    So I tried:

    #!/bin/bash

    ./Record_from_lineIn_Micbias.sh

    arecord -f S16_LE  -c 2 -d 5 -D hw:sndrpiwsp -r 44100 s_LineInMIC.wav


    Heard a soft pop at the beginning and then silence.  I don't know enough about the LineIn circuitry vs the Headphone circuitry to provide clarification as to what is happening.



    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to Former Member

    Thanks a lot for your help,

     

    now , i want to make a script with cirrus audio logic card , I mean  i want to start recording audio after 5 minutes when the raspberry system start.

     

    i mean,

    1) the raspberry start and boot the OS

    2)after 5 minutes automatically start recording audio or execute this instruccion (arecord -f S16_LE  -c 2 -d 300 -D hw:sndrpiwsp -r 192000 /tmp/s.wav)

    3)finish the process

    please help me!!

     

    Please help!!! , i dont have time

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to Former Member

    Diego

     

    You need a shell script like this:

     

    #!/bin/bash

    # Enable the Cirrus for recording

    /home/pi/Record_from_lineIn.sh

    # Wait 5 minutes

    sleep 5m

    [ record command ]

    [ whatever comes next ]

     

    Save it as an executable script ( say /home/pi/delayrecord )

    Add a line to /etc/rc.local to invoke it asynchronously on startup

     

    . . .

    /home/pi/delayrecord &

    . . .

     

    Cheers -- Ross

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube