I2S generic driver, DSD no better than DOP64

Hi everybody,
I installed volumio on an RPI4 with an Ian Canada FifoPI reclocking card and the corresponding I2S HDMI adapter.
After finding the good tuning for my DAC (Matrix sabre X pro MQA) I got a very good high quality sound with PCM files and DSD 64 files using DOP. Native DSD does not work.
I have several DSD256 albums and I would like to be able to play them and if possible in native DSD256 mode but at least in DOP256 (the Ian Canada hardware and the DAC are compatible up to DSD1024 and I can play native DSD256 in USB mode instead of I2S but USB is really not as good for music as I2S). I know about the RPI frequency limit but it looks that some drivers/kernels can go around those limits and play native DSD at higher frequencies. I tried all the drivers provided by Volumio but still stuck to DOP64 (when it works). I’ll try some distro just to make sure it can work but frankly I would prefer to keep using Volumio.
So it would be great if there is a solution and at least I’d be able to play my DSD256 files without conversion.
Thanks for any help, Flifli

I’m adding a question. Since yesterday I’ve been trying to get information about the Asus Tinker S board with Volumio. This board looks less limited than the RPI4 at least for the I2S bus and it is the board chosen for Volumio primo so I guess it should be a good one. Would it be a solution to move to the Tinker ? Is there a « generic » I2S driver making possible to go beyond DOP64 for DSD files ?
It would be nice to have some hints before buying the board. Thanks for any help.

Good morning,
I made some tests with Picoreplayer with the experimental kernel which includes a patch allowing 384kHz and DOP128 through I2S with the generic I2S driver on RPI4. In PCM the SQ is indeed as good as Volumio (different but good too) but DSD is way behind Volumio. Would it be possible to have a kernel with the same patch ? I can try to build it myself but so far I haven’t found the source code of the patch and should see with Volumio documentation how to proceed.
Is there anybody who already have solved the problem or willing to share the experiment ?
Cheers, Flifli

I don’t understand… It is better or worst?

Sorry for being confusing. Yes Volumio is really better than Picoreplayer for DSD files. The stage is more open, the music more alive (at least to my ears). I may try to improve the settings in PicorePlayer but I would prefer to work on Volumio which I really like.

Hi Flifli, it seems that we’re encountering the same issues… have you been able to get more than DSD64 via I2S?
My PS Audio Stellar DAC plays all the way up to DSD128(DoP) or 384kHz via USB, but running via I2S, also with IanCanada’s FiFoPi Ultimate Reclocker, only goes up to 192kHz or DSD64.
Does it work for you on PiCorePlayer (on a non-experimental release)?

Hi Davinchif,
Theoritically the RPI4 should be able to play DSD128 via I2S but the drivers limit it to dsd64 (and PCM192kHz). Beside the clock on the RPI is dreadful. Picoreplayer experimental version indeed allows to play DSD up to 128 but it is far (at least when I tried) to be as good as Volumio for DSD files. I tried the ASUS Tinker but it was even worse. Those pico-computers as the RPI were not designed for high sound quality but for education and the drivers were written for this purpose too and include protection to prevent any misuse. So we have to turn around those limitations and the only way on the RPI is to use the usb. I bought a JLSound Asynchronous USB to I2S interface and then connect it to the Fifopi. On the FifoPi I change the crystals to Accusilicon. This setup gives me a lot of freedom (up to DSD512) and is really good. A big gap with the sound quality.
Good luck, Flifli

Thanks, I that’s what I thought :frowning:
I am not really complaining about the sound quality on it - using the I2S input on the PS Audio Stellar does sound better than the USB input. Even though the Stellar works asynchronously, the FiFoPi will still reclock the other signals, so I changed the oscillators on the FiFoPi to Crystek’s 957 (as those match the Stellar’s internal ones), which was a pain involving Surface Mount capacitor soldering… a lot of work, but it works. Maybe we’ll have better luck with an RPi 5…
I looked into the JLSound card and it seemed rather complex to set up.

I wanted to try the Crystek 957 too, but so far I’ve made a big mess of the capacitors soldering. I would be interested on how you did it.
The JLSounds card is easy to set up : few pins to solder and that’s it. I can tell you what I did. You have to power supply the FifoPi from both power inputs and that’s it.
I have a Matrix DAC and indeed the I2S input (through an HDMI connection) is better than the USB input it’s why I went through all this complex and visually not so beautiful setup :slight_smile: . On the FifoPi I plugged the I2S to the HDMI card from Ian Canada too and use an HDMI cable to the DAC I2S input. I tried synchronous and asynchronous settings on the DAC and got the best results with the asynchronous (though there’s still a difference between the clocks on the Fifopi ?). Enventually it is worthwhile since I got very good results.
Cheers, Flifli

I am not good at soldering, even conventional through-hole stuff comes out in Frankenstein-look. It was my first SMD soldering experience (and my last - fortunately I don’t have to do it for a living). I used a soldering paste and a toothpick, just using a very tiny drop on the contacts and placing the capacitors with tweezers, then soldered with a borrowed hot air station. It was horrible to do, it looks terrible, but I did check the connections with a multimeter and it was OK in the end. I am not doing that again! Those are just too small to handle.
Yesterday, playing with the oscillators, one cap got loose, and I was able to re-attach it with the normal soldering iron and the leftover paste - in retrospect, it was easier and quicker to do than with hot air. In any case, don’t use regular solder wire, go for the paste. It keeps the components more or less in place to apply the heat.
Looks are another issue - The Matrix DAC is really pretty, my PS Audio is not ugly either, but it is distracting to have those heaps of wired boards by the side. I’m mounting them on an olive wood board - lipstick on a pig, but it’s better than just laying around.
If you do have the pin mapping between the JLSound and the FiFoPi, that would be helpful, but I won’t be trying it soon. I’ll ping you later for it (or if you want to post it sooner, that would help others).