Much of the thinking behind this project is already written elsewhere.
The final name of this project is still not determined but the design is nearly complete.
It is based on the Botic driver for Beaglebone Black (BBB). The project was developed mainly while this driver was less mature and so it uses older defaults. Specifically the kernel option is set to:
optargs=snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=–I- snd_soc_botic.pinconfig=compat
I would like to thank Miero for his hard work on the linux I2S driver for Beaglebone Black's SOC without the driver this project would not exist.
You can see the design in its enclosure here below and in the following video.
Nearly complete as of 7/12/2015. Software and hardware are fully functional.
A kickstarter may be launched if there is large interest. The full design will be open source at the end of the project.
- Provide for more robust filtering of power supply
- Attempt to balance left and right channel performance better
As of 7/12/2015 only intermodulation tests still need to be performed. Given the other results it is highly likely they will be similar to the ODAC as well.
Tests were performed with an Audio Precision System 1 (SYS-222G) with 24 bit files at 44.1 KHz.
A typical spectra for the DAC driven by the BBB at 1 KHz -1 dbFS is shown below:
Here there are plenty of harmonics, but these are due to the dynamic range of the converter circuits in the AP-SYS1 interface. The notched path shows the true signal components, note the change in the y-scale:
As we can see here the spectra is very clean. The change from a cascade of LDOs to a single very low noise LDO has improved the noise floor and with it the THD figure. Here is is < 0.003%. This is the left channel of the DAC. The right channel shows a larger first harmonic signal the reason for this is not obvious from the board layout but will be investigated in the future.
Also of interest is the flatness of the frequency response (at -1 dbFS):
The flatness is essentially +/- 0.1 dB exactly the same as the ODAC. It is actually louder than the specification at low frequency. Here 0 dbFS = 1.9 V as the design is being run presently at 3.3 V rather than the 3.6 V of the ODAC.
Along with the sweep of the frequency response, a sweep of the THD can be done using the voltmeter inside the AP SYS-1 after the notch filter:
As can be seen the right channel is higher than the left. Inspection of the spectra show that it is largely due to a higher first harmonic distortion component. Further study of this may be needed to understand the source. I note however that although this is a mystery it is still a very low distortion number and already better than the amplifier that I own (thus transparent).
The left channel starts at 0.0035% with a minimum of 0.0024% and peaks at 0.0048%. The right channel starts at 0.0051% with a minimum of 0.0043% and peaks at 0.0058%.
The dynamic range at -60 dBFS was also measured, here it is plotted notched with A-weighting applied.
With A-Weighting the dynamic range is 104.8 dB. This is greater than 16-bits (96 dB), and thus more than my goal since the vast majority of audio sources are derived from Redbook audio.
Theoretically 112 dB is possible for this figure, the ODAC got to 111 dB with whatever USB power source the creator had. This figure will depend on the power supply used and is part of the reason I have added a TODO item to improve the power filtering.
Crosstalk is well controlled at 10 KHz:
The datasheet says we should get 100 dB and that's essentially the result. The actual figure is 99 dB at -1 dBFS, so the isolation is 98 dB. More than enough.
THD at 0 dbFS at 100 Hz was also measured. No increase in distortion was observed with the current design.
This design is essentially transparent for minimal cost and usable directly with a BBB. The primary cost is the milled aluminum case.