Simple DSD SRC for BeagleBone

I built my own dual AK4137 PCM->DSD converter board. Also auditioned SRC4392 before settling on dual AK4137. This was before Pavel announced his project. My version is more sophisticated, but also more costly to build. It was originally used for a custom AK4499 dac. Anyway, I am familiar with the SRC chips and what they can and can't do, or at least I was back when I designed the board. Also, IIRC Pavel said his project was intended to be doable on a budget, and the schematic appears consistent with that goal. My project was intended to get the best out of AK4137 that I could figure out how to do without caring too much about cost. Thus I was free to use some tricks and methods that Pavel did not use.

Regarding the FPGA converter project, to me it sounds cleaner that I could ever do with AK4137. The reason is that no matter how low jitter is, an ASRC is always trying to compensate for jitter, and if nothing else the ASRC will produce some jitter itself do to its internal threshold noise at the input ports and due to power supply noise (even with a very low noise power supply). The chip just by its normal operation introduces some noise into the power supply as seen at its power input terminals. This is true despite careful bypass.

The primary benefit of the FPGA converter is that it is synchronous so it is immune to incoming and or power supply jitter. Where I think the FPGA converter is best is the DSD modulator algorithm. Where I think it is a little distorted is in the upsampling filtering. OTOH, the freeware offline PCM-DSD converter program is overall a little bit higher quality than the FPGA converter. However its weakness appears to be more in the modulator as opposed to in the upsampling.

How it it possible to disentangle upsampling filter from the DSD modulator? Pretty easy, just do the upsampling in another program. All that is left to do in that case is the modulation from 24/176 or 24/196 to DSD256/44 or to DSD256/48, respectively. Given that the system here is otherwise very clean and that the speakers are top notch electrostatics, its not hard to hear differences.

BTW, the DSD dac in current use is an Andrea Mori discrete resistor DSD256 RTZ FIRDAC prototype. It sounds very good, better in most respects than the best of AK4499EQ and of AK4499EXEQ. That said, IC based dacs have the advantage of scrambling/DEM/DES to help shape resistor mismatch (and other mismatch) distortion into a gaussian distribution to make it 'look' more like noise. The audible effect is that HF sound reproduction can be a little more subjectively smoother sounding. That's about the only thing in favor of the IC dacs at this point, at least that I have found. Regarding the Adrea Mori DSD dac versus Marcel's solid state DSD dac, although I have a LOT of respect for Marcel, I would say that Andrea's dac, its isolated FIFO buffer, and its SOA clocks is probably the more sophisticated design (that is without having had a chance to listen to Marcel's, just from looking at the schematic and BOM). Of course, there is a cost and complexity factor that comes with a choice of greater sophistication. Even as good as the prototype DSD dac is, its still not quite perfect. No digital is, at least not that I know of so far. I will leave off here for now.
 
Last edited:
Regarding the Adrea Mori DSD dac versus Marcel's solid state DSD dac, although I have a LOT of respect for Marcel, I would say that Andrea's dac, its isolated FIFO buffer, and its SOA clocks is probably the more sophisticated design (that is without having had a chance to listen to Marcel's, just from looking at the schematic and BOM).

You can always drive my RTZ shift register DSD DAC from a board with a fancy crystal oscillator and isolators, if you like. Reclocking is not needed, as the shift register DAC will already do that.
 
You can always drive my RTZ shift register DSD DAC from a board with a fancy crystal oscillator and isolators...
True. BTW, didn't mention it before but I believe Andrea looked at your solid state DSD dac design to see if there was anything he could learn from it. Appears that's what got him interested in RTZ, so he tried the experiment and so far everyone has agreed it sounds better despite requiring somewhat more phase-noisy clocks (22/24MHz versus 11/12MHz). That said, using the lower frequency clocks with doublers gives the least phase noise. According to listening sessions in Italy and here in Auburn, 'fancy clocks' do appear have some audible effect, mostly affecting the stereo illusion of soundstage (including perceived width, especially so for the DSD dac).

Also, don't know if you saw it in another thread, but casual experiments have shown that metal thin film resistor brands and models can have a significant effect on discrete resistor DSD dac sound. Variations in excess noise performance seems would seem to be the most likely culprit. Of course excess noise is not specified by manufacturers for such resistors, although Susumu points out that their audio resistor line (RS series) differs from RG, in terms of RS being lower noise. However, the lower noise seems to come at some cost in terms of less performance in other areas.
 
Last edited:
I have been eyeing the AK4191EQ too. To obtain 1-bit DSD from its multibit output, could you extract and invert the MSB from its 2’s compliment output?

Flip-flops could then be used to split the bitstream into the left and right channels.

Understood that this nullifies the multibit advantages however you still get better filtering and presumably higher order modulator than with the AK4137.
 
I think this will result in very loud noise. The difference with an ordinary single-bit modulator is that the feedback in the digital modulator is based on the multibit quantizer output, rather than on the single-bit signal that goes to the DAC.

Looked at it another way, taking the sign bit is equivalent to passing the multibit signal through a comparator. So you have a multibit noise-shaped signal with lots of ultrasonic noise and pass it through a grossly non-linear block, where the ultrasonic noise will intermodulate with itself and cause products in the audio band.
 
I guess I mistakingly assumed that noise shaping would then still be done in the DAC when that it converted to multibit internally.

Would there be other more successful schemes with digital logic to take that multibit output and convert it to single-bit?

Perhaps my thoughts seem naive and they probably are. I have been looking for a good book to read on DSD — internet resources are either not exhaustive enough or come to math-wiz research papers. Suggestions to get a better grasp on DSD processing and single-bit versus multi-bit applications in particular?
 
DSD is a trade name for a sigma-delta modulate. There are some very good books on sigma-delta (a.k.a. delta-sigma) modulation, but they usually have substantial amounts of mathematics in them. This one for example: Shanthi Pavan, Richard Schreier and Gabor Temes, Understanding delta-sigma data converters, John Wiley & Sons, 2017, https://onlinelibrary.wiley.com/doi/pdf/10.1002/9781119258308.fmatter

I wrote something about sigma-delta modulation and the advantage and disadvantages of single-bit ones in my valve DAC article, https://linearaudio.net/sites/linearaudio.net/files/03 Didden LA V13 mvdg.pdf It is of course not even close to the level of the book I just referred to, but it has the advantage that it is freely accessible.
 
  • Like
Reactions: 1 user
I've assembled a second DSD'it and plan to use it with an Antminer (Beaglebone Black V2.5) but I'n at a loss of how to boot it off Pavel's 'Pure' image, loaded in an SD card - there are no control buttons on the Antminer.

RaNywU6.jpg


I'm looking online but haven't found the answer yet.
 
It might be possible to use tweezers to short the traces where S2 normally resides:

from https://www.twam.info/hardware/beaglebone-black/u-boot-on-beaglebone-black
"X3msnake: Cant remember. Use a multimeter to check the pads. It's between the pads that are not shorted i think it is the long way"

You probably already have this: https://www.twam.info/hardware/beaglebone-black/u-boot-on-beaglebone-black , but if not it says that pressing S2 will bypass the onboard eMMC and try SPI0 (usually nothing present there) then MMC0 which is the microSD device.

https://robotic-controls.com/sites/default/files/images/BBB-Top.jpg S2 is at the top right, under C17 (which is just under the right edge of the header). Edit: C75 on your BBB if I'm seeing correctly (and S2 is better marked on your board :) )

I'll pull out my BBB and check later this morning for continuity on the pads. It doesn't have anything on the onboard eMMC, so already automatically boots from the microSD card.
 
Last edited:
  • Like
Reactions: 1 user
Can't edit my post above, so just saying things are (real) small with S2 installed, and I can't get a reliable indication of which pads to temporarily short. I would need to remove S2, and I'm new to SMD-scale work, so I'm thinking you may have better luck with S2 already removed. Guessing that it should survive bridging the non-used pins, if there are any (it could be a DPST momentary switch with two pairs of bridged pins).

Also "C17" is actually C173 on the stock BBB. Gotta love SMD-scale component labeling!
 
@nautibuoy I had similar issues in getting the PPY reclocker board to work with the Antminer board when it worked fine with the regular BBB (black or green) when powered via USB or the 5V barrel connector. When I tried the Antminer board with the Twisted Pear Hermes Board it worked right away. The delta was just that the Hermes board provided power to the Antminer board via pins 1&2 (GND) and 5&6 (5V) on the P9 connector.

Does the red power led turn light up on the Antminer when using it with the DSD'it board?

I did not have to do anything to get the Antminer board to boot from the SD card (it has no onboard eMMC) once I got power supplied to it.
 
A lot of effort but no joy...

I don't have the DSD'it plugged into the Antminer at the moment, I'm just trying to get it to boot from the SD Card image, and I have the power supply connected to P9-1 (Gnd) and P9-5 (5V) - the red LED lights up. I've previously installed Pavel's software on a normal BBB without the DSD'it installed and it worked fine (the DSD'it stops you getting to S2, so it was the only way).

Because I wasn't sure of the connection bridging the S2 pads and having checked out the BBB manual, I installed a jumper wire from P9-2 (Gnd) and touched it to the end of R75 that connects to the S2 pads (a much better connection achieved) but no joy with booting from the SD card.

I found the IP address of the Antminer and used Putty to try to connect to it - I got a connection and tried to login as root but came unstuck with the password (I tried 'root') - it seems it must be booting from the onboard eMMC. My plan was to logon and delete any boot file to force it to default to the SD card but unless I can find out a password I'm stuck.
 
Not sure this is helpful: https://www.dummies.com/article/tec...o-flash-the-beagleboards-onboard-emmc-144951/

It looks like you can monitor whether or not flashing the eMMC from the microSD card is working, by looking at the USR leds (if they are present of course).

Edit: I also do not know whether this is a straight image copy from the SD card to eMMC or not (meaning whether it simply copies the SD contents to eMMC byte-by-byte, or requires a flashing program/setup also installed to the SD card). Would be great if was as easy as a straight copy.
 
Last edited: