BBB Audio Cape RevB Getting Started

From eLinux.org
Jump to: navigation, search

This guide is intended to walk through the basic instructions on how to get your Audio Cape working. If you have any question, please email support@circuitco.com.


To purchase the Audio Cape please visit BoardZoo.com

To purchase the BeagleBone Black please visit BeagleBoard.org


The instructions below are performed under following kernel and may vary for different kernel versions.

    root@beaglebone:~# uname -a
    Linux beaglebone 3.8.13-bone47 #1 SMP Fri Apr 11 01:36:09 UTC 2014 armv7l GNU/Linux

Load the device tree file

Ensure your BBB is connected to the internet. Download the provided device tree file and decompress it. You may end up doing something like this:

    root@beaglebone:~# wget http://elinux.org/images/1/10/BB-BONE-AUDI-02-00A0.zip
    root@beaglebone:~# unzip BB-BONE-AUDI-02-00A0.zip

If you don't have unzip installed. Run as root:

    root@beaglebone:~# apt-get update
    root@beaglebone:~# apt-get install unzip

Compile the device tree file and move it to /lib/firmware:

    root@beaglebone:~# dtc -O dtb -o BB-BONE-AUDI-02-00A0.dtbo -b 0 -@ BB-BONE-AUDI-02-00A0.dts
    root@beaglebone:~# mv BB-BONE-AUDI-02-00A0.dtbo /lib/firmware

Since this Audio Cape uses the same audio signal from the onboard HDMI interface, you need to disable the audio portion of the HDMI by edit the uEnv.txt at /boot/uboot. Add this line to the uEnv.txt file:

    optargs=capemgr.disable_partno=BB-BONELT-HDMI

Reboot your BBB. Log in and check the capemgr:

    root@beaglebone:~# cat /sys/devices/bone_capemgr*/slots
        0: 54:PF--- 
        1: 55:PF--- 
        2: 56:PF--- 
        3: 57:PF--- 
        4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
        5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
        6: ff:P-O-L Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN

Note that the "virtual cape" BB-BONELT-HDMIN is loaded instead of the BB-BONELT-HDMI. The difference between the two "capes" is that the BB-BONELT-HDMIN does not include the audio portion. Now load the DT file for Audio Cape:

    root@beaglebone:~# echo BB-BONE-AUDI-02 > /sys/devices/bone_capemgr*/slots
    root@beaglebone:~# cat /sys/devices/bone_capemgr*/slots
        0: 54:PF--- 
        1: 55:PF--- 
        2: 56:PF--- 
        3: 57:PF--- 
        4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
        5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
        6: ff:P-O-L Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
        7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-BONE-AUDI-02

The Audio Cape is now loaded.

To make the Beaglebone load the cape every time:

   root@beaglebone:~# nano /etc/default/capemgr

and add the following line

CAPE=BB-BONE-AUDI-02

Save and reboot and the DTBO for the cape will load each time it is booted.

Play Audio Files

Before playing an audio file, you may need to set the volume and configuration of the codec. Download the asound.state file to /etc/var/alsa.

    root@beaglebone:~# cd /var/lib/alsa
    root@beaglebone:~# wget https://raw.githubusercontent.com/CircuitCo/BeagleBone-Audio/files/asound.state

You may need to reboot your BBB (and load the Audio Cape DT file again if required).

Play a WAVE file

To play a WAVE file (say sample.wav), run:

    root@beaglebone:~# aplay sample.wav

Record an audio input

To record an audio input, you can use a male-to-male audio cable to connect from an audio source (phone, lapotp, etc) to the audio input connector on the Audio Cape. Run the command below

    root@beaglebone:~# arecord -r 44100 -f S16_LE -c 2 input.wav

Play the recorded file:

    root@beaglebone:~# aplay input.wav

Alsamixer controls that are active and work

alsamixer provides controls for *most* of the chip. There are, however, only somethat matter and work. for recording and playback.

Playback

PCM - Sets the level of playback from recorded audio.
Line - When this is Green with QQ in the display the LIne Mixer is enabled.
Line DAC - Sets Global Line output level
Left Line Mixer DACL1 - When this is Green and has QQ displayed Left Line Output is enabled
Left Line Mixer DACR1 - Sets Left Line output level (leave up full)
Right Line Mixer DACL1 - When this is Green and has QQ displayed Right Line Output is enabled
Right Line Mixer DACR1 - Sets Right Line output level (leave up full)
HP - When this is Green with QQ in the display the Headphone output is enabled. 
HP DAC - Global Headphone output level. (use this to set level of Headphones)
Left HP Mixer DACL1 - When this is Green and has QQ displayed Left Headphone is enabled
Left HP Mixer DACR1 - Sets Left Headphone output level (leave up full) 
Right HP Mixer DACL1 - When this is Green and has QQ displayed Right Headphone Output is enabled
Right HP Mixer DACR1 - Sets Right Headphone output level (leave up full)
Left PGA Mixer Mic3L - When Green and has QQ displayed MIc3L is enabled (This is the Input setting for this Cape)
Right PGA Mixer Mic3R -  When Green and has QQ displayed MIc3R is enabled (This is the Input setting for this Cape)
Falsely in playback-view:
ADC HPF Cut-off - Enable / disable a (digital) high pass filter for capture (e.g. to remove DC offset) 

Capture

PGA - Set Capture level (stereo or Mono)
(This is the only control that works on Capture.)