Skip to content

Commit fe6988e

Browse files
Merge pull request #3855 from learmj/codeczero
Additions to audio HAT set up and configuration
2 parents b1c6b24 + 198adc2 commit fe6988e

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

documentation/asciidoc/accessories/audio/configuration.adoc

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ All the necessary mounting hardware including spacers, screws and connectors is
3737

3838
=== Hardware versions
3939

40-
There are multiple versions of the audio cards, and the version that you possess determines the actions required to configure it. Older IQaudIO-marked boards (black PCB) are electrically equivalent to the Raspberry Pi-branded boards (green PCB) but have different EEPROM contents. The following command can be used to confirm which version you have:
40+
There are multiple versions of the audio cards. Your specific version determines the actions required for configuration. Older, IQaudIO-branded boards have a black PCB. Newer Raspberry Pi-branded boards have a green PCB. These boards are electrically equivalent, but have different EEPROM contents.
41+
42+
After attaching the HAT and applying power, check that the power LED on your audio card is illuminated, if it has one. For example, the Codec Zero has an LED marked `PWR`.
43+
44+
After establishing the card has power, use the following command to check the version of your board:
4145

4246
[source,console]
4347
----
@@ -98,6 +102,21 @@ The following command will set your device to use the on-board MEMS microphone a
98102
$ sudo alsactl restore -f /home/<username>/Pi-Codec/Codec_Zero_OnboardMIC_record_and_SPK_playback.state
99103
----
100104

105+
This command may result in erroneous messages, including the following:
106+
107+
* "failed to import hw"
108+
* "No state is present for card"
109+
110+
In most cases, these warnings are harmless; you can safely ignore them.
111+
112+
However, the following warnings may indicate a hardware failure:
113+
114+
* "Remote I/O error"
115+
116+
In Linux, the following warnings indicate that the kernel can't communicate with an I2C device:
117+
118+
* "Remote I/O error" (`REMOTEIO`)
119+
101120
In order for your project to operate with your required settings when it is powered on, edit the `/etc/rc.local` file. The contents of this file are run at the end of every boot process, so it is ideal for this purpose. Edit the file:
102121

103122
[source,console]
@@ -109,7 +128,7 @@ Add the chosen script command above the exit 0 line and then *Ctrl X*, *Y* and *
109128

110129
[source,bash]
111130
----
112-
#!/bin/sh -e
131+
#!/bin/sh
113132
#
114133
# rc.local
115134
#
@@ -152,6 +171,16 @@ pcm.!default {
152171

153172
Press `Ctrl+X`, then the `Y` key, then *Enter* to save. Reboot once more to complete the configuration:
154173

174+
Modern Linux distributions such as Raspberry Pi OS typically use PulseAudio or PipeWire for audio control. These frameworks are capable of mixing and switching audio from multiple sources. They provide a high-level API for audio applications to use. Many audio apps use these frameworks by default.
175+
176+
Only create `~/.asoundrc` if an audio application needs to:
177+
178+
* communicate directly with ALSA
179+
* run in an environment where PulseAudio or PipeWire are not present
180+
181+
This file can interfere with the UI's view of underlying audio resources. As a result, we do not recommend creating `~/.asoundrc` when running the Raspberry Pi OS desktop.
182+
The UI may automatically clean up and remove this file if it exists.
183+
155184
[source,console]
156185
----
157186
$ sudo reboot

0 commit comments

Comments
 (0)