• 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

I checked the I2S signal with a scope to see what was happening.

All 44.1 and 88.2 are played at their correct resolution. The LRCK signal shows nice the 44.1 and 88.2 kHz block signal.

Playing 96k file is sent as 88.2k and 192k gets downsampled to 176.4k.
If is disconnect the external clock and (try to) play 96k nothing happens until I re-connect the 22.579 clock and the BBB outputs 88.2k to DAC.

Why is the BBB now only using the external clock ??
Or could the ext_masterclk setting still not function properly ? .. see my previous post.
If it still uses setting 3 than I get this situation as I experience now.
 
Last edited:
I did some more tests ...

In /boot/uboot/uEnv.txt I changed snd_soc_botic.serconfig=I--- to -I-- to direct the I2S signal to another PIN but after reboot the BBB has not changed the output pin because I still get music.

Have I missed something in the beginning that uEnv.txt is ignored completely ?

Should it be loaded or mounted first ??
And if so .. how ?

I also noticed that after reboots the "serconfig" in /sys/module/snd_soc_botic/parameters/ gets reset to MMMM even if I could change it prior to reboot to I--- and stays I--- if I check the file again after editing and saving the file.
But a reboot resets it again to MMMM
 
In the meantime I continued my quest to solve the ext_masterclk setting.

Triggered by my own question if I should mount uEnv.txt (and remembering slightly that I had seen something like that) I noticed something like that at bbb.ieero.com in the Howto section.

Under the part about using Volumio it mentioned:

mount /dev/mmcblk0p1 /boot/uboot
nano /boot/uboot/uEnv.txt
umount /boot/uboot

Because I do not use Volumio I never read it carefully.
Going through those 3 steps solved my problem.

The typical thing was prior to this uEnv.txt was empty so I had to put any optargs in there myself.
Now suddenly uEnv.txt had lots more tekst with the last line containg the optargs with ext_masterclk=3 and serconfig=MMMM.

Changed to ext_masterclk=1 and serconfig=I--- and rebooted.
Now everything is playing with LRCLK at the original native resolution.
Playing 96k / 192k I can unplug the external 22.579 clock and still playing fine.

Also "for i in /sys/module/snd_soc_botic/parameters/*; do echo "* $i"; cat $i; done" returns the wanted and correct information.

Finally after many hours/days I can start enjoying the music as it was supposed to be :D
 
Last edited:
OK, please be with me, a complete newbie on Linux...I have a couple of issues:

A. Upgrading to V5 does not work:
root@botic:/# apt-get install linux-image-4.0.0-botic5
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-4.0.0-botic5
E: Couldn't find any package by regex 'linux-image-4.0.0-botic5'


B. Mounting works, but only with at the command-line, not automatic and only with the follwing command:
root@botic:/# mount -t cifs //192.168.2.15/h/musik/jriver /data/remote -o username=frank,password=volvo,sec=ntlm

...without sec=ntlm it will deny permissions. with it, it works.

the entry:
# Edit /etc/fstab and add entry for the remote storage
nano /etc/fstab

... add there line/s ...

# windows share directory (cifs)
//IP_ADDRESS_OR_HOSTNAME/REMOTE_DIRECTORY /data/remote cifs user=USER_NAME,pass=PASSWORD,cache=none,gid=audio

from the Homepage has no effect.

C. MPAD-Connectivity: My MPAD cant find the mpd Server, even when zeroconf is "yes" and bind_to_adress="any"

...with the command-line mounting and the ympd-mini-client at 8080 I do see my files...so, the mpd-server works....

ny the way: I assume when I type "reboot" with attached sd-card, it will bring me into the botic-distro even when I am not pressing the boot-buttom, right ? at least I can login at root / botic as you can see above.
 
Last edited:
Member
Joined 2007
Paid Member
A. Upgrading to V5 does not work:
root@botic:/# apt-get install linux-image-4.0.0-botic5
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-4.0.0-botic5
E: Couldn't find any package by regex 'linux-image-4.0.0-botic5'

First things first:

You need to add the source to your system and then update. This site automatically 'damages' the URL for the first step, but you can see it correctly back in post #1344. You should be OK using the first three entries...
 
Member
Joined 2007
Paid Member
Aptitude doesn't know where to look for the code you want to install. You have to add the correct URL to your machine before aptitude can reach it. From a command line: 1) edit /etc/apt/sources.list by adding the URL from post 1344. I can't just type it because this site automatically converts it to a useless link. 2) execute 'apt-get update'. 3) execute 'apt-get install linux-image-4.0.0-botic5'.
 
Last edited:
Frank, Thx a lot, that worked ! I am now on v5 as well.

By the way: Is the botic driver "only" setting the scene for i2s output over the pins or is as well the i2s quality send out by the an asynchronous usb connection to an waveio or simialr usb card effected assuming there is something like a hermes/chronus in place ? Would be neat to easily compare usb-dacs.
 
Member
Joined 2007
Paid Member
Frank, Thx a lot, that worked ! I am now on v5 as well.

By the way: Is the botic driver "only" setting the scene for i2s output over the pins or is as well the i2s quality send out by the an asynchronous usb connection to an waveio or simialr usb card effected assuming there is something like a hermes/chronus in place ? Would be neat to easily compare usb-dacs.

USB audio is asynchronous while I2S is synchronized. Botic and Hermes/Cronus are all about the conversion from untimed data packets to precisely regulated continuous pulse code.
http://www.usb.org/developers/docs/devclass_docs/frmts10.pdf
 
I do have now my connection to mpad, but no cover art as i used to have in modpup.

I guess there is the web-server either missing or not configured...

I found a little manual how to this here:
Forum - RaspyFi

I installed the server, but cant get the configuration right as port 8080 is in this distro already taken by ympd...any ideas how to do it right ? Thx so much...
 
Ok, for those who want to make their ipad to be their remote control throgh mpad...here is how the cover art works:

- install lighttpd like described in the link above
- change /mnt in the conf file to /data
- use port 80 as 8080 is already taken by ympd
- for testing puposes use command

dont forget to start lighttpd, control this with netstat -nlp

...it would be nice if a running webserver can be included into the distro to make it easier for noobs like me...
 
A further refinement is to install the web server elsewhere on your network. This relieves the task from your music player device (BBB).
Ideally this could be on the same NAS that serves your music files, if you are using a NAS. Just change the web server configuration to point to the location of your music files.
Apache is overkill for serving cover art. lighttpd is a good choice. nginx is also a good choice.
 
Member
Joined 2007
Paid Member
Greetings Miero!

...snip... Is there a patch to make 'record' input to the mcasp serializers work? If not, no problem! I can work 'outside the box' to perhaps get USB input working.

From the beginning I have had the goal of adding SPDIF input to my BBB-based sound system in order to make it a multi-functional sound appliance. In my system the BBB runs speaker crossovers, so I wanted the external SPDIF to be processed through ALSA on the BBB [no short-cuts directly to a B3!]. To this end, I have been messing with a Roland UA-25EX USB interface. It is a 2 channel multi-purpose interface with decent preamps, phantom power, and a limiter - I've used it for voice-overs in teaching materials.

First, the UA-25EX connects with BBB/Botic v.5 and configures immediately on power-up - no hassle whatsoever! I tried feeding it optical SPDIF via an AppleTV - again no problem. My immediate goal has been to reinforce the sound from video, so latency is a serious concern. I tried 3 different methods of processing the USB signal: ecasound, arecord piped into aplay, and SoX.

Ecasound required its own loop to manage the I/O - that was the only way I could avoid segmentation faults. In this configuration the signal latency was on the order of several seconds. Nothing usable for video, certainly, but there are other advantages to using ecasound should large latency be no problem. I used:
Code:
ecasound -z:mixmode,sum -x -d -b:4096 -a:in -i:alsahw,1,0 -o:loop,1 -a:out -i:loop,1 -a:out -o:alsahw,0,0
or
ecasound -z:mixmode,sum -x -d -B:rt -a:in -i:alsahw,1,0 -o:loop,1 -a:out -i:loop,1 -a:out -o:alsahw,0,0
Note that only hardware destinations work with ecasound, so if one wanted a crossover then the LADSPA filters would have to operate within the ecasound chain(s). ...huge latency = no go for ecasound...

The ALSA commands 'arecord' and 'aplay' worked very well with easy signal direction to the ALSA crossover. Lip-synch was not bad! ...a little bit distracting from time to time if you are used to reading lips. But acceptable latency and never a glitch with overruns or underruns.
Code:
arecord -c 2 -t raw -f dat -r 48000 -D hw:1,0 | aplay -c 2 -t raw -f dat -r 48000 -D default
'arecord' piped to 'aplay' is a respectable option for USB processing.

The best performer in terms of latency was SoX! I was surprised - using SoX I saw an actor knock on a door. Even small synch issues should have stood out but latency was barely noticeable. So as you would expect, lip-synch is really not an issue either. I'm not saying it is "A+ 100% perfect", but I think synch issues are as likely to originate in the streaming source (like Netflix) as originate in BBB-USB processing.
Code:
sox -r 48000 -b 16 -t alsa hw:1,0 -r 48000 -b 16  -t alsa default
When SoX starts up there is a brief period of under-runs but then it settles-in without dropping a byte.

So far I have only tested with 16/48 streams, but I certainly have no complaints about SQ. It is a pleasure to enjoy the nice sound equipment with video. I consider USB to be THE answer to inputting outside signals to the BBB - it just works and couldn't be any easier! My next step will be to test out a small SPDIF->USB converter that could be built right into the chassis containing the BBB. Hopefully that will work as well as the UA-25EX.

Considering all that could have gone wrong trying to achieve video-grade latency through the BBB, the USB route was truly a lucky find! :)

Cheers,

Frank
 
Last edited:
One question: Is Miero's effort here proprietory towards working mainly with herme/cronus or could as well a different solution work easily like

http://www.diyaudio.com/forums/digi...ifo-project-ultimate-weapon-fight-jitter.html

Ian's clock and reclocker which is working in my biii-Dual-Mono setup (with alix board, sotm card and waveio) since many years like a charme ?

I will try hermes and chronus as soon as the parcel arrives, but Diyaudio is all about testing option and experimenting....what I would like to test would be setups like:

-Bbb with Boticv5 (lets call it bbbb) with Ian's Dual clocks feeding ian' reclocker into biii
- bbbb with soekris dac
- bbbb with dual xo from ian feeding pcm1704 dacs and others i have here around
- bbbb with herms and cronus into biii
- bbbb with hermes and cnronus into ian'rclocker feeding biii...etc
 
Member
Joined 2007
Paid Member
I can't speak for Miero, who seems busy at the moment. But certainly, he has been generous in helping BBB users who want to try other clocking options than Hermes/Cronus. I think you will be the first to evaluate combined reclocking options. Enjoy the discoveries (and use the battery shutdown capability in Botic ;)).