Hegel H160

Hi dear developers!

I’m a fan of volumio! I have raspberry with volumio and Hegel h160 (amp&akm dac). When trying to connect raspberry to usb hegel h160, volumio defines it as DigiHug USB Audio. In this case volumio does not work volume control. can I make full support for the hegel h160 dac?

You know nothing, John Snow." My experience suggests how there aren’t many audio companies which offer really big progress from one product to another when we think within a range. Usually changes are subtle and often merely cosmetic. Even if there are tweaks, it’s often a purely functional address. Not with Hegel. These Norwegians couldn’t be bothered unless there were big sonic dividends. This was easily heard whilst comparing the H70 to the H80 or the HD11 to the HD12. I guess it reflects Bent Holter’s attitude. He’s the sort of engineer who seems never content to rest on his laurels. He always finds ways to improve something meaningful.

Hello all,

Similar question to the TS… I have a H360 and using the internal DAC, I was wondering if anyone has this unit and if it works properly on Volumio OS with DSD playback?

I know Hegel provides a few drivers for DSD on their website for Windows and Macbook, but don’t see any for volumio.

Thanks.

EDIT: This seems to be caused by my keyboard USB dongle that is also connected. If I remove the keyboard USB dongle, I can play all files up to 24bit and 96kHz without issues over the USB → Hegel H90 DAC.

Started a new topic here: [topic removed by moderator]
Here is the original message:

Hello!

New here and just got volumio installed and have a similar problem.
I have my pi 4 B connected to my Hegel H90 through USB. From testing with my Mac, I know that the H90 has no problem playing 98kHz material through the USB connection.

When I tried to play high-res material from the local storage (the same files I played on my mac), I get an error. The same error comes up if I try to listen to anything else, than 16bit 44.1kHz from QOBUZ. Can’t even listen to internet radios without getting the same error.

Any ideas how I could get around this problem?

image

Please, please do not post the same issue in different threads.
I removed the other one.

This didn’t turn out quite the way I expected to. The removed post had all the new info I had managed to gather after posting on this thread. To me it now seems that this isn’t a compatibility problem with Hegel (thus the edit to this thread and a link to the new post).

More info about the hardware conflict would have been in the removed post.

you shouldn’t post in different threads. In case you find it was wrongly placed, then it is fine to open another one. But remove the old one so we won’t have people looking after or commenting on issues that don’t exist

In that case, can you please restore the post that you removed, as it had the correct required info for debugging? This way I can remove the post on this thread (and this discussion that we had).

Here are the finding that make me think that the culprit isn’t the Hegel H90, but the Logitech’s mouse and keyboard combo, when used together with the USB DAC:

volumio: 2.882
hardware: PI 4 B (8GB)
DAC: Hegel H90 over USB
Keyboard and mouse: Logitech K400+
Screen: 4k television (using Touch Display plugin)

Here is what I found during long night of debugging:

volumio sees my Logitech K400+ keyboard and mouse as a audio device. Here is how I came to that conclusion.

First the lsusb -t output

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 2: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 2: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M

Then the aplay -loutput:

**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
card 5: Audio [DigiHug USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 5: Audio [DigiHug USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Notice the double DigiHug lines for card 5. In reality I have only one USB Audio interface connected.
NOTE: When I remove my keyboard’s wireless receiver USB dongle, the [USB Audio #1] disappears and everything works as expected (as the keyboard is not seen as an audio device any longer).

Tried persistent mapping as per here to work around this problem, but unfortunately no luck.

There is one more thing that caught my eye. When both my USB dac and the keyboards USB receiver are connected, the following comes up on dmesg:

[   10.904157] usb 1-1.4: Not enough bandwidth for new device state.
[   10.904238] usb 1-1.4: Not enough bandwidth for altsetting 2

Now here comes the question: Are the keybord’s USB dongle and my USB DAC causing enough traffic to cause the problem, or is the root of the problem, that my keyboard is being registered as an audio device?

Thanks for the help!

The problem may be that your keyboard and mouse are connected to the same USB hub as the DAC.
Note the “12M”, which says it is a low-speed usb 1.1 port, hence the DAC was “recognized” as Class 1 Audio. That is also what the message in dmesg output is pointing to.
USB 1.1 should only be set for the keyboard and mouse as they are normal HID devices.
This is what it looks like on my machine, before connecting a DAC

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 10: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 10: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 10: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, 12M

and this after:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 10: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 10: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 10: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 11: Dev 3, If 2, Class=Application Specific Interface, Driver=, 480M
    |__ Port 11: Dev 3, If 0, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 11: Dev 3, If 1, Class=Audio, Driver=snd-usb-audio, 480M

Your lsusb output shows that your keybaord is handled by the usbhid driver, not snd-usb-audio.
The fact that aplay -l shows 2 devices is normal, this depends on the DAC (I have one that does that too).

Is there some way you can switch ports and check until the DAC becomes recognized as a USB2.0 (480M) Class 2 Audio device?

Edit Is there a chance to swap the K400 keyboard for another one (just as a test)?

Thank you for the suggestions! I Tested with different ports and the USB DAC stayed at 12M. I could try another keyboard to see if that helps.

I started getting worried that my hardware is somehow broken, so I installed the latest Rasberry PI OS on another SD card and took a look in order to find what would happened. I left all my gear attached (Hegel USB DAC, Logitech K400+ USB dongle and a USB pen drive attached).

The result was that I was able to play hi-res audio with VLC without problems with the same gear I had problems with on Volumio.

Here is how I set the VLC audio.

Filtering was disabled so when I played 24bit 96kHz material, the DAC showed that it was receiving that exact material. Also no problems playing mp3 files or normal CD quality.

At this point I would say that the both the 8GB PI 4 is working as expected and the external hardware is able to coexists while playing hig-res material as far as USB class I allows.

Now I just need to find a way to tell Volumio how to accomplish the same task as the Raspberry PI OS.

If it’s any help, there are the outputs from the Raspberry PI OS that worked:

pi@raspberrypi:~ $ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 7, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 4: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 6, If 3, Class=Audio, Driver=snd-usb-audio, 12M

The above looks quite similar (to me) to what I got from volumio. Maybe there is some detail I’m missing.

Here is the rest:

pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  Subdevices: 4/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: Audio [DigiHug USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 2: Audio [DigiHug USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The only thing I notice is the Subdevices handling for the card that has the DigiHug USB Audio. Anything else worth looking at/testing?

This is very strange, with Raspberry OS the DAC is also recognized as a Class 1 audio device.
How can this work with DSD?
That is impossible in my opinion, you do not have the bandwidth to transfer the data with Class 1 audio.
Are you sure, that with VLC you do not automatically get resampling?

Sorry about that, I should have rechecked what I had typed. Here are the type of files I have been debugging with:

  1. 320kbps mp3 file
  2. 16bit 44kHz Wav file
  3. 24bit 48kHz Wav file
  4. 24bit 96kHz Wav file

All of these should be be able to be handled by Class I. At first VLC was resampling everything to 44kHz (I could see this from the DACs display). I managed to configure VLC to send the same sample rates to the DAC as the original files were.

With all the devices connected, Raspberry OS managed to play all of the test files. Volumio only allowed me to listen to to 16bit 44kHz Wav file (with the keyboard attached). All the other test files produced ALSA device “hw:5,0” error.

Command
lsusb
may help, vendor/product ID may indicate what support there is in the PI kernel.
There is not much more I can do to help.
Wonder If we have any member using Hegel 160 successfully.
Is Hegel 160 in our compatibility list?

Good call. It seems that the VIA USB is the difference between the Raspberry PI OS and volumio, which might explain the USB problems? Here is the outputs (volumio is the bottom one):

pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1852:7022 GYROCOM C&C Co., LTD 
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

volumio@volumio:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1852:7022 GYROCOM C&C Co., LTD 
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0930:6545 Toshiba Corp. Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
Bus 001 Device 002: ID 2109:3431  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Here are the versions that Raspberry PI OS is using:

EEPROM: 2021-03-18
VIA USB3: 000138a1

The thing is that that volumio works fine with the Hegel H90 as long as I don’t connect my keyboard+mouse dongle. Using latest Raspberry PI OS showed that both can run at the same time. The interesting part is trying to figure out how :slight_smile:

Thank you again for helping me out!