• 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.

Botic build as an easy to use streamer/tv+stereo controller

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
The BBB-Hermes-Chronus-Buffalo 3SE combination makes it quite easy to build really neat audio appliances.

It took me a bit of googling to put everything together, so I'll describe my build it in case it is useful to someone else. I'm a beginner in DIY audio, comfortable with Linux but not with electronics.

About this build
I used a 7805 regulator for powering the bbb. My unregulated voltage is about 16 V. The 5V-regulators heat sink is quite hot while the battery is charging, but cools down when charging is done. Input selection relays and LED:s are powered with 12 V from 7812-regs.

The appliance accepts IR remote control, has buttons for turning on the soundsystem and the TV (via external relay boxes) and 3 XLR aux-inputs. My better half has accepted it as useable and output level is limited so that my children won't blow anything up.

The dac-portion is unremarkable (but good-sounding), B3SE with iv resistors to a Salas iSelect and after that raw and transformer coupled (LL1527) outputs. I run my bass amp from the raw and my mid+treble amp from the transformer coupled output. The transformer does the low-pass filtering.

I tried the "Rasmusen effect" with capacitors across the dac-outputs (in my case 1 nF was enough) but it did not suit me.

Installing software
The easiest way is to get Mieros premade Debian-image. It's based on Debian wheezy, which is slightly dated but works fine.

Get botic v4, http://bbb.ieero.com/botic4/bbb-botic-v4-1gb.img.gz
Unzip and write the resulting .img-file to a micro-SD flash card.

Login (over the network, using SSH - Terminal on Mac, PUTTY on Windows) and change the passwords of users debian and root with the command passwd. The original password is "botic". Write passwd --help and press enter.
Add the command
ntpdate pool.ntp.org
to /etc/rc.local. This will set the systems clock so that certificates work (for installing software etc.)

Optionally expand your root filesystem (Beagleboard:Expanding File System Partition On A microSD - eLinux.org)

Update the system:
sudo apt-get update
sudo apt-get upgrade

Update to botic v7 kernel for i2c-control of the Buffalo:
Support for Botic Linux driver

Install lirc for IR-control:
Support for Botic Linux driver

Airplay support:
GitHub - mikebrady/shairport-sync: AirPlay audio player. Shairport Sync adds multi-room capability with Audio Synchronisation

Controlling stuff with python
Debian wheezy has python3.
I use polling to read GPIO:s and python-lirc for IR in small separate scripts, which communicate with a GPIO-flipping backend using the DBus system bus.
This let’s me use different event loops to handle user input.

For Python DBus-examples, see:
https://github.com/stylesuxx/python-dbus-examples

To have a script run automatically on startup, just add it to /etc/rc.local (again, using e.g. nano)
Using GPIO
Adafruit has a nice python-library for using GPIO:s on the bbb. Reading inputs however doesn’t work. This may be related to an old uboot-version, but the compiler toolchain on Debian Wheezy is too old to compile a newer version, so I gave up and used polling, which works great.

For logic level switches, I have used IRLD120. These are cute and cheap little mosfets. I measured a couple and they had Rds ~0,2 Ohm @ Vgs 3,5 V. Works like glue.

For switching mains-relays, I did a high side switch using IRFP9240 and IRLD120.

Do keep in mind that the GPIO-pins which carry LCD_DATA0 through LCD_DATA15 affect bootup, see https://github.com/beagleboard/beaglebone-black/blob/master/BBB_SCH.pdf, sheet 6. This is a fun place to connect rotary encoders...
Also note that if you pull LCD_DATA2 to ground you can force the bbb to always boot from sdcard.

Switch IP_S
The pin near S is pulled high and the pin near IP is at ground. If S is pulled down to ground (IP_S is closed), I2S-input is selected. If it is left pulled up (IP_S is open) S/PDIF-input is selected.

We can control this with a GPIO using an optocoupler. I used a 4N35 driven by a IRLD120.

To get sound when using S/PDIF, you have to unmute the "External" mixer.
Miero has done a really stellar job integrating I2C-control with ALSA and we can control a lot of DAC-settings using e.g. alsamixer. See Support for Botic Linux driver

Conclusion
Overall I'm very happy with this build. When I do this again, I will not try to fit everything into one box and make it at least slightly repairable/less crappy. The twisted pear stuff really deserves to be made in a not crappy way.

There should be something like 100K resistors tying the XLR-inputs to ground (to avoid loud pops when switching to an unconnected input.)

The next stage is adding a proper I/V (I'm halfway done matching a gazillion jfets for a Sen I/V) and at some point I would like to try out the buffalo pro. Before I get to order that, I have to write a linux i2c driver for the 9028, so that will likely happen some time after nuclear fusion is a commercially viable way to generate power:)

Lastly thanks to Russ, Brian and Miero for their help and for making this fun kit available.
 

Attachments

  • 20180210_201717.jpg
    20180210_201717.jpg
    423.4 KB · Views: 177
  • 20180210_201712.jpg
    20180210_201712.jpg
    434 KB · Views: 170
  • 20180211_213247.jpg
    20180211_213247.jpg
    806.8 KB · Views: 169
  • 20180211_213258.jpg
    20180211_213258.jpg
    862 KB · Views: 170
  • 20180211_213118.jpg
    20180211_213118.jpg
    1 MB · Views: 166
Last edited:
Thanks:)

It's just really amazing to be able to buy an excellent kit dac, which functions as a very well supported sound card under linux and be able to build ones idea of the perfect media centre using it.

Has anyone done smart home stuff with this? Imagine sunday morning, when the bbb has started the coffee machine, warmed up them power amps and slowly raises the light as some nice radio starts playing:)
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.