Raspberry Pi Zero WとI2S DACで始めるラズパイオーディオ

公開 | 更新 

2) Raspberry Pi DAC ES9023x2

ESS Technologies社のDAC ES9023を左右チャンネルそれぞれに独立搭載した、デュアルDAC仕様のI2S DAC基板です。アンプ無しでも力強いサウンドを再現してくれるのがウリです。

図12.RaspberryPi DAC ES9023x2

図12.RaspberryPi DAC ES9023x2

本来はZero系ではない通常のRaspberry Pi向けの基板サイズですが、ピンアサインは互換なのでRaspberry Pi Zeroにもそのまま挿すことが出来ます。今回は以前、マキタ互換12Vバッテリ用に作ったUSB充電アダプタを電源にしてみました。

図13.RaspberryPi DAC ES9023x2 搭載完成

図13.RaspberryPi DAC ES9023x2 搭載完成

初回起動は先ほどと同じ要領なのですが、互換性のあるI2S DACが見つからないようなので、手動でI2S DACを有効にして汎用的なHiFiBerry DACを指定してみます。

  • I2S DAC: HiFiBerry DAC
図14.Volumio 初期設定ウィザード DAC手動指定

図14.Volumio 初期設定ウィザード DAC手動指定

これで初期設定ウィザードを完走させて再起動させると、WiFiには繋がってDHCPサーバからIPを受け取るものの、その後一切のネットワーク通信が出来なくなりました。何度Volumioを焼き直しても再現されるので、デバッグのためにシリアルコンソール環境を整えることにしました。

 

シリアルコンソールを使うには

Raspberry Pi Zero WのUARTピンは、I2S DACに塞がれているGPIOの中に有るので、I2S DACを繋いだままデバッグするために、Raspberry Pi Zero W基板裏のGPIOヘッダーピンのうち、以下の3本の基部にL字ヘッダーピンを追加してみました。

  • 6: GND
  • 8: TXD
  • 10: RXD
図15.Raspberry Pi Zero WにUARTピン追加

図15.Raspberry Pi Zero WにUARTピン追加

枝分けしたUARTピンをUSB UARTアダプタに繋ぐと、Ubuntu 18.04母艦のminicomからシリアルコンソールを開くことが出来ます。

図16.追加したUARTピンの接続例

図16.追加したUARTピンの接続例

ハードウェアに続いてシステム側の準備では、Volumioの boot パーティションにある、 cmdline.txtconfig.txt をそれぞれ次の要領で変更します(デフォルトで loglevel=0 が既に記述されていたらこれを loglevel=8 へ上書き)。

config.txtは最終行にインクルードファイルuserconfig.txtが指定されているので、そちらにUARTを有効にするパラメータを記述します。

ここでUARTを有効にするために次のパラメータを加えると、一部のカーネルではブートしなくなるバグがあるようなので、使うのを避けます(ハマりました)。

 

不具合の詳細をコンソールより確認

シリアルコンソールをUbuntu 18.04母艦で監視しながら、Raspberry Pi Zero Wをブートしてみると、システム自身は正常に立ち上がっていることが分かりました。その後、WiFiが繋がりネットワークオンラインになった後、しばらくすると受信パケットが尽く破棄されてしまう様子。尚、 iwconfig など一部のコマンドは隠されているので、フルパスで実行する必要があります。

dmesgに次のような内蔵WiFiモジュールのエラーが挙がっていました。このI2S DACを外して起動すると不具合は発生しないこと、2,3年前当時は問題なく使えたことから、カーネルを含め、現行Volumioとの間に何か問題があるのかも知れません。

 

Volumio 3 開発版を試す

Debian JessieベースのVolumio 2に対し、Busterベースで開発中のVolumio 3のBeta版が、公式コミュニティにて公開されていたので、試してみることに。

開発版なので cmdline.txt には、デフォルトで loglevel=8 が記述されていました。ブートログは割愛しますが、初回起動ウィザードでI2S DACをセットして再起動するまで、WiFiが正常に機能する点ではv2.9系と変わりありません。

Busterベースになり、カーネルも5.4系と進んだのですが、やはり同じエラーが挙がり、受信パケット破棄してしまう現象に陥りました。

 

Volumio 2.4 は動く!

このI2S DACを購入した当時ダウンロードした、古いVolumio v2.4のイメージをまだ保存していたので焼いてみました。

Volumioは昔、GitHubのレポジトリでリリースされていた頃は、古いバージョンも試すことが出来たのですが、Volmuo2以降、古いバージョンへのリンクは公開されておらず、よしんば直リンを知り得ても404エラーになることが多いので、ダウンロードしたイメージは手元に残しておいた方が良いかもしれません(こちらフォーラムページに、古いイメージへのリンクのダウンロード可否について記述あり)。

ホットスポットモードでの初期設定ウィザードにおいて、検出されたAP一覧から選んだWiFi にパスフレーズを入れ終わると、なぜかその下のAPが選ばれたことになる不具合に何度も悩まされました。リスト中に既知のAPが有ってもそれを選ばず、一番下にある「手動でWiFiに接続」より、SSIDとパスフレーズ全て手打ちするのがこのバージョンでは確実です。

図17.Volumio 2.4 初期設定WiFi手動入力

図17.Volumio 2.4 初期設定WiFi手動入力

シリアルコンソールから見てみると、この頃のバージョンはswap周りの構成が異なり、起動直後の空きメモリも多め。そのせいか、WebUIの操作感も明らかにサクサクとレスポンスが早い印象を受けます。

そしてやはりこのバージョンでは、プレイバックオプションを以下のように設定すれば、正常に動作しました。

  • Output Device: HiFiBerry DAC
  • DAC Model    : HiFiBerry DAC
  • Mixer Type   : Software
図18.Volumio 2.4 Output Device

図18.Volumio 2.4 Output Device

図19.Volumio 2.4 Mixer Type

図19.Volumio 2.4 Mixer Type

デュアルDACの力強いサウンドは、あまり耳のよくない私でもはっきりとその違いが分かります。

 

firmware-brcm80211を入替えてみる

上記エラーメッセージで検索してみると、GithubにあるVolumioフォーラムにやRaspberry Piフォーラムにも挙がっていて、オンボードWiFiドライバであるfirmware-brcm80211を入れ替えると解消した例もあることから、まずはこれまでに試したVolumio各バージョンの搭載ドライバを確認。

各バージョンのfirmware-brcm80211はこちらのページよりダウンロード可能で、Jessie以降を抜粋してみてもこれだけのバージョンが存在しています。

今回はVolumio2.907へ、いくつか異なるバージョンのドライバを、以下の要領でインストールしてみました。

インストール後、再起動してみても不具合はいずれのドライバでも解消されませんでした。もし、解消されるドライバが見つかった場合は、その後のパッケージ更新でアップデートされないよう、 apt-mark でホールドする必要があります。

 

取り敢えず、お気に入りのデュアルDAC基板で、問題なく動くバージョンのVolumioを見つけたところで今回はここまでとします。まだまだいくつか異なるDAC ICの載った基板を持っているので、VolumioのみならずmoodeやRuneAudioのセットアップ手順とも共にまとめたいと思います。

 

 

2023年10月27日 加筆

Volumio公式サイトがだいぶ色気づいてしまい、ドキュメンテーションなどだいぶ変わっていたので、一部参照リンクを外しました。

 

created by Rinker
¥3,360 (2024/04/25 22:24:48時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA