• 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

Member
Joined 2007
Paid Member
How does the switching work in practice?

I really look for a seamless solution to combine the use of mpd and spotify. Any other experiences with this?

I created a networked remote control for the BBB using software called NetIO. It gives the flexibility do do anything that can be programmed into a bash or python script, and activate it from an android or iOS device. Using this, I can switch inputs from a music server, a TV, or a network box like AppleTV, and choose the output to amps/speakers or headphones. I have different player programs customized for each source, and even auto switch the system crossover and minor EQ filters for the program source. Example code is available on GitHub, and a short descriptive thread is available here: Control of BBB-based audio appliances

If python isn’t too opaque to you, it wouldn’t be too tough to adapt already-working code.
 
I have a couple of trouble with the Volumio-BBB-Hermes-Cronus-ES9038PRO set.
Let me start with the SSD disc related problems.

I have a Samsung Evo 840 1TB SSD with SATA2/SATA3 inteface. It can be connected thru the only USB 2.0 port of the BBB, using a SATA2->USB 2.0 cable.

1. First the BBB doesn't detect the SSD in most cases. The best practice is to disconnect the USB cable, start the BBB, and start to play a radio station. Stop playing, and push the USB connector of the SATA2->USB cable to the BBB. If BBB detects the SSD, I see:

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1953521663 1953519616 931.5G 7 HPFS/NTFS/exFAT

in the simulator, and I can also see a new library called Music Library/USB/bc0184d4-2b63-45dd-b58d-f0af268f649a in the Volumio client. The SSD is scanned, and I see the appropriate music file names in the above folder. I can play these files without waiting for parsing all the files on the SDD. Thats fine.

But the parsing process become slower soon, and after parsing a relatively small fraction of the whole disk, it even stops. I can't reach all of my files, and every new
BBB boot restarts the previously unfinished and time consuming SSD parsing.

I also tried to use Kingstone Data Traveler HiperX 3.0 64GB flash drive, there is no such problem. It seems Volumio/BBB can't handle larger music library.
 
Google indicates that USB to SATA adapters can be problematic under Linux.
You might try a different brand of USB to SATA adapter?

But personally I would go a step further and install your Samsung SSD drive into a NAS unit. The additional expense of a NAS box is minor compared to the already significant investment of your high end equipment. Then you will be using the Boticised BBB in the manner it was intended, and you will have the added benefit of access to the drive from multiple computers, without plugging and unplugging it all the time.

Alternatively, check your router to see if it has provision to connect an external hard drive. If so, you have a NAS without any additional expense at all.
 
Hi, I just setup a BBB rev C with the 4.8.13-botic7-rc3 kernel and it seems like every time I play music the I2C bus locks up.
I can connect just fine after restarting the BBB to a 9038 DAC I2C interface but as soon as I play any music I can no longer connect. I get a "Error: Read failed" message to any i2cget commands and I see this in dmesg:

Code:
[  224.999112] omap_i2c 4802a000.i2c: controller timed out
[  530.733417] omap_i2c 4802a000.i2c: timeout waiting for bus ready

The only way to fix it is to restart the BBB. Nothing else works.

I'm using the am335x-boneblack-botic.dtb overlay.

Any ideas what could be wrong?

Thanks!
 
Member
Joined 2007
Paid Member
I believe the I2C address of the new chips has changed. For example, the 9028 can be set to either 0x90 or 0x92. I recall that the 9018 was different, though I’m away from my system with no way to check. Run an I2C bus scan on the new setup and then you will know which of the two should work. Then, a bit of work to edit the control code... Good luck!
 
The chip address is the same as before 0x48 or 0x49 (I have the DIYINHK dac that uses the secondary 0x49 address). I can communicate with the chip just fine after starting the BBB. I can read and change any register. The problem is that as soon as I play any music via the botic sound device the i2c controller gets hosed and cannot be used to communicate with any i2c device, not just the DAC.
 
You're right, the datasheet shows 0x90 and 0x92 but an i2c scan shows 49 and another member on here that updated his buffalo III dac with the 9038PRO chip uses 0x48 in his firmware. I guess they changed the address at some point and we just have chips from the earlier batches.

However, the chip address is not the problem, I can connect to it from the BBB without any issues as long as I never play any music.
Playing music via the BBB causes the BBB's i2c controller to stop working, not the DACs. Resetting the DAC does not fix the problem, restarting the BBB does (without restarting the DAC).

I am using external 45 and 59 MHz clocks for the BBB, is it possible this is somehow messing up the i2c bus clock?

Thanks for your help!
 
Hi there.
A short question - please, don't murder me as I understand I'm a 1093th dumb lamer...
BB Green, dietPi linux, boticized, boots ok.
Alsa says no soundcard installed, but:
Code:
root@DietPi:~# cat /proc/asound/
cards    devices  modules  oss/     pcm      seq/     timers   version  
root@DietPi:~# cat /proc/asound/devices 
 33:        : timer
root@DietPi:~# lsmod | grep snd
snd_soc_davinci_mcasp    16046  0
snd_soc_edma            1290  1 snd_soc_davinci_mcasp
snd_soc_botic           7504  0
snd_soc_botic_codec     2698  0
snd_soc_core          156179  4 snd_soc_davinci_mcasp,snd_soc_edma,snd_soc_botic_codec,snd_soc_botic
snd_pcm_dmaengine       5273  1 snd_soc_core
snd_pcm                80602  3 snd_soc_davinci_mcasp,snd_soc_core,snd_pcm_dmaengine
snd_timer              19063  1 snd_pcm
snd                    58829  3 snd_soc_core,snd_timer,snd_pcm
soundcore               7285  1 snd
root@DietPi:~# 
root@DietPi:~# uname -a
Linux DietPi 4.5.0-botic7-rc1 #1 PREEMPT Tue May 17 00:51:35 CEST 2016 armv7l GNU/Linux

I guess there's something wrong with dtb that might conflict with diet's PM blobs, but I think I deleted all of them from uEnv.txt and rebooted.

Any debug ideas please? Thank you!
 
Member
Joined 2007
Paid Member
Hello Miero...

A while back I was trying to get a Beagle Bone Enhanced working with Volumio and for some reason at the time I couldn't get networking going. I tried again, this time using the am335x-sancloud-bbe.dtb and got the Volumio webpage up. However, since I'm using the bbe dtb all the botic stuff is not configurable. Would it be possible to cook up a dtb for use with the BBE?

I'm sure there are other things on the BBE that aren't working like Bluetooth and WiFi, but this is less important for my usage with Volumio/Botic.

Thanks,
Mull3t
 
Appended an usb/uart to the debug header. Here we go.

Code:
Loaded environment from /boot/uEnv.txt
debug: [dtb=am335x-boneblack-botic.dtb] ...
Using: dtb=am335x-boneblack-botic.dtb ...
Checking if uname_r is set in /boot/uEnv.txt...
gpio: pin 56 (gpio 56) value is 1
Running uname_boot ...
loading /boot/vmlinuz-4.5.0-botic7-rc1 ...
5437112 bytes read in 424 ms (12.2 MiB/s)
[B]uboot_overlays: dtb=am335x-boneblack-botic.dtb in /boot/uEnv.txt, unable to use [uboot_base_dtb=am335x-boneblack-uboot.dtb] ...[/B]
loading /boot/dtbs/4.5.0-botic7-rc1/am335x-boneblack-botic.dtb ...
57947 bytes read in 89 ms (635.7 KiB/s)
Removed all cape-related garbage from uEnv.txt and - here we go.
Code:
root@DietPi:/boot# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Botic [Botic], device 0: external botic-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Sorry for being that annoying, maybe this helps somebody. Now will try to get back the PM firmware.
 
What is the rationale for using dietPi? I find that 'extra' processing tasks by the BBB in my system has zero impact on the sound quality of the I2S into ESS DACs. Even at >90% CPU there is no degradation of the SQ.
Well, I'm an old (ancient) linux guy, so it's ridiculous for me to have active swap on such a toy with 512 MEGS of ram (hi volumio!) My oldest BGP borders (terminating lots of vlans, using filters, traffic shapers et al) still feel free with half a gig!
So the transport's gonna be a tiny appliance as it has to be. Minimal kernel, nothing unneeded running. With Miero's ready-made binary I have 433M free already, all daemons running but the up/mpd. Own kernel will be obviously lighter (screw ipv6, usb mass-storage, smbfs etc), mpd cut in half, maybe i could optimize hqplayer naa too, and tiny web daemon for easy config, that's all.
Diet looks like a nice template for this. Maybe I end up with buildroot.
 
LIRC driver for BBB

Hi miero, I'm trying to set up an IR receiver for BBB using LIRC ported to BBB by you. I downloaded your source file from Github and tried to install the lirc module but there seems no lirc_bbb.ko after doing make prepare/install without errors as shown below:

Code:
root@arm:/usr/src/lirc-bbb-master# make prepare
make -C /lib/modules/`uname -r`/build scripts
make[1]: Entering directory '/usr/src/linux-headers-4.8.13-botic7-rc3'
  CC      scripts/mod/empty.o
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  GEN     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
make[1]: Leaving directory '/usr/src/linux-headers-4.8.13-botic7-rc3'
root@arm:/usr/src/lirc-bbb-master# make install
make -C /lib/modules/`uname -r`/build M=$PWD INSTALL_MOD_DIR=kernel/drivers/staging/media/lirc modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.8.13-botic7-rc3'
  DEPMOD  4.8.13-botic7-rc3
make[1]: Leaving directory '/usr/src/linux-headers-4.8.13-botic7-rc3'
depmod -A
root@arm:/usr/src/lirc-bbb-master# ls
example_lirc_conf  LICENSE  lirc_bbb.c    Makefile  README.md
I'm now using a debian stretch dist-upgraded to the latest. Prior to making module, I'd connected the output of a TSOP38238 to the P8_07 GPIO pin of BBB.

Any suggestions? Am I using an outdated source? TIA