I bought a simple USB speaker for my raspberry pi. I plugged it in and… it didnt work. Here is how to configure it.
Use arecord to record a sample, then use aplay to play it back and test the audio output. In my case the sound comes out the headphones but not the USB speaker.
arecord -Dac108 -f S32_LE -r 16000 -c 4 hello.wav aplay hello.wav
In the home or root folder (e.g. home/pi/) there is file called .asoundrc which describes the audio configuration.
cd ~ sudo nano .asoundrc
This should bring up nano with a file like this:
pcm.!default { type asym playback.pcm { type plug slave.pcm "output" } capture.pcm { type plug slave.pcm "input" } } pcm.output { type hw card 0 } ctl.!default { type hw card 0 }
Notice the card attributes are set to 0. Exit .asoundrc and then use aplay to list the available output devices
# Ctrl + X aplay -l
You should see something like this…
pi@raspberrypi:~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: Device [USB2.0 Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
Here it says card 0 is the headphones, and the USB is card 1. In the configuration file the cards are set to 0 i.e. the headphones.
We need to change asoundrc to use card 1. Go back into .asoundrc in nano and change it.
sudo nano .asoundrc
pcm.!default { type asym playback.pcm { type plug slave.pcm "output" } capture.pcm { type plug slave.pcm "input" } } pcm.output { type hw card 1 } ctl.!default { type hw card 1 }
Exit Nano and save it, then test it again. Using aplay hello.wav. If there is still no sound try and change the volume using the alsamixer
aplay hello.wav alsamixer