Native DSD with Fiio Q5 & Q1 mk II

Hi! I am new to Roon but already am very thankful for the efforts in the making of RoPieee. This is truely brilliant, thank you!

I have two DSD capable DACs from Fiio which I’d love to be able to use natively if that’s possible. I’ve been searching for some info on how to do that but it looks like support has to be added in Ropieee for it to work. It’s not top priority obviously but I thought if I asked nicely… :slight_smile:

I’ve hit the feedback button while the Q5 was connected: fa837a25e5d5dc0c

And here’s the feedback id number with the Q1 mk II connected: 0d396032f5002bc5

Possible or not, thanks for reading!

@CSB HI Christopher,

I looked at your logs and it looks promising. It seems that both DAC’s advertize the necessary bits to enable native DSD on Linux.

I’ll create a patch for these and build a Linux kernel for it somewhere the coming weeks. I’ll keep you posted.

Regards Harry


While you are at it I’ll also provide a latest FiiO M11 DAP when I get it in about 2 weeks (hopefully) and my FiiO BTR3 that can also be used as a DAC

Thanks very much Harry!

I’ve Fiio Q1mk2 so it is covered here. I also have Topping dx3 pro running on ROCK. Though I use DoP, I would very like to have native DSD support.

@spockfish How do go about it providing the info for you? Thanks

@MusicFidelity with your DAC connected to your Raspberry running RoPieee, click the ‘send feedback’ button under the Advanced tab of the web interface. Paste the id # here, ask @spockfish nicely.

1 Like

Don’t forget the donations button on Harry’s website too…must send him another top up myself :smiley:


Hi @CSB,

I’m not sure how much you live dangerously :wink: but on the beta channel the new kernel update is available.

Possible downside: a beta is a beta :wink:

Anyways, if you’re up to it you need to switch to the beta channel in the webpage on the advanced tab. Reboot, wait for an hour or so and then reboot again.

Otherwise you need to wait: I expect an update in stable really soonish because of the Pi 4 release.

Hello @spockfish,

Thanks for this :+1:. I (of course!?) tried to go through with the beta update, I think it’s updated (ropieee version shows 20190625-1) but now the endpoint doesn’t show up in Roon anymore…
I’ve sent you the logs: 5b0369004c7b8700

Excited to see how this goes :slight_smile:

[edit 1]
I’m guessing this has something to do with the problem:
usb 1-1.2: 1:3 : unsupported format bits 0x100000000
when calling dmesg in the cli/ssh

[edit 2]
Just to clarify, both Fiio DACs give the same message saying unsupported format bits 0x100000000

I think you need another reboot, because the kernel has been updated, but it is still running the old one. Can you retry?

I just did, it does not seem to download/update anything anymore.
Here are the versions displayed on the info tab:

Package Version
ropieee 20190625-1
ropieee-version 296-1
ropieee-web 20190622-2
linux-raspberrypi-dsd 4.19.55-1
mosquitto-ropieee 1.5.8-1
qt5-base-ropieee 5.12.3-1
ropieee-remote 20190622-2

new feedback ID# 8b54b3a0dbd5a798

yeah then you’re on the new kernel.

What could be is that it detects the DSD stream, but that the samples are wrong (byte order).

I assumed the most common, but it could be reverse :wink: Unfortunately that’s not something we can detect from the info.

I’ll build another kernel update with these reversed.

Thanks Harry! let me know if there’s anything I can provide you with.

He… I read in the documentation that you can switch the USB mode of the device… How’s that on your DAC?

There are two USB ports on the Q5 and you can decide which one does “charging only” but I use mine with default settings i.e. main back central port for both data and charging. Is that what you mean? I can’t find anything else in the manual?

The K3 provides selectable USB1.0/USB2.0.

I was wondering if your device has that too.

No, neither the Q1 mk ii nor the Q5 has such function. it’s USB2.0 only as far as I know and can find on the Fiio website.

Hmmm… Then I’m getting slightly worried because my earlier message was too optimistic.

XMOS uses the same byte ordering for all their firmware. Did you had a look in the Roon settings? What does Roon see? Is it seeing it as native DSD capable?

After I updated to the beta, the Ropieee disappeared from my Roon network devices. Now I only see my older RPi3B with the Apogee Duet:

and when I plug the Fiio Q5 directly to my MacBook Pro, here’s what it sees:

So no it doesn’t see it as DSD native capable.

@spockfish if it’s not possible, no worries, I do sincerely appreciate you trying so quickly! I guess if my RPi3B+ cannot do DoP without crackling, maybe the new RPi4 will :smile:

Hi @spockfish,

Looks like native DSD support is only on Windows according to a couple of people I asked this morning who have a Fiio Q5. Not sure why the manufacturer’s website claims “native DSD” if it’s only on one platform and the primary buyers are mobile users on Android and iOS… i.e. NOT the platforms that support it.
Now that I re-read the marketing material, it kind of hints to it by saying Windows supports DSD256 but other OS only can do “upto DSD128”. I guess that means bandwidth and samplerate-wise DSD256 == DoP128. Weird. I kinda feel a bit screwed…

I’ll just go back to using non-upsampled DoP and hope the RPi4’s non-shared bus will allow for crackle-free playback.

I guess you should delete (again, I offer my apologies for your troubles) the code to enable native DSD on Fiio Q5 and Q1 mk II so it defaults to DoP when plugged in.

Anyway, thanks again for being so kind and trying to implement this for me!