No native DSD support for DAC [Linux table entry]

I have only recently setup Roon so still getting my head around it, but I have come up with a slight issue with my main HiFi setup as the DAC is recognised, but it doesn’t seem to support DSD as I would have expected.

The DAC in question is a Topping DX7s which supports DoP DSD up to 256, and Native DSD up to 512 (http://en.tpdz.net/products_detail/productId=32.html). Currently though the options only give me the choice of DoP (up to 256) but no Native choice that I can see.

The DAC is connected via USB to a RPi 3 (running DietPi) which is connected directly (via ethernet) back to the main switch. The Roon Core is on a separate PC on the network which is also connected directly to the switch via ethernet.

I have read around and I am not sure if there are certain drivers or something additional I need to setup but if any one can point me in the right direction that would be great.

The drivers below will work for windows:

http://en.tpdz.net/wdzn_detail/newsId=61.html

since you are using an RPi there aren’t any to install, support would need to be added to the kernel.

1 Like

To the linux kernel? That sounds a bit over my head…how would I go about getting that done or would it just be a case of waiting patiently?

Waiting patiently to see if it gets added. You may try and send an email to Topping to see if they can help.

This thread has some good information about the process.

Okay well maybe its worth calling @spockfish on this one?

I seem to be in a similar situation as the previous poster, although it does support DSD512 and I do actually have access to a linux system (i.e. the RPi). I am familiar enough with SSH to run some commands too so hopefully its possible that way

ok. make sure your logged in as root, then run the following commands:

aplay -l

and

cat /proc/asound/card*/stream*

and finally a

lsusb

If you give me that information I can quickly see if it is already advertising native DSD.

thanks for the response @spockfish, here are the results -

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: 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 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: DX7s [DX7s], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

cat /proc/asound/card*/stream*
Topping DX7s at usb-3f980000.usb-1.5, high speed : USB Audio

Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 72
Momentary freq = 44100 Hz (0x5.8330)
Feedback Format = 16.16
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 1
Altset 3
Format: SPECIAL
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us

lsusb
Bus 001 Device 004: ID 152a:8750 Thesycon Systemsoftware & Consulting GmbH
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ok, I can work with that. It looks like the DAC is advertising the right mode.

Only thing is that you then need to switch to RoPieee to be able to test this. Let me know if you’re willing to do this.

2 Likes

I can set up another SD card and do that to test and confirm, just let me know if I need to use any specific build etc. and I will

Thanks for looking into it too!

Ok, I’m building a new kernel then. You can already prepare for this by installing RoPieee.
When the update is available I’ll ping you with some instructions on how to proceed.

Thanks!

1 Like

Hi @jackb,

There’s a new kernel (4.14.33) available on the test repo.
So when you’ve got RoPieee up-and-running, please go to the ‘advanced’ tab of the webinterface and set the ‘Update Channel’ to TEST.

Now reboot, wait for 20 minutes and then reboot again. You then will be running on the new kernel (which you can check on the ‘Info’ tab of the webinterface) which tries to enable the special altset on your DAC.

Let me know how it goes!

Regards Harry

hi @jackb,

Any progress?

1 Like

Had to get a spare SD card but going to tackle it over the weekend and will report back

Okay I have managed to test it out - I loaded up Ropieee just fine and switched to the Test channel but my version only updated to 4.14.29-1.

I did test this anyway but same issues with no option to choose Native DSD mode

Keep it on test, and wait for it. Have you rebooted?

Okay left it on and went about some errands, came back to check and it had updated to the 4.14.33 kernel.

Seems to work perfectly now, Native DSD is an option and looks to support up to 512 (although have only managed to test up to 256 at the moment).

The real issue for me though is that this setup is using Berryboot which doesn’t look to be Ropieee friendly. Is it right to assume this updated kernel would be picked up and used in other distros (e.g. DietPi)?

Hi @jackb,

That’s good to hear, I’ll add it to the DAC list.

Wrt to the kernel… every distro uses it’s own kernel, so no you can not assume that others will pick this one up. Usually I’ll update the patches I’ve created to github on a regular basis, so that’s the point that others can pick up if they want to.

Feel free to keep using RoPieee though :wink:

Hi,

Can I ask what kernel changes you made to get this DAC working? I’ve tried adding the vendor and device ID’s in quirks.c, without success.

Thanks for any guidance you can offer!

Look over here https://github.com/RoPieee/ropieee-kernel

You’ll find the patch file for native DSD there as well.

Keep in mind though that the DAC needs to play her/his part as well: if it does not provide support for native DSD (and advocates this in the USB descriptor) then patching the kernel is not enough.

Thanks! Working perfectly now :slight_smile: