2-in, 8-out DSP platform using the Raspberry Pi + HATs

Success! following Charlies guidance for Raspbian-Buster on my old Pi2B.
Had to manually drive the kernel build from the command line, but it worked fine.
It was necessary to edit my "old" asound.conf from a prior Raspbian build to change "hw:0,0" to "hw:0,1" for this to work with mplayer. Pi is running Charlies ACDf_v3 filters with LR4 crossovers set at 200hz and 3000hz on a pair of 3-way Klipsch KSF10.5 speakers driven by an Onkyo TX-SR605 7.1 surround sound receiver through HDMI from the Pi. CPU utilization runs about 16% streaming RadioParadise main mix at FLAC. I am using ethernet cable and no wifi or bluetooth installed on this hardware.

Shout out to jrubins for his Instructable, Charlie for his plugins and instructions and all the others who post on this topic!
 
After upgrade to latest Raspbian Buster

FYI
After upgrading to latest Raspbian Buster ended up re-doing the kernel mod to restore the audio functionality. Had to set raspi-config for HDMI only and edited the config.txt to comment out hdmi_force_hotplug=1 and add force_hdmi_open=1 and uncomment hdmi_drive=2 and uncomment dtoverlay=vc4-fkms-v3d and uncomment start_x=0. Edited asound.conf to set hw:0,1 and edited mplayer.conf to add flag vo=null so that it would not bomb out when playing audio only m4a files.

Helpful Tip: force_hdmi_open=1 keeps the carrier signal alive to the av receiver so its relay doesn't "click" between tracks in a playlist when running mplayer from command line.


$ grep Revision /proc/cpuinfo
Gives following:
Revision : a21041
Which is apparently Model B2 with 1G

$ aplay -D hw:0,1 --dump-hw-params /dev/zero
Gives following:
Same as reported in earlier post by 'skyunlimited' except both 16 bits and 24 bits are supported and the Period_Bytes are now 262144.

Hope this helps anyone else out there running into problems with keeping their audio operational after upgrading the Pi OS.
 
Update:
Reboot after completing the steps on previous post the audio again would not work. Discovered that it is necessary to edit asound.conf and change hw:0,1 to hw:0,0. Save and reboot. Then edit asound.conf and change hw:0,1 save and $ alsactl kill rescan. This repairs the sound.

Note that the Pi must boot with asound.conf hw:0,0.
Booting with asound.conf hw:0,1 the sound will not work and $ alsactl kill rescan is not sufficient to change hw:0,1 to hw:0,0 and then back to hw:0,1.

I have not figured out the reason for this behavior.
$ aplay -l shows ALSA on card 0 devices 0, 1, and 2. Perhaps this is an artifact of Raspbian-Buster developed for the Pi4 which has dual HDMI outputs while my Pi2B has only a single HDMI output. Possibly the kernel needs to be edited to eliminate the second HDMI device.
 
Hi, I need you help please,

couldn't get a SupTronics ST6000-7.1, but the version with 8 Ch.(4x2ch.) Raspberry Pi Expansion Board

The output with Pi 3B+ looks like this: (Kernel 5.4.51-v7+)
Code:
 pi@raspberrypi:~ $ aplay -D hw:0,0 --dump-hw-params /dev/zero
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:0,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  U8 S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: [8 16]
FRAME_BITS: [8 32]
CHANNELS: [1 2]
RATE: [8000 192000]
PERIOD_TIME: [10000 16384000]
PERIOD_SIZE: [256 131072]
PERIOD_BYTES: [1024 131072]
PERIODS: [1 128]
BUFFER_TIME: (1333 16384000]
BUFFER_SIZE: [256 131072]
BUFFER_BYTES: [1024 131072]
TICK_TIME: ALL
  --------------------
and:
Code:
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  Subdevices: 3/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 2: sndrpihifiberry [snd_rpi_hifiberry_dacplusadc], device 0: HiFiBerry DAC+ADC HiFi multicodec-0 [HiFiBerry DAC+ADC HiFi multicodec-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
With:

Code:
pi@raspberrypi:~ $ speaker-test hw:0 -c 8
i hear on all four stereo outputs the "Front Left" and "Front Right" signal - 4x2 channels.


Any idea how I can get it work for a 2x8 channel crossover?

Thanks!
 
Hi, I need you help please,

couldn't get a SupTronics ST6000-7.1, but the version with 8 Ch.(4x2ch.) Raspberry Pi Expansion Board

Any idea how I can get it work for a 2x8 channel crossover?

Thanks!

If I remember correctly, the 2x4 channel board is configured to output four copies of the stereo signal, exactly what you have observed. This is how the board hardware is set up, so I do not believe that there is no way to modify it to get 8 separate channels.

I wish they still made the 7.1 boards because they work pretty well and were inexpensive. They are pretty much impossible to find now.

Have you looked at the Monoprice "Blackbird" 4K HDMI audio extractor:
Amazon.com: Monoprice BlackbirdTM 4K Series 7.1 HDMI Audio Extractor: Electronics
The same or similar unit is available for less at Part Express:
HDMI 4K2K LPCM 7.1 Audio Extractor
I have not tested one, so I can't comment on the audio quality, but it does get you 8 channels of audio via HDMI as long as the kernel allows it.
 
Thank's Charlie,

it's strange, I just plugged the X6000K-8.0CH board into another mashine (Ubuntu 18.04.5) and there it looks not bad:

Code:
~$ aplay -D hw:0,1 --dump-hw-params /dev/zero 
Wiedergabe: Rohdaten '/dev/zero' : Unsigned 8 bit, Rate: 8000 Hz, mono 
»HW Params« von Gerät "hw:0,3": 
-------------------- 
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED 
FORMAT:  S16_LE S32_LE 
SUBFORMAT:  STD 
SAMPLE_BITS: [16 32] 
FRAME_BITS: [32 256] 
CHANNELS: [2 8] 
RATE: [32000 192000] 
PERIOD_TIME: (20 256000] 
PERIOD_SIZE: [4 8192] 
PERIOD_BYTES: [128 262144] 
PERIODS: [2 32] 
BUFFER_TIME: (41 512000] 
BUFFER_SIZE: [8 16384] 
BUFFER_BYTES: [128 65536] 
TICK_TIME: ALL 
-------------------- 
aplay: set_params:1299: Sample-Format nicht unterstützt 
Available formats: 
- S16_LE 
 - S32_LE
aplay -L shows all surround lables:

Code:
........

front:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Front speakers 
surround21:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    2.1 Surround output to Front and Subwoofer speakers 
surround40:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    4.0 Surround output to Front and Rear speakers 
surround41:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    4.1 Surround output to Front, Rear and Subwoofer speakers 
surround50:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    5.0 Surround output to Front, Center and Rear speakers 
surround51:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers 
surround71:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers 

.....
The results of my first post are the same with plain and modified Buster kernel.
 
Thank you all, the complete "aplay -L" shows HDMI, I can check tomorrow the Ubuntu mashine if there is sound on the outputs:

Code:
:~$ aplay -L 
default 
    Playback/recording through the PulseAudio sound server 
null 
    Discard all samples (playback) or generate zero samples (capture) 
pulse 
    PulseAudio Sound Server 
hdmi:CARD=HDMI,DEV=0 
    HDA ATI HDMI, HDMI 0 
    HDMI Audio Output 
dmix:CARD=HDMI,DEV=3 
    HDA ATI HDMI, HDMI 0 
    Direct sample mixing device 
dsnoop:CARD=HDMI,DEV=3 
    HDA ATI HDMI, HDMI 0 
    Direct sample snooping device 
hw:CARD=HDMI,DEV=3 
    HDA ATI HDMI, HDMI 0 
    Direct hardware device without any conversions 
plughw:CARD=HDMI,DEV=3 
    HDA ATI HDMI, HDMI 0 
    Hardware device with all software conversions 
sysdefault:CARD=Generic 
    HD-Audio Generic, ALC3227 Analog 
    Default Audio Device 
front:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Front speakers 
surround21:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    2.1 Surround output to Front and Subwoofer speakers 
surround40:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    4.0 Surround output to Front and Rear speakers 
surround41:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    4.1 Surround output to Front, Rear and Subwoofer speakers 
surround50:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    5.0 Surround output to Front, Center and Rear speakers 
surround51:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers 
surround71:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers 
dmix:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Direct sample mixing device 
dsnoop:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Direct sample snooping device 
hw:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Direct hardware device without any conversions 
plughw:CARD=Generic,DEV=0 
    HD-Audio Generic, ALC3227 Analog 
    Hardware device with all software conversions 
audioswitchera
 
It was designed for the Pi3 and uses a full size HDMI port. With the Pi3 the seller provides a short rigid male-to-male "HDMI jumper" that connects the Pi's HDMI port to the HATs HDMI input. It's the copper thing in this pic:
IMG_1560_2048x2048.jpg

Because the Pi 4 has a mini or micro HDMI physical connector, this connection cannot be made so easily and you need a longer, looping connector with adapter. But, sure, it will work with the Pi4 just fine.

There are other 7.1 channel HDMI audio extractors you may want to consider. I think this one is really NLA.
 
Last edited: