0

I'm trying to use the WM8960 Audio Board (not the HAT) on a Raspberry Pi Zero W. I followed the instructions for the HAT to install the driver (WM8960 Audio HAT User Manual). It seems to be installed correctly:

pi@box:~ $ sudo dkms status
wm8960-soundcard, 1.0, 4.14.79+, armv6l: installed
wm8960-soundcard, 1.0, 4.14.79-v7+, armv6l: installed

I used the pinout table in the same manual to connect the pins from the Pi Zero to the Audio Board. My current pin connection:

Audio Board --> Pi

VCC --> PIN 1 (+3V3 OUT)
GND --> PIN 6 (GND)
SDA --> PIN 3 (I2C1 SDA / GPIO2)
SCL --> PIN 5 (I2C1 SCL / GPIO3)
CLK --> PIN 12 (PWM0 / GPIO18)
WS --> PIN 35 (PWM1 / GPIO19)
TXSDA --> PIN 40 (GPCLK1 / GPIO21)
RXSDA --> PIN 38 (? / GPIO20)
TXMCLK --> not connected
RXMCLK --> not connected

Unfortunetly the board is not available in the sound card list:

pi@box:~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 7/7
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

I also can't see a connected I2C channel:

pi@box:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Is there a step by step instruction to use the WM8960 Audio Board on a Raspberry Pi Zero W? Did I connected something wrong or does anyone has some ideas how to use the board correctly? Thanks in advance for your answers.

  • try connecting only Vcc, GND, SDA and SCL .... it appears that the other pins are for I2S .... you did not label the pin names clearly ... for instance, what is WS? – jsotola Feb 3 '19 at 2:43
  • @jsotola - i2s is required for audio, i2c for control ... and WS is LRCLK – Jaromanda X Feb 3 '19 at 7:06
  • According to the specs for WM8960, TXMCLK needs to be connected for playback, and RXMCLK needs to be connected for recording - and you have neither connected - though, that wouldn't effect i2c – Jaromanda X Feb 3 '19 at 7:10
  • I only need playback, so I need to connect TXMCLK. But which pin should I use? – nkl-kst Feb 8 '19 at 18:58
  • I think the raspberry can only supply a low current on the 3.3V rail. try to connect an external power supply with at least 330mA capability. you can also find the schematics here: waveshare.com/w/upload/b/b6/WM8960_Audio_Board_Schematic..pdf waveshare.com/w/upload/f/fa/WM8960_Audio_HAT_Schematic.pdf There you can find the voltage regulator DS9193. – Sebastian Jan 31 at 21:02
1

update: the Board schematic seems to be wrong. This ist the pinning that works on my setup:

Pin                             WM8960      Raspberry
------------------------------------------------------
VCC (+3V3 OUT)                  1 + 2          4 + Voltage regulator to 3.3 V           
GND                             3 + 4          6 (GND)
SDA (I2C1 SDA)                    5            3 (GPIO 2)
SCL (I2C1 SCL)                    7            5 (GPIO 3)
CLK (I2S)                        10           12 (GPIO 18)            
LRCLK (I2S)                      11           35 (GPIO 19)         
I2S  DAC                         13           40 (GPIO 21)
I2S  ADC                         14           38 (GPIO 20)

I'm getting this output

pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
**card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi **wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0****
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 7/7
  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
card 1: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

And alsamixer also shows the WM8960-soundcard

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.