読者です 読者をやめる 読者になる 読者になる

Pine Tree'S electrical page

ゆくかわのながれはたえない

結局、SabreBerry32もBluetoothオーディオ化。。。

youtu.be


 先週、Sabreberry32が届いたのでこちらもスマホからBluetooth接続できるようにしてみました。素直にVolumioで我慢しておけばいいのに、結局、デバドラのインストールからやってみたくなってしまいました(^^; 結構大変だったので、後で再現できるよう備忘録を作成しておくことにします。ソフトウェアの設定は前回とは似て非なるものでした。

0.ハードウェアは、金属皮膜抵抗とOSコンを普通にはんだ付けし、ラズパイ3にSabreBerry32を普通に装着するだけ。

ソフトウェアの設定やインストールはトランジスタ技術2016年8月号のP118の記事と、本家殿のこのページを参考に実施。

1.最新のRaspbianをダウンロード(2016.5.27バージョン)してSDカードに焼き、普通に初期設定。

2.続いて、上記本家殿の手順で、コンパイル環境の構築、カーネルソースの取得、ドライバモジュールのコンパイル、ドライバの組み込みを実施。

 sudo raspi-configでパーティション領域を拡張しておけば上記本家殿のページのようにして拡張する必要はない?とりあえずこの方法でコンパイルはうまくいった。SDカードは8GBのものを使用。

 注意すべきは、最新のカーネル 4.4.x 以降では、デバイスツリーのコンパイルとインストールの後、下記のコマンドを実施する点。本家殿のページでは末尾がdtbとなっているがdtboとする。

sudo make install_dtbo


3.続いてSSHコンソールから次のコマンドでPulseAudio Volume Control(以下、PVC)をインストール。

$ sudo apt-get install pavucontrol

PVCはGUI(X-window)で操作するので例によってPC(母艦)から接続。
詳細はここのデスクトップ画面の共有を参考。

http://www.myu.ac.jp/~xkozima/lab/raspTutorial1.htmlこじ研(Raspberry Pi

具体的には以下を叩く。

$ sudo apt-get install tightvncserver
$ vncserver :1 -geometry 1024x768 -depth 24

WinPC側ではこのソフトを導入。
https://www.realvnc.com/download/viewer/

準備が整ったらWinPC側でGUIを起動。

ここで念のため

$ pulseaudio --start

を叩いておく。

4.起動時にSabreBerry32をOSに認識させるための設定。

sudo nano /boot/config.txt でファイルを開き、


dtparam=i2c_arm=on
dtparam=i2s=on
dtoverlay=sabreberry32

を追記。本家殿のページはdtparam=i2s=onが入っていない。

続いて、

sudo nano /etc/asound.conf を新規に作成して以下を書き込む。

pcm.!default {

type hw card 0
}
ctl.!default {
type hw card 0
}

$ sudo reboot で再起動。

$ aplay -l でSabreBerry32が認識されていることを確認。
dmesg | grep sabre や lsmod でも確認可能。

ドライバが認識されていれば

card 1: SabreBerry32DAC [SabreBerry32DAC], device 0: SabreBerry32 DAC sabre9018q2c-dai-0 []

などと表示される。

5.ラズパイ3のBluetoothWI-FIと干渉するのでWI-FIを無効化する。
  スマホからデータを流し込むのでネット接続は不要なので。

sudo nano /etc/modprobe.d/raspi-blacklist.conf
として以下を追記

#Wi-Fi
blacklist brcmfmac
blacklist brcmutil

$ sudo reboot で再起動。

6.Bluetooth設定

sudo nano /etc/bluetooth/audio.conf に以下を追記

[General]
Enable=Source,Sink,Headset,Gateway,Control,Socket,Media

sudo nano /etc/bluetooth/main.conf に以下を設定

Class 0x20041c

ここを参考にさせて頂いた。
http://d.hatena.ne.jp/penkoba/20130909/1378744109


7.PCのGUIを操作してPVCを設定

[MENU]→[Sound & Video]→[PulseAudio Volume Control]でPVCを起動
[Configration]でbcm2835 ALSAをオフ SabreBerry32DAC をAnalog Stereo Output

8.PCのGUIを操作してスマホとペアリング

デスクトップ右上の青いbluetoothのアイコンをクリック。Add Deviceでスマホとペアリング。適宜、上記アイコンのMake Discoverableを使うとよい。

9.自動起動設定

ラズパイ3を起動した際にbluetoothが機能するようにする。

sudo nano /etc/rc.local
として以下を追記。exit 0 の直前に記述する。

pulseaudio --start

何故かこのコマンドは繰り返し叩かないとPVCが落ちてしまう。

10.ちょっとしたコツ

Bluetooth接続はいろいろ問題が多いが、調子がおかしくなったらスマホを再起動してみるのも効果的。

・WindowsPCからBluetoothでラズパイに接続する際は、コントロールパネルのサウンド設定の再生デバイスでラズパイ(デバイス)を予め選択しておいたほうがBluetoothの接続がうまくいく。

Bluetooth接続はスマホ側から操作したほうが成功しやすい。


11.音割れ対策

音源データがクリップして音割れが発生することがあるが、その場合はPulsse AudioのInput Devicesのボリュームを90%程度に絞る。


12.まとめ

iPad、アンドロイド、PC(Windows10)のいずれからも何も問題なく接続できました。一度、接続が確立した後の接続性は非常によいです。USB-Bluetoothドングルを挿したPCから接続する場合は画面右下の[スピーカアイコン]→[再生デバイス]として表示されるパネルから[ヘッドホン raspberrypi ステレオ]を選択するだけで簡単につながります。

 BTはA2DPプロファイルを使っているので音質劣化が気になるところですが、今のところ劣化は感じられません。


またSDカードとSabreBerry32をそのままBluetoothドングルを付けたラズパイ2に差し替えてみましたが、こちらも問題なく動作しました。

今回もたっぷり楽しませて頂きました。
akazin様、Kawase様、本当にありがとうございます<(_ _)>。

電子回路/オーディオ回路掲示板