• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Support for Botic Linux driver

After 2 months and 2 days updated Botic driver (v3) is OUT!

http://bbb.ieero.com/

Notice:
- changed default pins for data2 from P9_28 to P9_42 (but it can be switched back easily )
- compatible with Botic cape (however not tested yet)
- changed configuration of channels (see README)
- added possibility to output SPDIF streams (four of them)
- underruns should be fixed now (with playing on real-time priority)
- from command line use "chrt 1 play ... " to play with real-time priority
- BBB overclocked to 1GHz by default
- interrupt handler for mcasp (detects HW errors and resumes halted playback in worst case)
- updated MPD with DSD and realtime patches (provided by lintweaker - many thanks!)

Known issues:
- playback of 384kHz works in 50% cases

Enjoy!
 
Last edited:
Hello,

I'm really interested by this thread because i would like to support DSD on an Imx6 with WM8741 DAC. As i read previously, it seems to be possible with the botic driver to support wm8741. I just wanted to discuss with you on what i need concerning imx6 or another SOC. As I understood, you are using a GPIO to send the DSD data but what caps do i need to do that on imx6? I'm checking in the meanwhile to sort out the information...:)
 
Miero, thanks for these refinements.
- BBB overclocked to 1GHz by default
I like to know the underlying settings - are you just using these 2 commands at bootup?
Code:
cpufreq-set -g userspace
cpufreq-set -f 1000Mhz
Also, do you find that with the BBB locked to 1000Mhz that it gets warm/hot?
If so, do you think we should add a small heatsink to the Sitara processor?
Thanks
 
Hello Miero,

After reading code and datasheet, i would to clarify some points. Indeed the imx6 give acces to a synchronous serial interface SSI which allow to communicate with different kind of serial devices. Thats the way today i'm communicating with a wm8740 in I2S. In your DSD solution, i understand that you are using a fake PCM mode in ALSA to send DSD data and so I'm wondering about the burst transfer mode. Why do I need this mode to transfer DSD ?
Is it a kind of I2S msasp mode subset ?
For now i'm sorry if i ask stupid questions but i'm trying to sort out what do I need on my chip to perform what you did with mcASP.
Best regards.
 
Good question dabrain. The I2S is subset of TDM (Time Division Multiplex) which combines multiple channels (e.g. left+right channel) into single stream. For DSD_U8 you need two streams (stereo) with single channel in the each. So you need to setup TDM to 1 channel in stream (i.e. no multiplex), but this is not valid configuration option in McASP. However the McASP supports setting number 0 into that register, which is the (non-periodic) Burst mode but for DSD it is used periodically.

Another option is to use DSD_U16_LE bit format which can be played as 4ch 16bit PCM but you need to adapt something (ALSA or player) to reorder bytes in DSD stream.
 
Thx a lot miero. I just purchased a beaglebone black to perform some tests against your distribution. But i'm not able to launch the DSD playback. I'm getting this error.

Failed to open mixer for 'Botic'

Do I need to have ES9018 plugged in ? Or can i just get the signal out from the dedicated pins ? Do i need to change a setting to support the dsd files included in the distrib ?
Best regards.

Steph