SabreberryDAC ZEROの基板上のスイッチを使う方法 [Volumio2編]
Volumio2があまりに頻繁にお亡くなりになるもので。。。思ったように作業が進ません。 この不安定さ、起動の遅さはどうにかならないものなのか?
以前の 1.5x系の安定性と動作の軽快さはどこに行ったのでしょうか。 ここ1週間でSDカード焼き直し(ふりだし)は20回を超えてます。。。
<< SabreberryDAC ZEROの操作スイッチ >>
やっとVolumio2でこのスイッチをうまく使える方法が見つかりましたのでご報告いたします。 ただし、V2.175以降、最新版(V2.201)までは、本当に不安定でどうしょうもないクzなのでV2.114を使います。
http://updates.volumio.org/pi/volumio/2.114/volumio-2.114-2017-03-02-pi.img.zip
いい夢をみるために流す曲はもう、これしかないですね。
I2S-DAC 設定
まずは、SabreberryDAC ZERO用にI2S-DACを設定します。「HifiberryDAC」でOKです。 一番標準的なI2Sドライバです。 (V2.185などは、これを選択するだけで運が悪いとクラッシュします。)
リプートすると有効になります。 リブート後、Mixer Typeを「software」にします。 ついでにボリュームステップを「2」くらいにしておくと良いでしょう。 設定はSaveボタンを押しますが運が悪いとフリーズします。
特にMPD Client Volume Controlには触れないように。 フリーズ後、二度と音が出なくなり、SDカード焼き直しの刑が待っています。 他の項目にも出来るだけ触れないようにしてください。 挙動がおかしいときは、System からFACTORY RESET で直ることが多いです。 Systemにも入れない(表示されなくなった)場合は、SDカード焼き直しでふりだしに戻ります。
基板上のスイッチ GPIOの設定
Volumio2にはプラグインというものが用意されています。
メニューのPLUGINS から入ります。
Search plugins -> System Tools で「GPIO Button」を選択してインストールします。
しばらくすると、プログレスバーが100%になりインストールされます。
ここで 「ON」して Settingに入ります。
SabreberryDAC ZEROのスイッチのアサインはこのようになります。 停止ボタンはシャットダウンにしました。 アサインするかしないかは任意にできます。
このシステムはなかなか素晴らしいですね。
でも、ここままだと動きません(笑
GPIOのプルアップをONに
IP:volumio.local
User:volumio
Pass:volumio
デバイスオーバーレイをダウンロードして、所定の位置に置きます。 (パスワードを求められたら「volumio」と答える)
wget https://nw-electric.way-nifty.com/blog/files/mygpio-overlay.dtb
sudo cp mygpio-overlay.dtb /boot/overlays/
これを起動時に有効にするために/boot/config.txt を編集します。
sudo nano /boot/config.txt
で開いて、下記の1行を追記します。
device_tree_overlay=overlays/mygpio-overlay.dtb
Ctrl+oで保存。Ctrl+x で閉じます。 再起動後に有効になります。
何をしているのかというと、GPIOの内蔵プルアップ抵抗を起動時にONしているのです。
gpio readall
とコマンドを打つと、GPIO一覧と名前やHi/Low状態が見えます。
基板上のタクトスイッチは、下記のようにアサインしています。
物理pin番号 (GPIO No.)
Prev: 7 pin (GPIO 4)
Play: 11 pin (GPIO 17)
Next: 13 pin (GPIO 27)
Stop: 32 pin (GPIO 12)
Down: 31 pin (GPIO 5)
Up: 33 pin (GPIO 6)
ややこしいことに、上記のpluginの中では「BCM」に振られたGPIO番号、WiringPi ではまた別の番号、PythonのIOは物理Pin番号として認識されます。
最後に、SabreberryDAC ZEROは24bitDACなので、mpd設定で24bitを指定しておくと、ボリュームを絞ったときにも量子化ノイズが聞えにくくなります。
sudo nano /etc/mpd.conf で下記の1行を追記します。 一番下の行でOK
audio_output_format "*:24:*"
以上です。 お疲れ様でした。 私は、とても疲れました。 バグ多すぎ。。。
余計な項目を押さないのが吉です。 マインスイーパのように各所の爆弾が隠されています。 電源強制OFF->ONで戻るものもあれば、SDカード焼き直ししなければ戻らないものまであります。
Volumeを 0 にすると「バツ、バツ」というノイズがでますが、これもVolumio2特有のバグかと思います。 Moode AudioやRaspbian、Volumio 1.55では出ません。
Volumio2の完成度が上がる日を心待ちにしています。。。
参考文献
https://github.com/tomatpasser/gpio-buttons
https://github.com/fivdi/onoff/wiki/Enabling-Pullup-and-Pulldown-Resistors-on-The-Raspberry-Pi
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« Moode Audio 有機ELディスプレイとヘッドホン端子増設 | トップページ | 0dB HyCAAのCG画像 »
「SabreberryDAC ZERO」カテゴリの記事
- UPS HAT(C) も含めたSabreberryDAC ZERO2用ケース(2024.12.14)
- UPS HAT(C) という名前のラズパイZero用バッテリー(2024.10.23)
- RPiZeroRP2040 ラズパイZERO形状USB-DDC基板(2024.10.20)
- SabreBerryDAC Zero2用のアクリル板キット(2024.10.05)
- SabreBerryDAC Zero2用のケース 3Dデータ(2024.09.17)
コメント
« Moode Audio 有機ELディスプレイとヘッドホン端子増設 | トップページ | 0dB HyCAAのCG画像 »
お世話様でした。
>sudo mygpio-overlay.dtb /boot/overlays/
を実行すると、comand not foundでした
そこで、適当にmvで /boot/overlays/へ移動させました
(何かエラー?が出ましたがmygpio-overlay.dtbが /boot/overlays/
に在ったのでok?)
結果は、ボリュームup/down以外のボタンは機能しました
プレイバックオプションのmixer typeをソフトウェアにしても
ミキサーコントロールネームが選択出来ませんでした。
Volumio2 : ver 2.201
バージョンが違うとダメなのかな?
投稿: metabo55 | 2017年6月28日 (水) 10時49分
metabo55 さん
> を実行すると、comand not foundでした
コマンド、ミスってました。修正しました。 mvでも大丈夫だと思います。
> ミキサーコントロールネームが選択出来ませんでした。
バグじゃないでしょうか。 あれこれ弄ると、フリーズして再起動しても全然応答しなくなりますね。
音量ボタンは長押しで連続するようにはできていないようです。 連打してみてはいかがでしょう。
そもそも、バグで音量調整が効かない可能性もありますね。V2.114がオススメです。
投稿: たかじん | 2017年6月28日 (水) 12時25分
お世話様です。
>音量ボタンは長押しで連続するようにはできていないようです。 連打してみてはいかがでしょう。
長押しでは無く、繰り返し押してるんですが。。。
一つ確認ですがヘッドホンジャックもボリュームボタン効きますよね?
>そもそも、バグで音量調整が効かない可能性もありますね。V2.114がオススメです。
そうですか、V2.114の作成試してみます。
(Windows10だと古いPCなので時間が掛かって)
投稿: metabo55 | 2017年6月28日 (水) 14時43分
metabo55 さん
> プレイバックオプションのmixer typeをソフトウェアにしても
> ミキサーコントロールネームが選択出来ませんでした。
この時点でまともな動作をしてません。 何度か試しても更新されないのですよね? 既に正常ではないことに気付いて下さい。
ファクトリーリセットか、SDカード焼き直しが必要です。 それでも直らなければ、バージョンを古いものに変えてください。
> 一つ確認ですがヘッドホンジャックもボリュームボタン効きますよね?
まともに動作するソフト(ディストリビューション)では音量調整できます。
ちなみに、Softwareボリュームの不具合は、去年の3月くらいに報告されていて、今年に入ってやっと動きました。 でもここ3ヶ月でまたダメになってきてます。
投稿: たかじん | 2017年6月28日 (水) 21時40分
たかじんさん、お世話様です。
一まづ、V2.114を再作成したらボタンも全て機能しました。
サポート有難う御座いました
只、今回の事とは関係が無いと思いますがV2.201では問題無かったSpotifyプラグインで、再生が出来なくなりました(Youtubeプラグインは問題無し)
やっぱり、安定してるのはmoode audioですかね!?(検討します)
投稿: metabo55 | 2017年6月29日 (木) 14時45分
たかじんさんの大変なご苦労のうえアミ出した方法で動きました
ありがとうございます。
sshコマンドをどう入力するがちょっと難しかったです。
基板のスイッチが使えるようになるとiPhoneから操作することもなく超快適
電源OFFもグッドですヨ。
これ本当に使いやすい。音質も最高です。iPhone6Plusで聞くよりもずっといい。
しいて問題点を言うとPi ZEROとDAC ZEROの組み合わせが軽すぎるって部分w
ヘッドフォンケーブルに引きずられてしまうwww
電池入れられるケースでDAP作製します!
手作りでDAPを作れる時代に入りましたネ
完成したらまた報告します。
投稿: Ohkawa | 2017年6月29日 (木) 18時10分
metabo55 さん
昨年の11月ころにはSpotifyが使えていたらしいですよ。 それもダメになっていたとは。。。
このバグに嫌気がさすならMoodeに10ドル払う価値はあると思います。
Ohkawa さん
こちらこそありがとうございます。
sshの説明、簡易的すぎましたね。 すみません。
DAP完成のご報告、お待ちしております。
投稿: たかじん | 2017年6月29日 (木) 23時29分
うちのvolumio2は一度 sshで入れなくなって、factory resetをした後はすこぶる機嫌が良いです。
全く落ちないです。
raspberry pi2だから?
投稿: yosyos | 2017年6月30日 (金) 01時28分
yosyosさん
なるほど。 Pi2ですか。
ツイッターのほうでも安定して動くという方もいらっしゃるので、何か爆弾を踏まなくなる技が存在するのかもしれません。
投稿: たかじん | 2017年7月 1日 (土) 09時31分
たかじんさん、初めまして。
Sabreberry32を楽しく使わせて頂いております。
こちらにも、SWを付けて利用しようとチャレンジしています。
今回のSabreberryDAC zero を参考にしようと思っていますが、
mygpio-overlay.dtsの編集内容を参考にさせて頂けませんか?
よろしくお願いします。
投稿: Kazupon | 2017年7月 6日 (木) 23時25分
Kazupon さん
記事の最後に書いてある参考文献の2つ目に、方法が書いてあります。 スイッチを繋げたポートのプルアップ抵抗をONするように記載してコンパイルするとmygpio-overlay.dtb が完成します。
my_pins: my_pins {
brcm,pins = <7 8 9>; /* gpio no. */
brcm,function = <0 0 0>; /* 0:in, 1:out */
brcm,pull = <1 1 2>; /* 2:up 1:down 0:none */
};
という部分です。
GPIO番号と、物理的なPIN番号が異なるので注意してください。
gpio readall というコマンドを打つと、両方が表示されます。
投稿: たかじん | 2017年7月 7日 (金) 08時30分
たかじんさん
ありがとうございます。
mygpio-overlay.dtsもVolumioのgpio buttons pluginもGPIO番号を記載すれば良いのですよね。
投稿: Kazupon | 2017年7月18日 (火) 22時53分
Kazupon さん
その通りです。
gpio readall というコマンドを打つと、pin番号とgpio番号の両方が表示されますので判りやすいです。
投稿: たかじん | 2017年7月22日 (土) 10時29分
その節は大変お世話になりました。
タカチMX2-7-12に入れてみました。操作用タクトスイッチは別に作ってフロントパネル側で操作出来る様にしています。
そこで、気がついたのですが、ボリュームのUPは33ピンが正しいのでは?
ちなみにプレイインジケータのLEDはどこに接続されているのでしょうか
何故か光らなくて困ってます。(汗)
投稿: Silverbbs | 2017年8月 1日 (火) 00時06分
Silverbbs さん
たしかに33pinですね。 訂正いたしました。 ご指摘ありがとうございます。
インジケータは3.3VがアノードでカソードがLRCK端子です。 2.2kΩ抵抗で流れる微小な電流で十分に光る高輝度LEDが必要です。
投稿: たかじん | 2017年8月 2日 (水) 22時39分
たかじんさん
ありがとうございます。
無事点灯しました。
投稿: Silverbbs | 2017年8月 3日 (木) 22時33分
Silverbbsさん
よかったです。
投稿: たかじん | 2017年8月 5日 (土) 00時26分
素晴らしい基盤を作っていただきありがとうございます! Pi Zero W にて利用させていただいてます。
さて、Volumio 2.323 では記事で紹介されている GPIO Button プラグインのインストールに失敗して基盤スイッチが使えなかったため、たかじんさんが公開されている mpd_ctl_zero.py を Volumio2 用に書き換えてみました。このスクリプトでスイッチが使えるようになりました。
mpd_ctl_zero.py
https://gist.github.com/susumuota/fb08cd618fa92ae8014522beff63dc5f
mpd-ctrl.service
https://gist.github.com/susumuota/5c970a3b1f29a1a80cd429e8465ebc90
volumio status で json 形式でステータスが得られるのでそれに合わせて is_playing の辺りを書き換えました。
このスクリプトだと overlay でプルアップ抵抗をいじらなくても動いているように見えますが、特に問題ないでしょうか?
投稿: Ota | 2017年12月14日 (木) 01時14分
Ota さん
これはこれは。 すばらしいです。
volumioコマンドって。。。 知りませんでした。 mpcの代わりになるコマンドが用意されているんですね。
> このスクリプトだと overlay でプルアップ抵抗をいじらなくても動いているように見えますが、特に問題ないでしょうか?
問題ありません。pythonスクリプトの中でプルアップ抵抗をONしています。
こちらのスクリプトを紹介させて頂いてもよろしいでしょうか?
投稿: たかじん | 2017年12月14日 (木) 22時13分
たかじんさん
> 問題ありません。pythonスクリプトの中でプルアップ抵抗をONしています。
確認いただきありがとうございます。安心しました :)
volumio コマンドは以下に書いてありました。が、このページはちょっと内容が古いみたいでバージョン2.323だと volumio volume plus などのコマンドが追加になっていました。ターミナルから volumio コマンドを引数なしで実行するとコマンド一覧が見られます。
https://volumio.github.io/docs/Good_to_Knows/Command_Line_Client
> こちらのスクリプトを紹介させて頂いてもよろしいでしょうか?
もちろんOKです。ありがとうございます :D
投稿: Ota | 2017年12月15日 (金) 01時49分
Ota さん
ありがとうございます。 ずいぶん前にこのドキュメントページを見た覚えがありましたが、コマンドまでは気が付きませんでした。
これは便利ですね。 というか、なぜmpcを使わないのかが疑問ですが。。。(汗
これで何か光が見えたきがしました。 ありがとうございます。
投稿: たかじん | 2017年12月17日 (日) 21時12分
たかじんさん、
ま。です。
おすすめのECサイトからzero dacを購入、足掛け3日、先程やっと曲が聴くことができました。以下はこのページ(ボタン設定)まで辿り着いた経緯です。
ご存じ通り衝動買いで何も考えずに購入したので、volumioが上手くzero上の既存のDebian上にインストール出来るだろうか?などと先入観満載で、dacと接続すべくzeroをケースから取り出したのがおととい夜でした。
あれ、11mmのスペーサーって付属しないんだ、本物のpiはM3じゃないんだ、といきなりの想定外でスタート。3mmのドリルで穴を広げ手持ちのM3用の10mmスペーサーをアクリルのワッシャー2枚で挟みネジ止めして形にはなりました。
volumioがOS込みでイメージをダウンロードできることを知り、でもたかじんさんのzero用に特化したイメージはリンク切れ。公式サイトからイメージをDLしSDカードに入れて立ち上げ、HDMIのコンソール見るとよくあるGUI画面では無くloginの文字。さらにオレンジ色のLEDが最初光ったけどフワーッと消えたのをみて、これはポートが初期化されてないなーと、肌感的に先が長いことを悟りましたね!(笑)
記事を見るとvolumio.localと打てば繋がるといろんなサイトに有るので、今となっては当然上手くいくハズもないのですが、無心で叩き。。。、立ち止まってよく考えるとwifiはうちのルーターにどうやって繋いでいるんだ?と疑問が。ログインしてip aすると192.168.211.1とか、とんでもない数字が見えSDカードが逝かれていたかと1からフォーマットし直している最中にHotSpotの存在を知り、これか!と思った時には後の祭り。でも今のnetwork設定変えるのは嫌だしどうしようと思った時に、ipadでwifiを検索してvolumioを見つけた時には涙が出そうでしたね(爆)
teratermからsshでログインして、たかじんさんが書かれているコマンドラインを叩き、nanoコマンドって何だ?エディターかへーなんて。^x押してはポンと言われ、なんか悪いことしたか?と書けたか書けないのか不安な中、一歩一歩確かめながら牛歩の如く進み、半信半疑でwindowsのnwに共有フォルダを見つけ、音楽ファイルをSDに転送、歯を食いしばってこのページに辿り着きGPIOの設定をし、やっとこさで音が出た次第です。
いや〜、これでも2017年の記事ですから3年以上前に追いついた感じですね。
でも、これオーディオやアンプが趣味な人にはハードル高くないですか?pi好きかsw屋でないと付いていけない気がします。久しぶりに知恵熱が出た感じで、今清々しい思いが込み上げています(冷汗)
音は流石に繊細で滑らかな印象、日頃ヘッドホンは使わないのでスピーカーで聴きたくなる音ですね。これから数日はHAP-Z1ES+TA-E901と比較試聴してみたいと思っています。コンデンサーの追加も楽しみです。長くなりましたが、なかなか楽しませて頂きました。たかじんさんに感謝です。
投稿: ま。 | 2021年2月11日 (木) 02時14分
ま。さん
3年も経つとリンク先がなくなったり、OSの振る舞いが変わったりと大変でしたね。
無事に音が出たとのこと、良かったです。さすがです。
ソフトウェアというか、Linuxの世界はとても移り変わりが早い世界で、1年くらいほおっておくとすぐに置いて行かれます(笑)
でも、web上で苦労している人が沢山いて、フォーラム等で質問したら知っている人がちゃんと答えてくれている。 そういう人の親切さも知ることができる世界と思います。
TA-E901とは凄い。 まだちゃんと動くのですか? ESPRITにはソ〇ータイマーが入っていないというのは本当なのですね。
投稿: たかじん | 2021年2月12日 (金) 08時56分