ESP32を使ってBluetooth(A2DP)をS/PDIF(光デジタル)に変換する

投稿者: | 5月 8, 2022

はじめに

我が家のオーディオはKENWOODのK-521を使用しているのですが、高品質なDACやDDCを持っていないのでまともにPCから出力できていませんでした。一応アナログでなんとか鳴らせるですが明らかに音が悪いので、劣化の少ないデジタルなS/PDIFを使用したかったです。そこで、手元にあるESP32を使ってBluetoothで音声を飛ばしてS/PDIFとして出力してもらうようなものを作成しました。まあ、作成って言ってもダウンロードしてビルドしただけなんだけど…

使用した物

・ESP32 (自分の場合はDEV KIT V1)
・S/PDIF光デジタルコネクタ (自分の場合はてきとーな廃基盤から借用)
持っていない方は角型光デジタル通信コネクタ(受信用・シャッター付) PLR135/T10とかがいいと思います。
・ESP-IDFが入ったPC

作成手順

今回使用したコードは
esp_a2dp_sink_spdif
です。

1. ファイルをダウンロードする。GitHubのCodeのところからzipファイルとしてダウンロードしました。そのあと適当に展開します

2. ESP-IDFを開き、cdコマンドで展開したフォルダに移動します。

3. idf.py menuconfigを実行し、設定を行う。基本的には何もいじらなくて大丈夫ですが、自分の場合は省電力化のために、CPUクロックを80MHzに落としました。S/PDIFの出力Pinを変更できたりもします。設定が終わったらセーブして抜けます。

4. ESP32をPCに接続し、idf.py -p PORT flashを実行してESP32に焼きます。PORTの部分はESP32が接続されているCOMポートを指定してください(例. com3)

5. 配線をしていきます。GPIO27ピンにS/PDIF光デジタルコネクタのVin、3.3VをVccに、GNDをGNDに接続します。

配線例

これで完成です。BluetoothにESP_S/PDIFという名前で出てくるので、接続して使います。
自分は追加でケースも作成しました。3Dモデルを一応下に載せておきます。

おわりに

今回作成したものは16bit、44.1kHzでしたがAptxをI2Sとして出力するもの32bitでのA2DPを見つけたので、を48kHzや24bitかもできそうな気がします(私の技術力じゃ無理)

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)