アルバムアートを見るためにPCB、3Dプリント、組み込みC言語をゼロから学んだ開発者

アルバムアートを見るためにPCB、3Dプリント、組み込みC言語をゼロから学んだ開発者

メイカー音楽PCB3DプリントHardwareDIY

データソース:HN + web research · HN

アルバムアートを見るためにPCB、3Dプリント、組み込みC言語をゼロから学んだ開発者

「昔買ったCDやLPのジャケットアートを手に取って眺めるのがずっと好きでした。しかし最終的にはデジタルストリーミングの利便性に負け、アートワークがない(または切手サイズの)環境を受け入れていました。最近、その感覚がますます恋しくなり、ついに自分で何かをしようと決意しました。そしてストリーミング音楽プレーヤーを作ったのです」

—— Marton、Pentaton LP の制作者

これは一人のソフトウェアエンジニアの心の声です。彼は電子エンジニアでもハードウェアオタクでも工業デザイナーでもありません。ただ昔のようにアルバムジャケットを眺めながら音楽を聴きたかっただけなのです。そしてこの言葉の後に続いた決断が、彼を一般的なソフトウェア開発者なら歩まない道へと導きました。「自らハードウェアを作る」と決めたのです。

起業のためでも、収益化のためでも、論文を書くためでもありません。曲を聴くときに、かつてアナログレコードを手にした時のようにアルバムアートを見たい、ただそれだけのために。

結果として、彼は数ヶ月を費やし、PCB(プリント基板)設計、3Dモデリングと印刷、組み込みLinuxカーネルのコンパイル、GPUアクセラレーションプログラミングをゼロから習得しました。基板は4回改訂され、筐体は何回も3Dプリントされ、初期のものは全て廃棄物となりました。こうして、アナログレコードのジャケットのように壁に掛けられる音楽ストリーミングプレーヤー——Pentaton LP——が誕生しました。

この物語は Hacker News で166のポイントと35件の議論を集めましたが、数字だけではその魅力を語り尽くせません。これは本質的に「こだわり」についての物語です。

核心的葛藤:存在しない製品を欲した男

Martonのニーズは非常にシンプルでした。壁掛け可能な音楽ストリーミングプレーヤーで、約12インチ四方(LPレコードジャケットのサイズ)のスクエア画面を備え、アルバムアートを表示し、AirPlay経由で音楽を再生できること。それ以外の余計な機能はいりません。

しかし、彼はすぐにそのような製品が市場に存在しないことに気づきました。市販のAirPlay対応ストリーミングレシーバーにはまともなディスプレイがなく、画面付きのスマートフォトフレームは音声ストリーミングプロトコルに対応していません。両者を組み合わせた製品は?誰も作っていません。市場が小さすぎるからです。 「アルバムアートを見たい」というニーズのためだけに数百ドルを払うユーザーは、工場の最小ロットを満たすほど存在しません。

Martonには2つの選択肢がありました。現実を受け入れてスマホの切手サイズのアートワークでガマンするか、それとも——自分で作るか。彼は後者を選びました。

学習曲線ステップ1:PCB(プリント基板)設計

Martonの最初の課題は、適切なハードウェアプラットフォームを見つけることでした。高解像度ディスプレイを駆動でき、AirPlayプロトコルに対応し、小型で低消費電力なコンピュータが必要でした。最終的に彼が見つけたのは、Radxa CM3——eDP(Embedded DisplayPort)インターフェースを備え、画面を直接駆動できるコンピュートモジュール型のシングルボードコンピュータでした。

しかし、Radxa CM3には電源、USB、ネットワークなどのインターフェースを提供する**キャリアボード(基板)**が必要でした。市販のキャリアボードはどれも厚みがあり、レコードジャケットのように壁にピッタリと設置したいという彼の要求を満たせませんでした。そこで彼は自分でキャリアボードを設計することにしました。 「それまで一度もやったことがなかったので、基礎的な電子工学や磁気学から高速信号ルーティングまで、学ぶべきことが山ほどありました」と彼は振り返っています。

ソフトウェアエンジニアがゼロからPCB設計を学び、高速差分信号、電源インテグリティ、ノイズ対策(EMC)といった組み込みエンジニアすら頭を悩ませる問題に挑みました。キャリアボードには計算モジュール、電源回路、USB-Cポート、ギガビット有線LAN、オーディオトリガーインターフェースを搭載し、厚みを極限まで薄く抑えなければなりませんでした。

結果は? 正常に動作するまでに4回の改訂を要しました。 改訂ごとに、設計、レイアウト、試作、ハンダ付け、テスト、バグ発見、設計ソフトへの修正という完全な製造サイクルを回しました。しかしMartonは「すべての機能を正常に動作させるのに4回の改訂がかかった」とさりげなく書いています。

学習曲線ステップ2:3Dプリントと曲面モデリング

基板の問題を解決した後は、ケース(外壳)という新たな試練が待っていました。

Martonは、滑らかな表面と美しい曲線を持つケースを作りたいと考えました。パラメータモデリングのために FreeCAD を選びましたが、パラメータ制御のCADと滑らかな曲面の相性が良くないことに気づきました。彼の解決策も実にソフトウェアエンジニアらしいものでした。希望通りの曲面形状を生成するカスタム FreeCAD マクロを自分で執筆したのです。

デザインが完成すると、製造のために新しい3Dプリンターを購入しました——そしてすぐに「大惨事」に見舞われました。「製造のための設計、特に3Dプリントのための設計には多くの経験が必要です」と彼は控えめに語ります。3Dプリント初心者が経験する反り、糸引き、層間剥離の苦しみを彼も味わいました。違いは、多くの人が小さなおもちゃを印刷するのに対し、彼は壁掛けプレーヤーの大きな外装を印刷していた点です。

彼は壁の厚さ、サポート材の角度、熱収縮補正などの設計ルールを学ぶためにさらに時間を費やしました。最初の試作品群は全て失敗作となりましたが、最終的には満足のいく完成品を手に入れました。

学習曲線ステップ3:組み込みLinuxとGPUプログラミング

ハードウェアが形になったら、次はソフトウェアの番です。ソフトウェアエンジニアである彼にとって、本来ならここが最も得意な領域はずでした。しかし、組み込みLinuxの開発は単にアプリコードを書くのとは次元が異なりました。

彼は極限まで軽量なディストリビューションである Alpine Linux を選択しました。シングルボードコンピュータ上でそれを動作させるには、ブートローダー、デバイスツリー、カーネルコンパイル(ドライバー設定、GPUサポート有効化)、ディスプレイのバックライト制御(PWM)、省電力管理(スタンバイ時2W未満)、そしてこの軽量システム上で shairport-sync(AirPlayのオープンソース実装)を動作させるなど、大量のローレベル設定が必要でした。すべての項目が、膨大なドキュメントの解読、カーネルパニックのデバッグ、シリアルポートの起動ログとの闘いを意味していました。

そして、最もエキサイティングなパートが訪れました。アルバムアートの表示です。

「中程度のスペックのシングルボードコンピュータで、400万画素の画像2枚を毎秒60フレームでクロスフェードさせるのは決して容易ではないことがわかりました」。17インチディスプレイの解像度は 1920×1920 であり、画像デコードやトランジション計算を除いても、ピクセルを描画するだけで約 620 MB/s のメモリ帯域を消費します。

Martonの解決策はGPUアクセラレーションでした。Alpine Linux上にGPUドライバーを設定し、ハードウェアレンダリングを活用したアプリケーションを記述することで、滑らかなカバーアートの切り替えを実現しました。一人のソフトウェアエンジニアが、「アルバムアートを表示する」という目的のためだけに組み込みGPUプログラミングを習得したのです。

さらに面白いことに、AirPlayプロトコル自体は約 500×500 ピクセルの低解像度カバーアートしか送信しません。そのため、彼は音楽プレーヤーのクライアント側にアウトオブバンド(帯域外)プロトコル拡張を実装し、全解像度のカバーアートを別のチャネル経由で送信・表示できるようにしました。プロトコルそのものを拡張してしまったのです。

完成品:Pentaton LP

これらすべての試練を乗り越えて、Pentaton LP が誕生しました。主なスペック:

  • 17インチ IPS LCD ディスプレイ、1920×1920 解像度(1:1 ピクセルマッピング)
  • Radxa CM3 コンピュートモジュール搭載(自作キャリアボード使用)
  • Alpine Linux 駆動、shairport-sync による AirPlay オーディオ受信
  • スタンバイ電力 2W 未満、ストリーミング再生時約 24W
  • USB-C PD 給電、アンプを自動オン/オフする 12V トリガー信号出力
  • 外部 DAC サポート(彼自身は FiiO KA17 を Pro-Ject Amp Box SE に接続して使用)

デバイスは常時オンラインです。画面オフ時の消費電力は 2W 未満。音楽ストリーミングを検知すると自動的にスリープから復帰し、画面を点灯させて 12V 信号でアンプを起動します。体験全体が、まるで壁に掛けたアルバムジャケットが音を奏でているかのようです。

なぜこの物語が読むに値するのか

現代の私たちは、欲しいもののほとんどをすぐに購入できる時代に生きています。消費の利便性は、私たちに「作る(モノづくり)」ということ自体の価値を忘れさせがちです。 Martonの物語が心を打つのは、それが現代において極めて希少なもの——**「こだわり」**を鮮やかに描き出しているからです。

彼がこだわったのはテクノロジーそのものではありません。音楽を再生するときに目の前に現れる一枚のジャケットです。ストリーミング時代においてほとんど無視されるようになったもの——多くの人が曲を選んだら見向きもしないジャケット写真——のために、彼は数ヶ月を費やし、全く未知の4つの分野を学び、何枚もの基板と大量のプリント素材を無駄にしました。

Hacker News のあるコメントがこれを実に見事に言い表しています。

「昔CDやレコードを買っていた頃を思い出します。ジャケットを手に取り、裏返したり、ライナーノーツや歌詞カードを読んだりしたものです。ストリーミングは確かに便利ですが、私たちは途中で何か大切なものを失ってしまいました」

Martonはその問いに行動で答えました。失われたものを誰も作ってくれないなら、自分で作ればいい。

これは「テクノロジーが世界をどう変えるか」という大層な話ではありません。これは「小さなことに心を寄せた一人の人間が、自分自身をどう変えたか」という物語です。彼が音楽業界の潮流を変えることはないかもしれませんし、Pentaton LP が商業的に大成功を収めることもないかもしれません。しかし、彼が数ヶ月かけてゼロから知識を学び、自分自身が心から満足できるデバイスを作り上げた——その事実だけで十分に素晴らしいのです。

エピローグ

Martonは現在、Kickstarter でのクラウドファンディング実施を検討しています。興味のある読者は pentaton.app をチェックしてみてください。

このデバイスが最終的に量産されるかどうかに関わらず、著者の心には一つの光景が残っています。深夜の灯りの下、ハンダ付けを終えたばかりの基板に電源を入れ、第5版の設計が今度こそ正常に動くかどうかを祈るように見つめるソフトウェアエンジニアの姿です。彼は世界を変えたかったわけではありません。ただ、音楽を聴くときに、あのジャケットを見たかっただけなのです。

参考リンク:

  • Pentaton LP 発表記事 (pentaton.app)
  • HN 議論 (item?id=49022355)
  • Radxa CM3 シングルボードコンピュータ
  • shairport-sync AirPlay 実装

Pentaton LP PCB Carrier Board Design 図:Martonが自作した Radxa CM3 キャリアボード PCB。正常動作まで前後4回の改訂を重ねた。

Pentaton LP Back View 図:Pentaton LP 完成品の背面。USB-C電源、ギガビットイーサネット、3.5mmオーディオトリガー端子が確認できる。

Pentaton LP Enclosure CAD Wireframe 図:Martonが FreeCAD で設計したケースのワイヤーフレームモデル。滑らかな曲面を生成するためのカスタムマクロも自作した。