• 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

Yes, I have some ideas. I seems that it is possible to reuse some of the 4 signal lines, so the Mute signal would be isolated :)

I've designed a small interface PCB for my DSC1 DAC that means I can connect the DSD inputs via ufl connectors and, just in case your mute signal doesn't use an isolated line, I have included an option of an isolator on the same interface board for the mute and 'DSD on' signals.

I'm hoping to be in a position to try DSD512 from the BBB/Botic into a NoDAC board next week when I have some time off.

Ray
 
(Hardware) Volume controle of DAC

Hi guys,
It has been a while now and I wanted to see if Botic is now able to support MPD's hardware controlled volume feature, so that MPD can control with the help of Botic the ES9018's internal volume control?
Sorry if I might have missed this, I looked around here some while but didn't get any clue.
Tomorrow I'm going to implement the newest Botic version if hardware volume control is possible. :cool:

And guys, I love reading about your never stopping endeavour of pushing this to it's limit!
Regards,
Matthias
 
Volume Control with Botic7

Thank you very much Miero for your great help! Perhaps I was a bit blind, because I found the botic7_rc1 version and read through it, and then was looking for something stating that volume controle is possible. But you did this already in post #1611:
- native I2C control of ESS ES9018S in plain stereo mode from the kernel driver

I'll update my Botic, perhaps do it right with installing new Debian stabe from scratch, and enjoy this evening beautiful music without pre-amp!

Thanks again very much!
Matthias
 
Yes, I have some ideas. I seems that it is possible to reuse some of the 4 signal lines, so the Mute signal would be isolated :)

Hi miero, just wondering if you've made any progress with a mute output for non-ES9018 DACs, such as the Signalyst DSD DAC I'm working on.

I haven't reached the point of testing a no-DAC or Signalyst DSD solution with BBB/Botic yet as I'm waiting for parts and have some work pressures, though I'm hoping to get things back on track in the next few weeks.

Cheers

Ray
 
Simple Low Pass filter

Hi,
Since I use Non OverSampling (NOS) DAC with botic I am considering how to attenuate the aliases. I now that simple analog filter at output stage is insufficient. So there is a need for low pass digital filter also.
The digital filters (usually embedded in DAC or separate chip) are usually complex and poor sounding (especially cascaded) -hence NOS approach arose. In turn, simple filters sound better.
So I though that such simple digital filtering can be done by software (linux).
Do you think that such digital filters would work well with botic/linux?

I've found interesting article about simple low pass filters:
FIR Filters by Windowing - The Lab Book Pages
How such a filters could be applied in botic? LADSPA?
TIA
 
Hi Bern,

first the question which could me to post here:
Why do you think a analogue filter doesn't sound good? Do I understand you correctly that you want a filter to get rid of the DACs high frequency noise? (Not a reconstruction filter.) Then a simple filter first grade is quite good, I think. EUVL uses it at 180kHz, if you go lower, it sounds smoother, and other way round.
Also look for "Joachim Gerhard's filter buffer" here on diyaudio. This is perhaps what you are looking for.
In my opinion every time we change something with digital filtering we change something on the source level, so it has to be done really carefully. Often it's not precise, or put in other words, it's lossy. May it that the change cannot be done at 32bit (or more), or that the phase get's changed. Of cause there are options not to interfere with the sound, but one should really look into the details and see how it works.

Regards,
Matthias
 
Hi Matthias,
.
Why do you think a analogue filter doesn't sound good? ...
I haven’t written that.;) I wrote that analog filtering is insufficient. It is very hard to make analog low pass filter with steep slope e.g . for 44.1 khz.
When you play stream with sample rate = 44.1kHz the Nyquist frequency (frequency above which aliases arise is 22.05kHz (44.1/2). So theoretically you should attenuate everything above 22.05khz. In this case theoretical passband should start at 20khz and stopband at 22khz (Nyquist frequency). You would have to design a analog filter with very steep slope. Maybe better approach (besides doing this in analog) is to do that also in digital domain?
In good designed DACs there are always combination: digital and analog filtering.
I’ve read many times that simple digital filters sounds better than complex so I thought about simple digital filter for botic:)
Regards,
Bern
 
Hi Bern,

I'm not into this, but aren't the aliases at a MUCH higher frequency? This is also why I said that filtering at 180kHz is a good starting point. And a good source of information is the Jocachim Gerhard Filter Thread here, he know's what he's doing, from the theoretical sight and more important also what's sounding really nice. He's one of the best designers for small signal audio arround.
 
Hi,

now I've done the hardware change (I²C Cable, pull off trident) and installed the new kernel, but can't connect with a MPC client to Botic Linux on the BBB. (with SSH it works, so basic linux system is working on fixed IP)

What do I need to have the hardware based volume control?

Just put the mixer_time "hardware in mpf.conf? What about mixer_control, is "MasterTrim" correct?
And do I need the helper spript mentioned for botic5? Or something else?

I think something is missing, because it worked until I uncommented the mixer_type.

Thank you for your help!
Matthias
 
Last edited:
Hm, it's not working. I can login with SSH, but can't get with any MPC on the MPD.

So again from the beginning:
What do I need for hardware based volume control?

1 --> I did what you'd posted in #1611 (kernel update, /boot/uEnv.txt with dtb=am335x-boneblack-botic-sabre32.dtb)

Hardware:
2 --> Then connected the 4 pins of the I²C header to the buffalo's I²C header. (I'll recheck connection tomorrow.)
3 -->Removed the trident, which was in top of the clock, removed the IC8 (firmware controller) like in your picture, and removed the jumper from ADC (before it set's the DAC's internal volume control off).

Hm, this is a pity. :(

Questions:
How is the DAC chip set, as I toll the fimware controller chip out, like on your picture. Is the kernel doing it now? Or is something missing (e.g. this DAC setting script from Botic 5?)
 
Last edited:
Firstly, check that you have a properly configured BBB for Sabre32:
root@botic:~# lsmod | grep sabre32
snd_soc_sabre32 12565 1
snd_soc_core 156179 4 snd_soc_davinci_mcasp,snd_soc_edma,snd_soc_sabre32,snd_soc_botic
Then check that the I2C connection between (Hermes-)BBB and the DAC works by executing following command:
root@botic:~# amixer get DAC1
Simple mixer control 'DAC1',0
Capabilities: pvolume pvolume-joined
Playback channels: Mono
Limits: Playback 0 - 255
Mono: Playback 255 [100%] [0.00dB]
I assume that this will not print the similar output, because the "Master" volume control for MPD would work in that case.

You are writing that you have removed a Trident from the DAC Clock. The DAC requires ticking master clock to processing I2C commands.

I have it removed because I'm using synchronous clock from the Hermes-BBB. But there is a hidden wire under the board which you probably did not solder... :) I'm sorry for the misleading image without a warning.

You can either return the Trident back or solder a single wire from MCLK output on Hermes-BBB to the clock input on the underside of the B3.

To your other question, the DAC chip will be initialized by kernel module snd_soc_sabre32. You can check its source code here: https://github.com/miero/botic-dev/blob/master/generic/sabre32.c
 
Last edited:
Hi Miero,

yes, I did remove it. Ok, perhaps a bit too fast. Here everything comes to one conclusion: There is a need for the long anounced manual Twisted Pear one day has to do.

So I've to see if it still works when I solder it in back.
I'll report back, thank you for your detailed help!

PS:
First command works, second not. Either the I²C cable or the missing trident or both.
 
Ok, now it plays racefully! :sax: :D
First time without pre-amp, I'm curious what impression this makes to me.
One "problem" is there now.
I have only mono, and I've looked in some configuration files in botic, but didn't found the correct file to change. What do I have to change to have stereo from a Buffalo 3 build? (I guess that the output should also be higher, so the mapping seems not to be correct.)
 
I'm not sure about mono, how much channels do are you using 2 or 8?

You can set input remaping using ALSA mixer.

In the ssh console run the "alsamixer" and change the "Remap Inputs" to the 12125656 value to be compatible with IC firmware remap inputs.

Also the mono playback can be caused by "True Mono" control set to other value than "Off". Or that some DACx volume is muted. So check the "alsamixer" tool :)
 
Thanks Miero, I'll check!
I just use stereo. :cool: I thought I could change some kernel parameters or more likely something relatated to the I²C controlling of the DAC chip. I remember that the chip controlling the DAC has in the newest version a higher output, because before it was just to low.
Alsamixer, that's easy. :)
 
It is not just easy to change the mapping, but also all kinds of different switches now are (of cause) done in software and not anymore with the DIP-Switches of the Buffalo. I'll also experiment now with the FIR roll-off.
And so save the changes done in alsamixer, I did:

Code:
alsactl store
Regards,
Matthias