Audio-GD USB-DAC NFB11.32 not supported?

Hello,

I just bought recently a new USB-DAC / Headphone-amp: the Audio-GD NFB11.32 (Sabre es9018 DAC-chip inside). I tried it get it working in Volumio, but it did not work (I can see it as audio-device “audio-gd”, so it is recognized). When I try to play any music it’s just get stuck and no music can be played ?!
I also used Rune Audio, the same way as I did with Volumio and surprise: in RA the USB-DAC is recognized in the same way and also plays music without any problem. I know there is a difference in the linux-distribution (Debian vs Arch); can it be that I need to upgrade to a newer kernel? If so will Volumio still work?

Regards,

MSH

I have the same issues on my Audio-gd NFB-27.
On both volumio 1.5 and archphile 0.99.2 beta, all sound was distorted at any bit and frequency on usb connection.
On both volumio 1.5, at i2s optical output, the sound is alright at 16 bit and 44.1 kHz, but sound was distorted at higher bit and frequency on optical connection.

On my old Audio-gd NFB-11 (2 Pieces of WM8741 Chips), the soulnd is perfect at 16 & 24 bit and 44.1 & 88.2 kHz.

hkastronomy

Hi MSH, did you resolve your problem with this DAC? I just received mine (NFB11.32) but haven’t been able to test it het, so I am curious what to expect.

Today I finally hooked up my new Audio-GD NFB11.32 DAC using usb to my RPI B+ (with Hifiberry Digi+).

I still have have the Digi+ connected using Coax/SPDIF directly to my NAD as fallback and comparison :slight_smile: This works (and sounds) fine and plays up to 24/192 flac without issues.

The USB connected Audio-GD is recognized and selectable in the UI, BUT…sound is completely distorted.

I can somewhat hear what music it tries to play and it plays it way to fast (like twice).

volumio@volumio:~$ uname -a
Linux volumio 3.12.26+ #702 PREEMPT Wed Aug 6 17:43:49 BST 2014 armv6l GNU/Linux

volumio@volumio:/var/www$ git log -1
commit 7acbf3a5a23cf5fd3bc884b9bbb64ca2d2e04522
Author: Volumio <info@volumio.org>
Date:   Thu Jan 1 20:51:32 2015 +0100

    Fixed Typo

    Thanks to Steve Rigg for reporting

volumio@volumio:~$ cat /proc/asound/cards
 0 [Audiogd        ]: USB-Audio - Audio-gd
                      Audio-gd Audio-gd at usb-bcm2708_usb-1.2, high speed
 1 [sndrpihifiberry]: snd_rpi_hifiber - snd_rpi_hifiberry_digi
                      snd_rpi_hifiberry_digi

volumio@volumio:~$ cat /proc/asound/pcm
00-00: USB Audio : USB Audio : playback 1
01-00: HifiBerry Digi HiFi wm8804-spdif-0 :  : playback 1 : capture 1

root@volumio:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audiogd [Audio-gd], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: sndrpihifiberry [snd_rpi_hifiberry_digi], device 0: HifiBerry Digi HiFi wm8804-spdif-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0

root@volumio:~# lsmod
Module                  Size  Used by
ecb                     1863  0
md4                     3311  0
md5                     1784  1
hmac                    2602  1
nls_utf8                1235  1
cifs                  287100  2
nfsd                  247413  2
ipv6                  315765  34
snd_soc_hifiberry_digi     2572  0
bcm2708_dmaengine       5344  2
virt_dma                2329  1 bcm2708_dmaengine
snd_soc_pcm512x         9034  0
snd_soc_wm8804          7932  1
snd_usb_audio         117740  0
snd_usbmidi_lib        19299  1 snd_usb_audio
snd_hwdep               5838  1 snd_usb_audio
snd_seq_midi            4714  0
snd_seq_midi_event      6715  1 snd_seq_midi
snd_rawmidi            21968  2 snd_usbmidi_lib,snd_seq_midi
snd_soc_bcm2708_i2s     6194  2
regmap_mmio             2818  1 snd_soc_bcm2708_i2s
snd_soc_core          127841  4 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_hifiberry_digi,snd_soc_bcm2708_i2s
snd_compress            8259  1 snd_soc_core
regmap_i2c              1661  3 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core
snd_pcm_dmaengine       5505  1 snd_soc_core
regmap_spi              1913  3 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core
snd_pcm                83845  4 snd_usb_audio,snd_soc_core,snd_pcm_dmaengine
snd_page_alloc          5132  1 snd_pcm
snd_seq                55484  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device          6469  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              20998  2 snd_pcm,snd_seq
leds_gpio               2079  0
led_class               4118  1 leds_gpio
evdev                  10661  0
snd                    62252  11 snd_usb_audio,snd_soc_core,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_usbmidi_lib,snd_seq_device,snd_compress
spi_bcm2708             4960  0
i2c_bcm2708             4943  0

So a lot of things look ok. I should be running 1.51 (couldn’t find a version file or something so used git log).

Playing 24/192 on the Digi+ shows nicely:

root@volumio:~# cat /proc/asound/sndrpihifiberry/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 16384
buffer_size: 65536

Some reading and trying with kernel parameters ended up in the following:

root@volumio:~# cat /boot/cmdline.txt
force_turbo=1 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 elevator=noop rootfstype=ext4 rootwait smsc95xx.turbo_mode=N dwc_otg.fiq_split_enable=0

but still no success :frowning:

Anyone any suggestions?

I haven’t tried with Volumio after my initial post. I know I can use Rune Audio instead. Although I changed my setup completely to a small PC (ASUS UN42) in december and use Daphile instead. It’s very stable and has a nice GUI (in case you know Logitech Media Server (LMS)).

Perhaps you need to upgrade the kernel (I think the kernel of RA is newer then the Volumio one)? It should not be difficult to install a newer kernel but I can’t check it out at this moment since my RPi is used by a colleague of mine at this moment.

A quick update… still no success…

Fidling with kernel parameters (force_turbo and dwc_otg.fiq_split_enable) didn’t seem to make any difference at all.

fiq_split_enable seemd to be ignored at all because never did I get a kernel message saying that it had been turned off. Anyone more suggestions on this parameter to get it working?

Using rpi-update, I updated the kernel so I am running a newer kernel.

root@volumio:/boot# uname -a
Linux volumio 3.18.3+ #740 PREEMPT Wed Jan 21 23:55:56 GMT 2015 armv6l GNU/Linux

Initially, my Hifiberry was not recognized anymore. Adding a dtoverlay for the hifiberry to load the correct kernel modules solved this

root@volumio:/# cat /boot/config.txt
gpu_mem=16
hdmi_drive=2
dtoverlay=hifiberry-digi

Running a newer kernel (and hopefully) with better drivers/support didn’t change anything as far as I cold tell.

Tbc…

I borrowed a r-Pi: I have tried different scenarios to get it working (rpi-update, apt-get upgrade, MPD-settings), but no luck so far. I couldn’t get the USB-stream working … :frowning: As soon as I started Rune Audio it worked like a charm. Don’t know what may be different between the Arch Linux and Debian disto, but it seems to be day and night for this USB-DAC. I can only suggest to wait for a newer version (is this already on the way?) or go for RA instead … :question:

Dear MSH, just to make sure: did you plug in your USB DAC before you powered on your system?

If not, please plug in your USB DAC before powering on (or booting) your system (at least when you’re using a Raspberyy Pi), it is the recommended option when using Volumio ‘as is’.

Cheers,
Johan.

I know I did and I think MSH as well as he stated that the device was recognized. For sure I did try it several times with the DAC connected during boot or even on power on.

Yes I did. The combination of my USB-DAC with Raspberry-Pi/Rune Audio works great as does Daphile (i.e. Logitech Media Server) on a x86-system. The USB-DAC in combination with Volumio does not. I can’t figure out what could be the problem … !! It seems it has something to do with Driver or Module or buffering. I am not able to test any further, so hopefully someone else is able to … ??

Forgot to mention in previous message I tried the following:

  • first rpi-update: no audio devices present after this (lsmod does not show any device … ?!? Also aplay -l does not show devices)
  • first apt-get upgrade: no difference, sound still distorted - then rpi-update: again no audio devices present after this (same again with lsmod/aplay).

The rpi-update seems to screw up the the Module-configuration. Seems as if the kernel/Firmware update does not work properly?

Small update: yesterday I created a fresh SD-card install and performed a rpi-update straight after the startup: this resulted in a good updated kernel/firmware and I could see the modules again via lsmod. (I assume I hit a problem during the previous rpi-update …)

Sound does not crackle and skip anymore, but now it sounds as if the music is played too fast. Does anybody have a suggestion for this problem?
I googled for this, but until now I did not find a real solution … ?!

So you are running 1.55 now?

I have the ‘too fast’ problem from the start. Everything else worked and was recognized with 1.5(1). I played around with some boot parameters but no result. I did an rpi-update so my 1.51 now runs a 3.18 kernel. But the problem (audio playes way to fast, like a chipmunk in a hurry) remains.

Currently I feed my NFB11.32 using Coax SPDIF from a Hifiberry+ which works fine.

My guess is that somewhere in the software/driver area something doesn’t communicate well with the DAC. If everything worked as it should, the USB data should be sent in async mode meaning that the timing of the actual bits is not that important because the DAC generates a good (better that the RPi/Hifiberry can) master clock signal as long as there are enough bits in the USB buffer of the DAC.

I suspect that at currently the DAC/RPi are in sync mode and the RPi is responsible for the master clock signal. And this clock signal somehow is way to fast (some 2x or 4x times factor or something like that) or at least not corresponding with what the DAC expects maybe?

Maybe the new RPi 2 B might make some difference but I doubt it because ‘only’ the CPU is changed (allowing newer kernels/drivers, etc).

For know I keep suspecting the interrupts/timing/turbo thingies on the RPi causing this issue. If this works (Audio-GD DAC and RPi over USB in async mode) than it would be a strong combination at a very good price proposition.

Update: not succeeded yet but performed all kinds of tests

The last two days I spend some time to rule out if the DAC might be causing some issues.

  1. I checked the firmware in the DAC (version 0x020, subversion 0x0100ac11) which seems newer than mentioned on the Audio GD website. Didn’t perform any firmware update/downgrade.

  2. Connected the DAC via USB to my Windows 7 x64 laptop and installed Foobar2000 with ASIO driver. This combinations works fine and I am able to play my music and also several hi-res audio files (downloaded from 2L). 24/192 flac and both DSD(iff) and DXD (wav) played fine. Only doubt I have is that I wasn’t able to check somehow if Foobar was really sending the audio in native resolution using async transport. Foobar said it did based on the info from its status bar.

(there is no such thing as /proc/asound/… under Windows, at least not that I know :slight_smile: )

  1. Connected the DAC to an NVidia Atom miniPC over USB running Ubuntu 14.04 LTS. It worked out of the box :slight_smile: but when checking /proc to see the actual hw_params I noticed it converted everything to 16/48.

So I tweaked a few things, disabled PulseAudio and installed MPD (actually Cantana). Modifed the mpd.conf to use ALSA and directly address the USB device. This way it played everything native and async. Most files played fine, but playing DSD128 or DXD files (24/384) caused some drops. Like a few times (after a playing for some minutes) a few or sometimes some more drops happened. My guess is that the machine wasn’t always able to keep up. Audio was retrieved using a CIFS mount on a Wifi connection (usb Wifi adapter) so not ideal but I lacked enough local storage to play the huge hi-res files from :blush:

So, I guess the DAC works as it is supposed to do and also feeding it over USB works fine. It can also works under Linux correctly so as I already suspected, it has to do with the USB driver/kernel settings Volumio uses and/or RPi hardware/interrupts. I will dig further when I find the time… to be continued…

Audio GD 17.32 (VIA USB) work successfully!

I think I nailed the problem for this USB DAC by adding the following in /boot/cmdline.txt (after adding you need to reboot the RPi):

dwc_otg.fiq_fsm_mask=0x1

I found this solution when I was looking for other players and found the PiCorePlayer (i.c.w. Logitech Media Server). In the settings of this player you can change specific settings which may solve noise problems with certain USB DACs. I tested this with the above variable and this worked. Then I used Volumio again (a fresh installation of version 1.55) and added it into the cmdline.txt file.

I did not check with Hi-Res audio yet (only CD FLAC files), but I assume it will work. I tried HRA with the PiCorePlayer and the it worked as expected.

I hope this can help other people with different USB DACs too.

May be add this to FAQ?

Did some more investigation:

I found this today:

you may find more information in this topic: raspberrypi.org/forums/viewtopic.php?t=70437
"…
the masks mean:

0x1 = non-periodic split transactions
0x2 = periodic split transactions
0x4 = high-speed isochronous transactions

where 0x7 is the bitwise or of all above. 0x3 means only “non-periodic split transactions” and “periodic split transactions” are enabled and “high-speed isochronous transactions” is disabled.
…"

I did test all of the options with my USB DAC:

0x1 works
0x2 works
0x3 works
0x4 distortion
0x5 no sound at all
0x6 distortion
0x7 distortion

I used 0x1 and played music for some time. I experienced some dropouts and hickups when playing HiRes Audio files (24bit/96kHz), so went to 0x2. Also some dropouts, but less frequently. 0x3 also gave hickups. I think 0x2 gave the beste result for me.

Can you let us know which USB chip and firmware version your Audio-gd DAC has? And which type of files and rates you have tested?

Just a few minutes ago, I have tried setting this parameter as well and …

YES, I finally got decent audio over USB.

My cmdline looks like this now:

cat /boot/cmdline.txt force_turbo=0 dwc_otg.lpm_enable=0 dwc_otg.fiq_fix_enable=1 dwc_otg.microframe_schedule=1 dwc_otg.fiq_fsm_mask=0x2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 elevator=noop rootfstype=ext4 rootwait

But after listening for a while, I noticed audioble ticks/clicks during playback. I guess that the USB port still can’t keep up all the time.

Switching back to my Hifiberry Digi+ (Using COAX) and feeding this to the DAC, the clicks/ticks were gone. Also for me, it feels that the sound is better (warmer, less metallic (difficult to really describe it)) when using the Digi+ to feed the DAC. When I have some more time, I will do some more extensive listening. Also I received my Pi 2 B so I can give that one a try to see if that makes a difference.

.
VIA Envy VT1731
FLAC
I am not shure, but firmware —?> 26th.May. and 14th. Aug. in 2014 <?-------