「零函 (zero-bako)」の音質改善(I2S DAC基板を追加)

I2S DAC基板を使って音質改善


ラズパイに対応した小型で比較的安価なI2S DAC基板を使って「零函 (zero-bako)」の音質改善をしてみたいと思います。
使用するI2S DAC基板は、Hiletgo社製のPCM5102 DAC Decoder搭載ボードです。

ラズパイ用のI2S DAC基板はHATタイプのものもありますが、今回はアンプと合わせてスピーカー本体内に内蔵するため、HATタイプではない、より小型のものを使います。

現状の「零函 (zero-bako)」の構成



現状、「零函 (zero-bako)」はラズパイ本体からGPIO経由で「PWMオーディオ」というアナログ音声信号を出力して、それを内蔵アンプで増幅しています。

そのため、低レベルではありますが、ラズパイ本体内で発生するノイズがそのまま「PWMオーディオ」信号に乗ってしまい、最終的にスピーカーの再生音に混じって聞こえてしまいます。
(特に曲間の無音時や小音量時に気になります。)

I2S DAC基板を追加した構成


ラズパイ本体から出る信号をデジタルである「I2S」通信で行い、それを外部のDACオーディオ基板でデジタルからアナログに変換、その後で内蔵アンプで増幅という流れです。

ラズパイ本体内での処理をデジタルにする事でノイズが乗るのを防げるのではないかと思います。

I2S DAC基板からGPIO端子に接続するコードは現状と同じ3本ですので、途中にI2S DAC基板を割り込ませて、接続するGPIO番号を変更するだけの改造で出来そうです。

I2S DAC基板とラズパイ本体の接続

I2S DAC基板には端子が沢山ありますが、基本的な接続は下図のようです。

SCK → GND
BCK → GPIO 18番
DIN → GPIO 21番
LCK → GPIO 19番
GND → GND
VIN → 5V

※「零函 (zero-bako)」ではアンプ経由で5Vを給電していますので、上図とは「5V」「GND」への接続は少し異なります。

Volumio2での設定変更

Volumio2での変更方法は2通りあります。(どちらか一方でOK。)

①初回起動時の初期設定で変更する
上図のような設定画面で、「I have an I2S DAC」の項目で「YES」を選択、その下のリストの中から「HiFiBerry DAC」を選択します。

②プレイバックオプション設定で変更する
「設定」>「プレイバックオプション」と進んで出てくる画面で、「I2S DAC」の項目で「ON」を選択、その下のリストの中から「HiFiBerry DAC」を選択して、「保存」します。

Volumioで再生して確認



曲を再生させて、音が出ればOKです。
もし音量調整バーがクリックできず、音量変更が出来ない場合は、「設定」>「プレイバックオプション」の「音量オプション」の項目を確認します。
「Mixer Type」が「None」の場合は「Software」に変更します。


Raspbian OSでの設定変更

PCからVNCで接続して、その画面からラズパイの中のファイルを変更します。
VNC画面(ラズパイ側のデスクトップ画面)でタスクバーのターミナルアプリケーションアイコンをクリックして、ターミナル画面を立ち上げます。


config.txtを修正する

今回使うI2S DAC基板は、ドライバーとしてhifiberry-dac.dtbo」を使用するようです。
ドライバーは/boot/overlaysフォルダーの中に始めから用意されていますので、config.txtを修正して、そのドライバーを使用するように指定が必要です。

ターミナル画面で、「sudo nano /boot/config.txt」と入力して、Enterキーを押します。(PC画面上で上記の文字列をコピーしてターミナル画面上でペーストしてもOKです。)
このコマンドは「bootフォルダーの中にあるconfig.txtというファイルを文字編集アプリ(nano)で開く」くらいの意味です。

下の方までスクロールさせて、以下の部分を修正します。

①「#dtparam=i2s=on」→「dtparam=i2s=on」(#を消す)


②「dtparam=audio=on」→「#dtparam=audio=on」(先頭に#を付ける)
その下に「dtoverlay=hifiberry-dac」を追加する(ドライバーを指定する)
------------------------------------------------------------------------------------
# Enable audio (loads snd_bcm2835)
#dtparam=audio=on
dtoverlay=hifiberry-dac
------------------------------------------------------------------------------------


そのまま保存します。
キーボードの「Ctrl」キーを押しながら「x」キーを押すと、保存するか聞いてきますので、「y」キーを押します。
ファイル名をconfig.txt(元のまま)にするか聞いてきますので、「Enter」キーを押して保存完了ですので、ターミナルアプリケーションを終了させます。

再起動後、確認

PCからVNCで接続して、VNC画面(ラズパイ側のデスクトップ画面)で確認します。

ターミナルアプリケーションを立ち上げて、「aplay -l」と入力します。
下図のようになっていればOKです。


音質の改善は?

以前のアナログ信号の音声出力方法で気になっていた曲間の無音部分での「ジー」や「ジジ」といったノイズが、I2S DAC基板を使う事で無くなり、ほぼ聞こえなくなりました。

音質の向上に関しては「非常に効果あり」だと思います。

コメント