はじめに
Takazineさんが2015年にタカチケースを使い、たいへん見栄えの良いRaspberry Pi2 + SabreBerry+ DAC用の有機ELディスプレイ(OLED)搭載ケースを作られました。
「タカチケースに組み合わせる前後パネルで、SabreBerry+と有機ELディスプレイをキレイに見せる」
それから9年が経ち、既に Raspberry Pi2とSabreBerry+ DACは入手できず、Raspberry Pi3でさえ入手困難です。そこで今回それをRaspberry Pi4 + SB32+PRO DoP DAC用に改造しました。以下、オリジナルケースとの変更点を解説します。
MPD(Music Player Daemon)以外にもSpotify Connect、AirPlay、Roon BridgeでRAATにも対応するので、ラズパイは相変わらず最強のミュージックプレイヤーと思います。「作ってみたい」という方のために最後に部品一覧も掲載します。
1. 前後のアクリルパネル
最初の課題は前後のアクリルパネルです。かつてemerge+ショップさんでRaspberry Pi2/3用のパネルを販売していました(写真右)。しかしPi4はLANとUSBの位置が逆です。そこでレーザーカッターでPi4用を作成しました(写真左)。
この前後パネルの加工データは、工房Emerge+さんのレーザー加工サービスに依頼できるようEmerge+さんのテンプレートで作り直し、工房Emerge+さんにチェック・不具合修正いただきました。工房Emerge+さんに見積り・発注をご希望の方には、加工データを差し上げますので Open Audio Lab 鈴木まで依頼ください。フロントパネルは3.5mmステレオジャック取付け穴の有り・無し両方のデータを用意します。(写真左のフロントパネルは取付け穴の無いものです。)加工データの依頼方法は部品リストをご覧ください。
2. 3.5mm ステレオジャック
SB32+PRO DoPはヘッドホンドライバ搭載DACなので、ヘッドホンアンプ無しでダイレクトにヘッドホンを駆動できます。そこでフロントパネルに3.5mm ステレオジャックを取り付けました。
SB32+PRO DoPはL/RのGNDを分離した4極の3.5mmステレオジャックを搭載しています。フロントパネルにも例えば秋月の「3.5mm4極ミニジャック MJ-064H
パネル取付用」を使えば良いのでしょうが、MJ-064HはM8の取付け穴(Φ 8.2)とナットが必要なので、OLEDと並べて配置すると取付ナットがタカチケースのサイドパネルと干渉ギリギリになります。それに私は3極ヘッドホンしか持っていません。
そこでM6の穴で取り付けられる3極のMJ-074Nを使いました。MJ-074Mジャックのネジ切り部分の長さは4.5mmで、取付リングの厚さは2mmです(図面参照)。問題は3mm厚のアクリルパネルに取り付けるとジャックの先端が0.5mmだけ取付リングより引っ込むことです(CAD画像参照)。プラグによっては接触不良をおこすかも?と思いましたが、手持ちのヘッドホン/ステレオイヤホンのプラグはいずれも問題ありませんでした。
3. 2.1mm標準DCジャック
Takazineさんのオリジナル版では2.1mm標準DCジャック パネル取付用
MJ-14が使われましたが、MJ-14の定格電流は0.5Aです。Raspberry Pi2ではそれで十分でしたが、Pi4は1A程度の電流が流れます(Pi4のスペックは3A推奨)。そこで今回は4A対応の22234を使用しました。22234は大電流対応のため差し込みはMJ-14より固くなっています。
SB32+PRO DoPは抵抗R19を外すことでDAC/ラズパイの電源分離に対応していますが、今回は分離給電とはせず、SB32+PRO DoPボード上の5VポートからGPIO経由でラズパイにも給電しました。(Raspberry Pi4はUSB-C、GPIO、PoEの3種類の給電方法に対応しています。)
4. 高熱伝導シリコンシート
Raspberry Pi4はPi2/3と比べて発熱量が多いです。CPUにヒートシンクを付けてもCPU温度が2℃か3℃下がる程度の効果しかありません。一方でAllo Boss2 PlayerはCPUにはヒートシンクが付いていませんが、Pi4基盤裏から高熱伝導シリコンシート経由でアルミケースに放熱して絶大な冷却効果がありました。(下記参照)
「Rpi3B+ vs Rpi4B 温度・消費電流・CPU%・クロック周波数」
そこでPi4のCPU、メモリ、USBコントローラの基盤背面に5mm厚の高熱伝導シリコンシートを貼り、タカチケースに放熱することにしました。シリコンシートの厚さに合わせ、スペーサーもオリジナルの高さ7mmから、5mmに変更しました。(タカチ AST2.5-5B)
写真の通りシリコンシートには保護用のビニールが付いていますが、これを剥がしても粘着力は弱いです。先にシリコンシートをケース底面に位置決めして配置した後、AST2.5-5Bスペーサーの両面テープでPi4を貼り付けました。
Pi5はPi4よりさらに発熱量が多いそうですが、この方法でファンレスでいける可能性もあります。HiFiBerryからPi5対応のドライバーがリリースされたらテストしてみます。
5. microSDカード交換用 30mm穴
このタカチケースとアクリ版の組み合わせはたいへん見栄えが良いのですが、microSDカードを交換するにはケースの上蓋を空け、交換後に戻す必要があります。慣れれば簡単ですが、microSDカード交換用に底に30mmの穴を開けました。普通のドリル刃では30mmの穴は開きませんのでホールソーを使いました。当然、バリが出ますので指を怪我しないように穴開け後に回転リーマーで面取りしました。
30mm ホールソー
6. OLED表示用のスクリプト軽量版
Takazineさん作成のOLED制御用スクリプトのPython3版は、こちらのページから入手できます。
「Volumio/MoodAudioに秋月電子のI2CタイプOLEDを接続して曲名などを表示するPython3版」
再生中の曲のアーティスト名、曲名、サンプルレートをOLEDに表示するスクリプトですが、OLEDは漢字を表示できないので漢字はKAKASIを使ってカタカナに変換してくれて、OLEDの幅が16文字しかないので横スクロール表示してくれるという超優れものです。
ところが私は主にクラシックを聴くため、アーティスト名と曲名が長くなりサンプルレートを確認するまでしばらく待つことになります。
アーティスト名の例:Hilary Hahn; Hugh Wolff: Oslo Philharmonic Orchestra
曲名の例:Mendelssohn Violin Concerto In E Minor, Op. 64 - 3. Allegretto Non Troppo, Allegro Molto
アーティスト名と曲名はMPDコントロールアプリ(yaMPC)で確認できますので、アーティスト名と曲名を表示せず、常にサンプルレートを固定で表示するように変更しました。(そもそも曲名を表示するスクリプトですから)機能的には大幅に劣ることになりますが、MPDに与える負荷も大幅に減ります。オリジナル版はPLAY/PAUSE中に再生経過時間を表示するため0.25秒毎にMPDをポーリングします:
while True:
time.sleep(0.25)
try:
oled.disp()
しかし変更したスクリプトはMPDの再生ステータスが変わるまで停止します。
while True:
oled.soc.send(b'idle\n')
ret = oled.soc.recv(bufsize).decode()
try:
oled.disp()
スクリプト自体の負荷も、MPDに与える負荷も大幅に減りますから、mpd_oled_ctrl_lite(軽量版)と呼ぶことにしました。元のスクリプトがたいへん優れているので、どれだけ欲しい方がいるかわかりませんが、軽量版のスクリプトは以下GitHubより入手できます。
https://github.com/yasuyukisuzuki8/mpd_oled_ctrl_lite
APPENDICES
Takazineさんのオリジナル版との変更点は以上6点です。以下は組み立てのための追加情報と余談になります。
タカチケースの上蓋を外した写真を添付しますので、配線等を確認ください。詳細はTakazineさんの下記ページを参照ください。
配線には0.2sq(概ねAWG 24)の電線を使いました。ハンダ除去しなくても取り外せるよう一部にピンヘッダとQIコネクタを使いましたが、給電以外の配線はAWG 26か28が良いでしょう。0.2sqでは外径が大きすぎてハウジングに挿入しにくかったです。
このタカチケースはスペースに余裕があるので、ほとんどのI2S DAC HATは取り付けられると思いますが、5VとI2Cに配線できるようDAC HAT上からGPIOにアクセスできる必要があります。SB32+PRO DoPは基盤上に5VポートとI2Cのランドがあるので配線がとても楽です。
余談ですがタカチケースは黒がカッコいいと思います(下写真の左)。私はRaspberry Pi 3B+が入った黒ケースと区別がつくように今回はPi4用にシルバーのケースにしました。さらに余談ですが、SabreBerry+はより小型の別のタカチケースに入れています。もともとはSabreberry+が入っていた黒ケースには(North Fox Digiを開発し販売されているTakazineさんには申し訳ないのですが)Pi3B+と共にHiFiBerry Digi+ Pro DDCが入っています。
余談が続きますが、今回、タカチケース内の部品配置、ケースの穴開け位置、前後パネルの穴あけ位置とレーザー加工データは個人用のSOLIDWORKSライセンスである 3DEXPERIENCE SOLIDWORKS for Makers で設計しました。for Makers版は次のような制限がありますが、
- 個人的なプロジェクトや商用目的でない用途に限る。
- ただし年間2,000米ドル以下の利益であれば、作成した製品を販売してもよい。
- for Makers版で作ったデータはfor Makers版でしか開けない。商用版SOLIDWORKSでは開けない。
年間$48(+消費税)という格安でサブスクできます。趣味で3D設計して制作のために図面を描くには適したツールと思います。
注記:ステマにならないよう一応書いておきますが、私は2023年12月までソリッドワークス・ジャパン(株)に勤めていました。
3DEXPERIENCE SOLIDWORKS for Makers
Takazineさんオリジナル版と共通の部品:
- KC型小型アルミケース KC4-10-13BB マルツなどタカチ取扱店で買えます。私は千石電商3Fで注文・取り寄せ。
- RCAジャックRJ-2008BT/W(白) 秋月電子
- RCAジャックRJ-2008BT/R(赤) 秋月電子
- 有機ELキャラクタディスプレイモジュール 16×2行 緑色 秋月電子。今回はこれの白色を使用。
Raspberry Pi4B版の部品:
- 3.5mmステレオミニジャックMJ-074N パネル取付用 秋月電子
- 2.1mm標準DCジャック パネル取付用 22234 秋月電子
- ナット入り貼付型スペーサー(M2.5、5mm、4個入)【AST2.5-5B】 マルツ他
- OLED貼り付け用両面テープ(強力でなくても良い) 文具店他
- 電線 給電はAWG 24、その他はAWG 26か28 千石電商他
- 高熱伝導シリコンシート 5mm厚 Amazon
- Raspberry Pi4B スイッチサイエンス他
- SB32+PRO DoP 千石電商
- アクリルパネル 工房Emerge+さんに見積依頼。希望者には加工データを差し上げますので依頼下さい。
-
- 件名:アクリルパネル加工データ希望
- 宛先:contact.yampc@gmail.com
工房Emerge+さんにチェック&不具合修正いただいた加工データをお送りします。A5のアクリル板から2セット(前後パネルx2)取れます。フロントパネルは3.5mmステレオジャック取付け穴の有り・無し両方のデータを用意します。リアパネルのラズパイLAN/USB用の穴は、たかじんさんオリジナルの7mmスペーサー対応ではなく、タカチのスペーサーAST2.5-5B(5mm)対応になっていますのでご注意ください。工房Emerge+さんのご協力で、私が材料を買ってレーザーカッターを借りて作るより安く出来ます。以前、emerge+ショップさんで販売されていた時とほぼ同じ金額です。正確な金額は工房Emerge+さんに見積り依頼をお願いします。(2024.3.12追記)
- 以上