Bluetooth I2Sコンバータの製作
インターフェース2024年一月号に,Raspberry pi pico wを使ったBluetoothオーディオ
対応のDACの記事がありました.これを参考に(参考というよりはトリガにして)Raspberry pi
pico wを使って,I2Sを出力させDACをつないでオーディオプレーヤ(レシーバ)を作ろうと
思います.

開発環境やプロジェクトの準備
picoの開発環境は,
https://www.raspberrypi.com/products/raspberry-pi-pico/
から情報が得られますので,使っているPC(linux)にインストールします.
pico-sdkだけではなく,pico-examplesとpico-extrasもインストールしておきます.
pico-exampleのなかに,pico_w/bt/a2dp_sink_demoというのがありますが,
buildできません..
ネットを調べると,
https://github.com/joba-1/PicoW_A2DP
というプロジェクトがあって,これを利用することにします.
Raspberry pi pico wへプログラムをダウンロードして動かしてみる.
上記のPicoW_A2DPは,すんなりとbuildでき(るわけではなくcmakeなどを最新版にして)
picow-a2dp.uf2を作ることができました.それをpico wにコピーして,動作させてみます.
PCからbluetooth経由で,PicoW-A2DBという名前のBluetoothデバイスが認識できたので,
接続し,サウンドデバイスとして認識することができました.PC側で音量調整と左右のバランス
ができるようです.

プレーヤーを動作させて,GP10,11,12に約1.6Vの電圧がきていることを確認しました.おそらく
GP10がSCK, GP11がLRCK, GP12がDataだと思います.
PICO_AUDIO_I2S_DATA_PIN=12
PICO_AUDIO_I2S_CLOCK_PIN_BASE=10
というデフォルトのピン指定ですが,ここにはLRCKの指定がありません.これでDACにつないで
見ましょう.
DACに接続してみる.
作りかけのもののなかにPCM5102を使ったDACボードがあったので利用しました.この基板には,
5Vから3.3Vに変換するICも載せてあります.Picoから5Vを供給し,3本の線をPCM5102に加えて,
出力にイヤホンをさして試聴します.
特に問題なく(このまえに,別のPCM5102を電源逆接続して飛ばしているが...)動作しました.

Bluetoothでハイレゾ転送できるか調べてみる
A2DPだと16bit48kHzが上限のようです.現在,aptX AdaptiveやLDACという規格で24bit,96kHz
のハイレゾ対応になるようです.これらは送信側はソースがオープンになっているようですが,受信側
はライセンス契約しないといけないようです.
openaptxというプロジェクトがあって, apt-X HDをリバースエンジニアリングしたdecoderの
ソースがあるようです.
https://github.com/arkq/openaptx
研究目的(for research purposes only)だそうなので,これを使って商売してはいけません.
aptX HDは24bit48kHzまで対応するようです.調べてみましょう(時間かかると思います).
kitamiti@u-aizu.ac.jp