« ジャイアンは浮気者 | トップページ | 苦ロックレース »

2017年10月31日 (火)

Terra-Berry DAC2にシリアル接続

今回は、ジャイアンには珍しく、ほぼほぼ文字の内容です!


追記:ついでに英文マニュアルも作っちゃいました。
   いい勉強になりました。(11/2)


「SerialPortSettingManual.pdf」をダウンロード



Terra-Berry DAC2は、開発元テラテクノス株式会社のサポート資料によると、ラズパイからシリアルポートを通じてアクセスして、設定をいじれるそうなのです。


例えば、3種類のサウンドモード、4種類のデジタルフィルター、ミュートを含む0.5dBステップ/256レベルのデジタルアッテネータ(DACの前段に置かれているそうな)、あとこれはまだ良く機能が分かってないのですがDoPのON/OFFなどです。
(DoPがONだと、SW1のON/OFFにかかわらず、SW2はON、つまり入力信号の種類にかかわらず、常にDSDでDA変換される仕様なのは分かったんだが...分からないのは、なぜこの機能にDoPという名称がついているのか?ここで言うDoPの意味が分からない。普通に考えればDSD over PCMなんだけど...)
ツラツラと仕様書を読んだのですが、そのほとんど理解不能...
何となく分かったのは、上に書いたことぐらいです。


そして、ラズパイにSSHでログインして、そこからさらにシリアルポートを通じてTerra-Berry DAC2にアクセスできるようになるまで、そりゃもうジャイアンは尋常じゃない汗をかいたのです。
まったく無知な初心者だからこそ陥ったワナもありました。


で、こんな情報を欲している人がどんだけいるんだろう?と思いつつも、おそらくI2S DACユーザーでは圧倒的少数派であろうTerra-Berry DAC2ユーザーの中の、さらに少数な人たちに向けて、記録を残しておこうと思うのです。



基本、volumio2.296をベースに書いてます。
使用するRaspberry Piは3前提です。
(2の場合はどうやるのか、正確に把握してません。たぶん最初のbootディレクトリのファイルをいじるのを省けばいいんじゃないのかな、とは思うんですが)
なお今後、volumioのバージョンアップで、この情報は通用しなくなるかも知れません。



Terra-Berry DAC2を認識できるvolumioの起動ディスクが作られているのは大前提。
作業を行う前に、SDカードのバックアップを取っておきましょう。


volumio2では、デフォルトでsshログインは無効になっています。
volumioの起動画面では、画面中央に“volumio”と表示されるだけで、ログインもできなければ、当然“sudo raspi-donfig”もできない。
それでも敢えて有効化してsshログインするのですから、何が起こっても自己責任です。
volumioは当然ですが、テラテクノスさんや、もちろん私にも、一切責任はありません。




========================================





まず私がやったのは、テラテクノスさんやRaspberry Pi財団が言ってる方法とはチョット違って、SDカードをPCに刺し、PCのデスクトップで改変が必要なファイルをいじること。
(いきなりSSHログインでファイルコピれ!いじれ!とか、初心者にはハードル高すぎでしょ?)
“boot”の名前で見えるSDカード内で、“cmdline.txt”と“config.txt”を探して、同じ階層にコピーを作る。
コピーした方(逆でもいいけど)のファイル名を、例えば“cmdline_org.txt”とか“config_org.txt”とかに変更しておく。
(何か問題が起こって元に戻したかったら、SDカードをPCで開いて、コイツらを元のファイル名に戻せば、元の状態にすぐ戻せる)



テキストエディタで“config.txt”を開き、最終行に...



dtoverlay=pi3-miniuart-bt



加えて保存
これで再起動後、Bluetoothはmini UART (ttyS0)を使うようになり、UART0/ttyAMA0はGPIOの14と15に復帰させる、つまり、晴れてユーザーがシリアルポートを使えるようになるということらしい。



さらに“cmdline.txt”も開き、次の内容を探して削除



console=serial0,115200 kgdboc=serial0,115200



そして保存
ここで他の部分を少しでも削っちゃうと、Raspberry Piが起動しないので、チョット注意が必要。
(そのために転ばぬ先の杖でオリジナルファイルをコピって残しておいたのだ)
(Raspberry Pi3ではシリアルポートがBluetoothに押さえられているらしく、そのままではTerra-Berry DAC2にアクセスできないので、以上の作業を行うそうだ。詳しいことはRaspberry Pi財団のTHE RASPBERRY PI UARTSを読んで欲しい




これで準備は整った。



Terra-Berry DAC2を載っけたRPi3にSDカードを挿し、起動させる。
ウェブブラウザに“ http://volumio.local/dev/ ”と打ち込む。
すると...




Picocominstall_01




volumio Test Player”にアクセスできる。
SSH”の“enable”をクリック。
これでウェブブラウザは忘れていい。



次にラズパイにリモートログインできるアプリを起ち上げる
私はMacユーザーなので、デフォルトで入ってるターミナル。
Windowsな人は、Tera Termなどをよく使うようです。


ユーザーアカウント:volumio
パスワード:volumio

私が使うターミナルでは“ssh volumio@volumio.local”と打ち込んで、エンターキーでいい。
パスワードの入力を求められるので、入力。


で、このご時世、いつ何時自分のラズパイがハッキング集団に踏み台として使われるやも知れないので、今後もSSHログインを有効のままにしておくのなら、パスワードは変えておいた方がイイ。
コマンドは“passwd”。




Picocominstall_02





volumio@volumio:~$ passwd

Changing password for volumio.

(current) UNIX password:

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully



上手くいけば、こうなる。
(上手くいかなかったら、もう一回、バックアップからSDカードに書き込むことになるんだろうか?敢えてでも、ウッカリでも失敗したことはないので、私は知らない)



次に、シリアル通信に使うターミナルアプリをインストールするんだけど、私はいつも念のために、APTライブラリのインデックス更新を行ってからインストールするようにしている。
(転ばぬ先の杖です)





volumio@volumio:~$ sudo apt-get update





sudoでコマンドを実行するとき、再度「パスワード入れろ」と最初だけ言われるみたい。
(この辺はvolumioの仕様のよう)

チョット待つ。




次にターミナルアプリのpicocomをインストール。
(テラテクノス推奨。minicomでもいい)

volumio@volumio:~$ sudo apt-get install picocom





(minicomの場合は...)

volumio@volumio:~$ sudo apt-get install minicom

(インストールが終わってから...)

volumio@volumio:~$ sudo usermod -a -G dial out volumio
(と呪文を唱えておくらしい)




念のために再起動。




volumio@volumio:~$ sudo reboot




さて、実際に通信してみる...

volumio@volumio:~$ picocom -r -l -b9600 /dev/ttyAMA0


(末尾は数字のゼロ。アルファベットのOじゃない。私は間違えた(@@;))





チャンと通信できていれば、ツラツラとこう表示される。

volumio@volumio:~$ picocom -r -l -b9600 /dev/ttyAMA0

picocom v1.7

port is        : /dev/ttyAMA0

flowcontrol    : none

baudrate is    : 9600

parity is      : none

databits are   : 8

escape is      : C-a

local echo is  : no

noinit is      : no

noreset is     : yes

nolock is      : yes

send_cmd is    : sz -vv

receive_cmd is : rz -vv

imap is        :

omap is        :

emap is        : crcrlf,delbs,

 

Terminal ready




私はココでワナにはまった!
“Terminal ready”と表示されているんだから、キーボードから何か打ち込めば、当然それに応じて何かが表示されるものだと思い込んでいた。
しかし実は(多分そうなのだと思うんだが)、デフォルトではエコーバックがオフになっている
なので、何を打ち込んでも、何も表示されない
それで私は「これは動いていないじゃないか!」と思い込んでしまったorz




実はチャッカリとターミナルアプリは走っているので、ここは黙って



...


ピリオドを3回打ってenterキーを押す。
これで初期化。
エコーバックがないと不便なので、次にエコーバックをONにする。



.echo



と打って、またenterキーを押す。
試しにTerra-Berry DAC2に素性を訊ねてみよう。



.hello




すると...


.hello

 

:TerraBerryDAC II V01L00(20170516)




と、今度はチャンと打ち込んだ内容が表示されるし、Terra-Berry DAC2からご丁寧に自己紹介が返ってくる。
後はとにかく、頭に“.”ピリオドをつけてコマンドを入れる。
デジタルアッテネータで音量を下げるなら“.att-”。
とにかく音源は何でもDSD再生するんだ!ってんなら“.dopon”。
他はテラテクノス株式会社サポートにリンクされている「DACシリアルポートコマンドリスト」に目を通して欲しい。




そして、走らせているターミナルアプリは、いつかは終了させなきゃいけない。
ここでもまた、私はワナにはまってしまった
終了させるためには、controlキーを押し下げたまま




ax




と入力する。
すると...



Skipping tty reset...

Thanks for using picocom

 

volumio@volumio:~$




ハイ、お疲れ様というわけである。
(minicomの場合はコントロールキー + “azx”らしい)




以上が今回の内容。
実に需要の少なそうな情報である。
でも、ラズパイDACに手を出す輩の皆の皆が、その道のエキスパートと言うわけじゃない。
逆に、ラズパイDAC、もしくはラズパイを使ったDIYなオーディオが認知されるに従って、ますますLinux音痴の私のような初心者が増えているんじゃないかと思う。
その「初心者目線の情報」が、ナイ!
それが、今回のエントリーを書いた理由です。




で、ついでの情報なのだけど、ココで紹介した方法は、symphonic-mpdでも使える。
symphonic-mpdの場合、一つだけ省いていい作業がある。
“cmdline.txt”はつつかなくていい。
削除すべき内容がナイヨウ
(ホントォ〜に申し訳ない<(_ _)>)



もう一点。
symphonic-mpdの場合、APTライブラリのインデックス更新(sudo apt-get update)で、結構時間がかかる。
再生音に悪影響がなければいいんだが...
(そこを心配するなら、そもそもシリアルポートを利用しようなんて考えないことだ)
で、私は今、symphonic-mpdでTerra-Berry DAC2の設定をいじって鳴らしてる。
(今後のsymphonic-mpdのバージョンアップによっては、この手法が使えなくなるかも知れないのは、もう言うまでもない)






補足:
シリアルポート接続のテスト用にpicocomやminicomの利用が紹介されているんだって。
(確かにテラテクノス株式会社サポート資料には「接続テスト」と書いてある)
本来はJavaScriptやPythonで記述して、プレイヤー側に実装されることを前提に、Terra-Berry DAC2のこうした機能は実装されているんだそうな。
(しかし開発元もそこまで手が回らないらしい。ディストリビューションの数だけ必要になるし、継続的な更新も発生するし。ここまでサポートしてくれただけでもありがたい話なのだが、ま、これがコンシューマー製品を扱うということでもあるんだよね。そういう自覚は持って欲しいかなと思う)
実際問題、こんなことできなくても、何の問題もなくTerra-Berry DAC2は使えるし、品質にもまったく問題はない。
あくまでも自己責任で、もっといじりたいというDIYなオーディオを志向するユーザー向けの情報です。


ブログランキング・にほんブログ村へ にほんブログ村 PC家電ブログ オーディオへ にほんブログ村 PC家電ブログ PCオーディオへ



« ジャイアンは浮気者 | トップページ | 苦ロックレース »

「パソコン・インターネット」カテゴリの記事

「趣味」カテゴリの記事

「音楽」カテゴリの記事

コメント

こちらに書かれている事の意味は理解できますが、自分でここまでの情報を集められるかと言えば、無理ですね。情報収集能力もさすがです。
読んでいて、ほー! そうなんだ・・・と感心してます。正しくマニュアルですね。
私は分相応に、使用できるレベルのディストリビューションで音楽を聴いて遊ぶ事にします。

> ta_syumiさん
コメントをありがとうございます!


幾人かの方にお知恵を借りたり、お手も煩わせてます。自分一人でここまで調べ上げることはできなかったです。こういうドキュメントをまとめ上げるのは、仕事柄馴れているので、そこが一番時間と手間がかかりませんでした。気力はゴッソリ持っていかれましたが...集中力がかなり必要なので。
最初は手探りで、あ〜かなこ〜かなと、何度もSDカードを書き直してはトライアンドエラー。そのプロセスが、結果として技術的な理解に繋がってます。それとGoogleさんのおかげかな。Googleの翻訳力、なかなかですよ!volumioのフォーラムでも「いい英語だ」と褒めて下さる方がいましたが、「それってGoogleが優秀になったってことだよ」と返しておきました。事実、そうですから。途中でかなり凹んで諦めかけたんですが、なんでかなぁ〜、いいタイミングでヒントをいただけて、できちゃいましたw


キーポイントは2点。


Raspberry Piにおけるシリアル通信ってのは、どうも大別すると2種類あるようです。今回のようにRaspberry PiのGPIOを通してデバイスにアクセスする。これが一つ(これにも色々あるようです)。もう一つは、PCにUSBでRaspberry Piをぶら下げて、Raspberry Piを外部機器として利用するときのシリアル通信。そうしたことがまったく分からなくて、頭の中で色んな情報がゴチャゴチャになってました。
もう一つのキーポイントは、Raspberry Pi3のBluetoothがシリアルポートを抑えてて、この手の通信がデフォでは使えないことに気づくこと。
情報検索とトライアンドエラー。Twitterフォロワーさんのフォローアップ。テラテクノスサポートからの助言。それらが絶妙なタイミングで噛み合って、最後は「へ?こんなんでいいの?」って感じでした。“Terminal ready”でエコーバックがナイというワナには笑いましたwww エコーバックなくてもリプライはあるんで、コマンドが分かってる人には不要なんですね。


一番嬉しいのは、これをsymphonic-mpdでも使えることです。たぶん、ハードウェア操作の効果を実感しやすいのはこれでしょう。まだやっていませんが、デジタルアッテネータを使って、Terra-Berry DAC2に直接パワーアンプをプラ下げてみたいです。
volumioの中の人からも、うまくいくんならプラグイン作ろうかな、とか発言をいただいてます。実現するかどうか分かりませんが、もし本当に... いやオモシロイですねぇw

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/576892/65987751

この記事へのトラックバック一覧です: Terra-Berry DAC2にシリアル接続:

« ジャイアンは浮気者 | トップページ | 苦ロックレース »

フォト

本日のアクセス累計数


Twitter


カテゴリー

  • おすすめサイト
  • アニメ・コミック
  • パソコン・インターネット
  • ファッション・アクセサリ
  • 住まい・インテリア
  • 携帯・デジカメ
  • 旅行・地域
  • 日記・コラム・つぶやき
  • 映画・テレビ
  • 書籍・雑誌
  • 趣味
  • 音楽
2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

ブログランキング

アフィリエイト

  • Amazon ウィジェット
  • 楽天アフィリエイト
  • Amazon アソシエイト