• 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

If the old kernel is working well, then let's not assume a hardware problem. Perhaps compare the two different MPD configuration files, and edit the new to match the old? :confused:

Sorry for the confusion! I was originally trying to update the kernel because I had the dropouts (which is actually more like time outs). With the latest kernel I got no sound at all (something like "error: sound cards closed"), therefor the rollback to the old kernel where I still have time outs every now and then ... I have not been able to track down any errors in any logs that can be connected to this behaviour. I thought maybe it was the network, but have ruled that out with a direct connection.
 
Member
Joined 2007
Paid Member
Apologies, I wasn't paying close enough attention - you are using a WaveIO (right?), which performs clock selection for the USB -> I2S conversion by XMOS. So the question arises, why bother with botic if you are not using the core features, which are direct I2S production with clock switching, and output to the GPIO header? Why not just use a stock Debian, the BBB's onboard clock, and select a USB output for MPD? The error you report is typical when there is no power to an output appliance. The problem you report could be some kind of power supply issue, OR something as arcane as noise in the power grid that supplies some components. I had a setup where any appliance would interrupt DAC lock when it turned on... But it could be so many other things as well.

You might try increasing the operating priority of the active software player, increase the buffer allocation for the player, and kill unneeded system processes. But in the end, I don't see that botic offers any advantages over other stock Linux kernels. :whazzat:
 
I know way to little about how this works to say anything about why I use 'botic', but it is the only way I've had it to work properly. With regular MPD and stock Debian there was always 'popping' I couldn't get rid of. I believe the sound with 'botic' is very good, but I can't explain why that is.

I think my problems with time outs is connected to the power grid, as you suggest, as I've had other signs of problems with that earlier as well (lights and power amp acting weird).

In any case, I stick with the 'old' botic for now, since it seems to not be part of my problem, and is working very well ... :)
 
Just wondering: When I connect an I2S DAC to my BBB and want to be able to play 44 upto 192 kHz Flacs I need to use 2 clocks, that is what this Botic driver is all about right? Is the switching between the 2 clocks handled by this Botic driver and will this work wit all I2S DACs or just the Twisted Pear combo? What configuration is needed if another DAC is used? Can an I2S DAC designed for the Raspberry Pi be used also?
 
When I connect an I2S DAC to my BBB and want to be able to play 44 upto 192 kHz Flacs I need to use 2 clocks, that is what this Botic driver is all about right?
Not exactly. The botic driver, in combination with a dual-clock/isolator interface is mainly aimed at transforming embedded computers into high quality, low-jitter digital transports, with the added benefit of native DSD playback.

But dual-clocks are certainly not required to play high bitrate audio files. Most Linux distributions, by default, output audio without resampling, provided the audio output device supports the desired rates. This is certainly the case with I2S output.
Of course your audio playback application must also be configured to output without resampling. MPD, for example, contains this line by default in its configuration file -
Code:
auto_resample	"yes"
you must change it to -
Code:
auto_resample	"no"


Can an I2S DAC designed for the Raspberry Pi be used also?
Yes, as long as you only want PCM, there's no special configuration involved. You would need to wire the I2S outputs from the Cronus to the corresponding pins on the RPi DAC ... and you would need to get a dedicated 5V power supply to power the RPi DAC as well as the "clean" side of the Cronus.

Looking at the big picture here, the RPi DAC's that I have seen are mediocre-to-midrange products. If you want such a basic DAC, it might be that Botic/Cronus/Hermes is overkill for your situation. I2S output is a good idea, but only if done right, such as with Botic/Cronus/Hermes. But for a lower cost solution, with a lower cost DAC, forget about I2S and go USB. Get a half-decent USB DAC with XMOS or Savitech interface, with ES9023 or PCM5102 DAC. In fact I think there's now a cheap XMOS USB interface on eBay which has the ES9018K2M DAC chip - that would be a good choice.
 
Not exactly. The botic driver, in combination with a dual-clock/isolator interface is mainly aimed at transforming embedded computers into high quality, low-jitter digital transports, with the added benefit of native DSD playback.

But dual-clocks are certainly not required to play high bitrate audio files. Most Linux distributions, by default, output audio without resampling, provided the audio output device supports the desired rates. This is certainly the case with I2S output.
Of course your audio playback application must also be configured to output without resampling. MPD, for example, contains this line by default in its configuration file -
Code:
auto_resample    "yes"
you must change it to -
Code:
auto_resample    "no"
Yes, as long as you only want PCM, there's no special configuration involved. You would need to wire the I2S outputs from the Cronus to the corresponding pins on the RPi DAC ... and you would need to get a dedicated 5V power supply to power the RPi DAC as well as the "clean" side of the Cronus.

Looking at the big picture here, the RPi DAC's that I have seen are mediocre-to-midrange products. If you want such a basic DAC, it might be that Botic/Cronus/Hermes is overkill for your situation. I2S output is a good idea, but only if done right, such as with Botic/Cronus/Hermes. But for a lower cost solution, with a lower cost DAC, forget about I2S and go USB. Get a half-decent USB DAC with XMOS or Savitech interface, with ES9023 or PCM5102 DAC. In fact I think there's now a cheap XMOS USB interface on eBay which has the ES9018K2M DAC chip - that would be a good choice.

But can I play all bitrates without resampling on an I2S DAC without at least one additional clock. I am in the impression that the BBB can only do 48 96 and 192 with its onboard clock. I aint gonna get me a Cronus board right now, I can build an isolator myself with an additional clock. BTW what can go wrong if I don't use an isolator?
Will the Botic driver handle the switching between the BBBs onboard clock and the added clock? Or do I need to add 2 clocks?

And can all this be done without Twisted Pear boards? Yes, they offer nice products but before I have them in the Netherlands I have to add in shipping cost. I posted a question on what I would need but didn't get an answer.
 
Last edited:
Sorry, yes you're correct, the BBB only supports the 48K family of bitrates. I was thinking of the RPi - it uses integer clock division to support all bitrates up to 192K.

I can build an isolator myself with an additional clock.
That's great. Yes, you can certainly go full DIY. For connection to the BBB, I suggest you refer to the "BBB pin mapping" section here -
http://bbb.ieero.com/

BTW what can go wrong if I don't use an isolator?
If the BBB sees external voltage at its headers during power-up or power-down, this can result in permanent damage.

Will the Botic driver handle the switching between the BBBs onboard clock and the added clock?
Yes, you can have just 1 external clock for the 44.1k bitrates, with Botic suitably configured - refer to the "Clocks configuration" section here -
http://bbb.ieero.com/
... although if you have the skill to make your own clock/isolator board, why stop at a single clock? That means your 44.1k music files get a nice external clock, but your 48k music files get the mediocre onboard clock, and you did say you wanted to play 192k files.
 
Sorry, yes you're correct, the BBB only supports the 48K family of bitrates. I was thinking of the RPi - it uses integer clock division to support all bitrates up to 192K.


That's great. Yes, you can certainly go full DIY. For connection to the BBB, I suggest you refer to the "BBB pin mapping" section here -
http://bbb.ieero.com/


If the BBB sees external voltage at its headers during power-up or power-down, this can result in permanent damage.


Yes, you can have just 1 external clock for the 44.1k bitrates, with Botic suitably configured - refer to the "Clocks configuration" section here -
http://bbb.ieero.com/
... although if you have the skill to make your own clock/isolator board, why stop at a single clock? That means your 44.1k music files get a nice external clock, but your 48k music files get the mediocre onboard clock, and you did say you wanted to play 192k files.

I certainly will opt for 2 clocks, I plan to make a cape for the BBB that has isolator chips and clocks. plus clean power supplies.
 
And with the link I provided to Miero's website, you now have the critical information from which to proceed.
I recommend being mindful that you will be DIY'ing other parties' ideas/products.

One more point - an isolator will add jitter to the I2S signals, that's why the Cronus adds the additional step of reclocking.

By the way, if you post a reply to mine which immediately follows, it's unnecessary and a wasteful use of forum space to re-quote my entire post, unless you need to answer separate issues, in which case you should then split up the quote into separate sections.
 
After all these Do's and Don'ts I'm gonna stay with my iFi idsd DAC over USB.

When I add up all different boards needed I might as well get me that small Aurelic player with a decent power supply in a neat small housing controlled with my iPad.

Or I might dust off my trusty 30 yo Micro Seiki turntable and just play records and use my Nakamichi cassette deck. No jitter involved there just a little noise and plops of the old records.
 
How big is the chance that I fry my BBB when using an I2S DAC? Is it only when powering up and down the BBB DAC combo? Can't it help to create a power supply with delayed power up of the DAC and delayed powerdown of the BBB, possibly with the help of a small battery? I rather avoid extra circuitry in data lines and the needed reclocking.
 
But if your external-clock-for-BBB project gets too hard, I must say that with a good USB DAC such as the iDSD, a Raspberry Pi should be a good option, possibly just as good as an AURALiC player. You can configure the RPi for bit-perfect playback, and then your iDSD's USB interface is effectively a reclocker, and you bypass the Pi's jittery I2S output.
 
I had this as a separate thread but now that I think of it, it's probably a Botic problem.

---

I have a BBB is running Botic 7 RC3 and music is being played with MPD.

BBB outputs I2S to Hermes -> Cronus -> B3SE.

Audio_output in mpd.conf looks like this:

Code:
audio_output {
        type            "alsa"
        name            "Amanero"
        device          "hw:0,0"        # optional
        dsd_usb         "no"
        dsd_native      "yes"
        dsd_native_type "3"
        priority        "FIFO:32"
        period_time     "1"
        mixer_type      "software"      # optional
}

Somehow when I play DSD256 files, I get silence, periodic loud pops, and an occasional bit of sound.

The progress bar (elapsed time) in my MPD client moves VERY slowly.

I have no problems with PCM384 or DSD64 files.

Any ideas? I've turned off SPDIF auto-detect. Is it a problem with buffer size?
 
Last edited:
Hello I need some help with setting up hardware volume control.

I am stuck on this part:
echo "/sbin/botic_helper" > /sys/module/snd_soc_botic/parameters/helper_cmd

There is simply no way I can figure out how to get permission to execute this command or do anything that results in any equivalent. I get permission denied whatever I try to add under the /sys folder. And yes, I have tried sudo and su root without any success.

I do not have a helper_cmd file and I cannot figure out how to add one. I am only allowed to edit existing files.

How have you guys done this?

I also have another question. The daccfg_es9018 configuration script, where shall it live and when shall it execute? I suppose it shall run on startup but how do I fix that?

/Eric