2026年2月14日土曜日

3Dプリンタを併用してSHURE SRH1540用ロングケーブルを製作

SHURE SRH1540

2000年ごろ、大学生のときにATH-A700ヘッドホンを購入してから20年近く使っていたのですが、最終的に樹脂部品が経年劣化で分解してしまい、処分しました。それ以降は解放型の SENHEISER GAME ONE を自宅で使っていたものの、モニタリング用途でどうしても密閉型のヘッドホンが欲しくなり、 SRH1540 を購入。


新品で購入しなくてもよいかなと思い、最終的に3万円台で中古を購入しました。それまでに使っていたヘッドホン類と比べると(新品販売時の価格帯も倍以上と違い)かなり解像度が高く感じ、聞こえ方が別物に感じます。

常用してわかってきた問題点


問題なく聴けているときの利用感は非常に好みです。しかし、常用していると、純正の「左右両だしケーブル」にかなり不便を感じました。

  • ケーブルが 1.5m 程度?で短め
    • 装着状態では身動きをとりづらい
    • ケーブル長から、利用場所の制限を感じる
  • 左右両だし仕様
    • ギターを抱えたり離したりしづらい
    • どちらが右・左か、わからなくなる
  • 3.5ピンコネクタ相性
    • 一般的な3.5ピンコネクタよりも細めなのか、接触不良になりやすい模様。検索すると悩んでいる人がけっこう出てくる

ケーブルの作製を決断、しかしコネクタが手に入らない


先述のトラブル内容でイライラしてしまうので、別のモニタリングヘッドホン購入を検討。しかし定価6万円台のヘッドホンを基準にしてしまうと、次の選択肢もなかなか決まりません。
「最終的に、これ以上ヘッドホン買うよりは SRH1540をなんとか使える状態にしたほうがよいだろう」と思い直し。ケーブルを作製することにしました。

作製にあたり困ったのはコネクタ部分。接点部分は一般的な MMCX ですが、イヤホンのリケーブルなどで使用される MMCX コネクタより細身の独自仕様になっていて、これにあった部品がありません。秋葉原で相談すると「そんなもん売ってねー」と冷たくあしらわれる状況。


既存 MMCX コネクタ + 3Dプリントの自作ハウジング製作にチャレンジ


最終的に NOBUNAGA Labs MMCXプラグ自作キット と、3Dプリントの自作ハウジングで製作にチャレンジすることにしました。







こちらの MMCX コネクタはネジ山が彫ってあるため、ハウジングの内径次第で、よい感じに閉めることができます(オヤイデで取り扱いのあるMMCXコネクタも購入しましたが、こちらにはネジ山がありません)。 Bambu Labs のPLAフィラメントで輪状に出力したハウジングに対して、そのまま締めることができました。

ただ、非常に小さいモノなため、このハウジングは3Dプリントするには 0.4mm ノズルでは難しい印象です。普段はあまり使わない 0.2mm ノズルを利用しました。 0.2mm ノズルで壁ひとつ分の壁厚しかとれないと思います(2壁はチャレンジしていませんが)。変に力をかけると層がはがれて壊れてしまうかもしれませんが。壊れたら、コネクタのはんだ付けからやり直しです(コネクタ部分の再利用はむつかしいと思いますので、修理のタイミングで新しい部品が必要な気がします)。このサイズ感のはんだ付けは得意ではないので、断線・修理が怖いです。

余談ですが、この製作の前に Kaika の P1S 利用可能なノズルを注文していたのですが、他のユーザからのトラブル報告などを経て最終的に入手しませんでした。 0.1mm ノズルが手元にあったら、絶対にプロジェクトでは 使ってみたかったです。

そして、ついに SRH1540 に装着可能な MMCX のハウジングを製作できました。多少不格好ですが、自分で使うには問題ないでしょう。



チャンネルの見分けがつくように片方をマゼンダにしました(CMYKセットとしてもっていたものを利用)


3mの片出しケーブルを作製


SRH1540に対応できるMMCXハウジングを作れてしまえば、もう後は単純なはんだ付け作業です。

今回は 3.5ピン側も NOBUNAGA Labs のものを使いました。正直私には200円未満のプラグとの利用感の違いはわかりませんが……。ピンジャックとSHURE純正プラグの相性問題とも、これでサヨナラです。

ケーブルは、オヤイデの、イヤホン用2芯2ペアのものを使用。作製したのは半年以上前ですが、これがすごく高かった覚えがあります。普通なら3mとかで使うようなものでもない。。。

右チャンネル分は短く、左チャンネル分はヘッドレストを経てコネクタに接続できるように作ったことで、事実上片出し運用ができるようになりました。

作製したケーブルはデスクトップ利用もできますし、ソファでギターを弾いているときにオーディオインターフェイスで音をモニタリングするのにも、不自由なく使えています。


3Dプリンタがあるからこそできた


このケーブルは 2025/7 に作製し、手元の利用ではハウジングが破損することもなく半年以上問題なく利用できています。

この製作のキモは、先述のとおり、特別なMMCXコネクタ用ハウジングの製作でした。もし3Dプリンタが手元になければ、最初から諦めていたと思います。私は手先が器用な方ではないですが、それでも「3Dプリンタで、解決できる課題が広がっている」と感じたプロジェクトでした。

Bambu P1Sアップグレード記録: AMS+Tetras乾燥機, AMSドロア, AMSロングケーブル

 Bambu Labs の P1S を購入してから一年以上がたちました。収益化している人ほどガンガン使ってはいないのですが、けっこう楽しく、便利に利用しています。今回は AMS 関連のアップグレード内容をまとめてみます。




AMS 2段 + EIBOS Series X: Teras 乾燥機

手元ではAMSを2台、P1Sのとなりにおいて運用してきました。合計8スプールを利用可能状態にしておけることで、便利に使っています。

さらに、この半年で、クラウドファンディングで buck していた EIBOS Series X: Tetras が到着。AMSに乾燥機能を追加するシステムです。これを注文したときは AMS2 はまだ出ていませんでしたので、これはAMS無印2台持ちの私にとっては現実的なアップグレードでした。

フィラメントドライヤーとしての Tetras の感想などはあまり書くつもりありませんが、「使用予定をフィラメントをセットして、ボタンを押してドライヤーにかけておくだけ」はとても便利です。PLAは上段メイン、ABSやPETGなどを使うときや、PLAでも乾燥にかけたいときなどは下段のAMS+Tetrasからフィラメント供給しています。

AMSが販売終了になっていることなどを考えると、これから Tetras を入手する人は限られるでしょうし、そもそも入手できる期間も相当限られそうですが、購入してよかったなと思います。


AMSドロア

Tetras 導入前、ダイソーのメタルラック用ポール等で製作したドロアを使用していました。3Dプリンタ購入直後で、モデリングも能力的にもぎりぎり、インサートなどを使うことも考えずに作ったものですが、いくらか問題があったものの便利に運用していました。




第一世代で発生していた問題は以下の部分です。

  • ダイソーのつっぱりミニポール用の棚を棚板として利用していたが、これ自体の強度が足りなかった。
  • 上記にPLAのはりを付けていたが、ありあわせのネジで組み立てた都合で、意図した強度が出ていなかった。
  • P1S - AMS - AMS のケーブルが短かく、ドロアをフル活用できなかった。 -> 後述ケーブルにて解決

この第一世代は、 Tetras 装着後にケーブル長の問題などからメンテ時に負荷がかかり、棚板が崩れてしまったので、第二世代として作り直すことにしました。


第二世代は、 Tetras 装着状態、もしくは未装着状態の AMS を搭載できるように作ってあります。AMSのサイズ感は 256x256 (mm) のベッドでは出力できないため、複数パーツにて構成して、インサートとM3ネジで組み立て、引き出し用のレールに載せています。加重はほとんど左右のレールに固定されたブロックにかかるようになっていて、思ったよりも安定しています。あえて言えば手でひっかける部分を付けておけばよかったか。
本業の始業前などにやっつけでモデリングしたので(言い訳です)あまりかっこよかったりはしませんが、目的達成には十分でした。直したいところがないわけではありませんが、「これでいいや」と使い続けています。
ダイソーポールとアウターレールをとめる部分については過去のプリント品をそのまま再利用しました。


ロングAMSケーブル

これまでの内容のように、AMSを複数台装着していると、AMS本体付属のケーブル(通信&電源)の長さが足りなくなります。ケーブルの長さが足りないことで、以下のような問題が発生します。

  • AMSをプリンタのすぐ隣に配置する必要があり、数センチ離すこともむつかしい。このため P1S 背面へのアクセスがしづらい。
  • 上段AMSと下段AMSのケーブルが短いために、片方のAMSをしっかり前に引き出すことがむつかしい。特に Tetras 装着後は運用上の課題が発生。

このため、付属ケーブルの約2倍の長さで代替のAMS接続ケーブルを作製しました。



AmazonやAliexpressなどで探せば既製品が見つかるかもしれないので、あれば既製品を使ってもいいと思います。私の場合は、このタイプのコネクタの圧着経験などがなかったので、自分で加工してみたかったという理由もあり、自分で製作しました。

ケーブル配線

純正ケーブルは調べたところ以下のシンプルなものでした。この調査結果に基づいてケーブルを製作します。
1-1
2-2
3-3
4-4
5-5
6-6

加工手順

加工は以下の手順で行います。
  • フラットケーブルを必要長さ+αで切断する。
  • 皮むき位置を揃えるため、油性ペンでフラットケーブルで皮むき位置をマークする。
  • 1芯目(赤)~6芯目まで、以下を繰り返す。
    • 皮むき位置で皮をむく。
    • 露出した銅より線が広がってしまう前に、はんだで軽く固めてしまう。
    • MicroFit用ピンソケットに、いちばん奥まで線をつけた状態で被膜もぎりぎり圧着できるところまで導線を切り詰める。
    • ターミナルに線を仮置きした状態で、はんだごての熱で、ケーブル側についたはんだとターミナルを軽くはんだ付け。(はんだを載せすぎると、のちの圧着作業やハウジングへの取り付けができなくなるので、軽めに)
    • 銅線の先側から被膜側まで、圧着工具でかしめていく
    • ケーブル部分からターミナルの先までまっすぐになるようにする。曲がっているとスムーズにターミナルを装着ができない
  • ハウジングを装着
  • テスターにて抵抗値を確認
私はそれ程この手の作業になれておらず、この手順で2本のケーブルを製作するのにおよそ3時間ほどかかりました。
テスターの抵抗値を見る限り問題がなさそうだったので、P1S-AMSの間をこのケーブルで接続してみると、P1S側からAMSのシリアルが正しく取得できていることが確認できました。これを確認の上、2本目に着手、AMS-AMSのデイジーチェーンを自作ケーブルに切り替え。問題なく動作しています。

部材調達メモ

フラットケーブルは、30芯ぐらいのものなら手元にありましたが、ここから6芯で50cm以上もとるには向かなかったので、今回の目的のために購入しました。秋葉原のマルツや千石などに見に行ったところ、思ったものがなく、最終的にオヤイデで5m購入しました。欲しいものが決まっていれば、依頼するだけで店員さんが用意してくれるのはありがたいです(無いものを聞いてしまうとすごい塩対応をくらう印象もありますがww)。
6芯利用なのに8芯を買ってしまったのですが、結果的になんとなく1芯目を赤色にできました。使っていない2芯は、その気になれば裂くだけです。

ケーブルを製作する場合、ターミナルはケーブル1本製作あたり12個、2本では24個必要になります。はんだ付けや圧着の失敗があれば、より多くの部品を消費することになるでしょう。ターミナル購入時は24本+予備を数えて購入は手間です。今回はまとめて100個で買いました。(歳をとって、こういった所をお金で解決できるようになったのは幸せだなあ)

当初は100個単位が店頭になく、通販しようとしたのですが、荷物に不着などの問題がおき、後日に店頭で100個単位で購入しました。

100個パックとはいえ、24個使用すれば 1/4 はすでに使っています。今回は失敗ナシで、無駄が出なかったため、残り76個あるはずですが、3Dプリンタ+電子工作などで何か作るときに利用したいと思っています。

購入から1年以上経過したが、現役スペックで、動かしても拡張しても楽しい P1S

直近では H2C や、 P1S 後継の P2S も販売されており、P1Sは「過去のモデル」となっていますが、自分にとっては P1S はまだまだオモチャ作りで活躍しています。また今回はAMS関連のアップグレードですが、H2Cなどを買ってしまうと、この内容はそのままH2Cに持っていけるでしょう。

購入から一年以上たち販売終了したモデルとはいえ、今回まとめたようなアップグレードに取り組むのも楽しいです。組み立てPCではもはや感じられなくなってしまった楽しさがあるようにーー 8ビット機や16ビット機も楽しく育てていたような人たちはこんな気持ちでパソコンを触っていたのかな、などと思ってみたり。

2025年7月25日金曜日

Taylor 112ce を1年半弾いた

音漏れが怖くて手放したはずのギター。それでも、コードを5つ覚えれば世界が広がるあの感覚を、やっぱりもう一度味わいたくなって、2024年3月に Taylor 112ce-S を購入。

正直「弾いた」というほど弾けないのだが、それは赦してほしい。ギターを探し始めてから約2年の体験をもとに、どうしてこのギターを選んだのか、自分なりにわかってきた向き合い方を振り返ってみる。


2023年の年末、アニメ『ゆびさきと恋々』のOP曲「雪の音」のイントロを聴いた瞬間、10年以上眠っていた“ギターを弾きたい欲”が一気に目を覚ました。

主人公である難聴の女の子の世界で、もし音のない街に雪が降るとしたら──こんなふうに響くのかもしれない。そう思わせてくれる、静かで美しいバッキングだった。



■ 前提条件 — ソロギターへの関心


2007年頃に、いちどギターを入門してみたことがある。

ニコニコ動画の弾いてみた動画で「ああ、楽器ってこんなに自由に弾いていいんだ」と思ってフェルナンデス2万円台のエレキギターを購入。新品で買った国内メーカー品とはいえ、正直、チューニングしてもフレットを押えると音程が合わなくて、頭にハテナを浮かべながらいじっていた(個体のせいかもしれない。ただの思い出の話)。練習したけども、自分が好きなのはアコースティックな音色だと気づいた。

アコースティックギター(厳密にはエレアコ)を譲ってくださるという方がいらっしゃったので、譲っていただいたギターを使って、このアレンジなどを練習していた。


その後の転職で、可処分時間に対する優先度が変わったこと、広さを優先して引っ越した結果音漏れのない新築賃貸から築40年越の団地、またコロナ前に現在の物件に引っ越し。音漏れが怖くて特にアコースティックギターは弾かなくなってしまった。

もう10年まともに弾かなかったギターは弾くことはないだろうと思って、ギターは手放してしまった。しかし何故か突然弾いてみたくなるのがギターという楽器なのかもしれない。コード5つぐらい覚えることができたら、手放さずに手元に置いておいてよい、そんな楽器がギターなのかもしれない。しかし、ギターを一度手放していたからこそ、今回「自分でギターを選ぶ」機会を得たとも言えそうである。

先の経験から、自分が弾きたいのはソロギターに行きつくというのは分かっていた。ぼっち演奏だし、普段ピックでコードをガンガン鳴らしたいというわけでもない。

また、過去に使っていたエレアコは5弦6弦の鳴りが異様に強く感じて、ソロギター的に鳴りすぎて使いづらいという印象があった。いま思えばOMと呼ばれるようなシェイプ相当のもので、主流のドレッドノートシェイプなどと比べれば控えめだったのだろうけど、それでも自分のイメージする音ではなかった。当時のこの感覚は、今回のギター選びで重要なインプットになった。


■ 余談)モデリングギターの可能性の検討


ギターを処分してしまったものの、なぜか処分すると触りたくなるもの。生音に対する恐怖感があったので、アコースティックギターの代わりになるんじゃないかと、知人が持っているLINE6 Variax 300を触らせてもらった(結局、安く譲ってもらった)。


いまでもガジェット的に面白いと思っていて、Variax ラインが終息してなかったら新品で一本買っていたかもしれない。

しかし、このギターをガジェット的に活かすには HELIX というアンプシミュレータも揃えないといけなくて、そちらも結構な金額になる。旧型POD HD500Xという旧型のアンプシミュレータもあって、これもメルカリで購入し試してみたが、実は最新の Windows にドライバが対応していない。

そのほか Gibson がコロナ禍に出したセミアコなども含め調べたのだけど、「やっぱり、アコースティックギターの生音が欲しければ、アコースティックギター弾くしかないんだな」と思った。


■ 「もう手放さない」ギター選び


中途半端な気持ちで手放した経緯があることから、ギターを買うなら次は手放す気持ちにならないギターを手にしたい、という考えがあった。候補を探しているところで Taylor がとても気になり始めた。

  • 工業製品的生産の工夫により、品質が安定していてコストパフォーマンスに優れる
  • 出荷時点にて弾きやすいセットアップ。エレキギターからの持ち替えもしやすいらしい
  • エントリーモデルでも、上位モデルとの遜色のないプレイアビリティ
  • shim (ネックジョイント部に挟み込まれネック角度を変えられる木の板)の交換により、ネック調整ができることは情報として知っていた

また、ギター購入にあたってはGC(Grand Concert)シェイプが最有力候補になった。ドレッドノートのような大型ボディと比べて音量は控えめだが、そのぶん以下のような特徴がある。

  • フィンガーピッキングに適している:軽いタッチでも反応しやすく、ニュアンスが伝わりやすい

  • 中音域が豊かで低音が暴れにくい:ソロギターで和音とメロディを弾き分けやすい

  • 抱えやすく、身体にフィットしやすい:長時間の練習でも疲れにくい

ソロギターをやりたいと思っていた自分にとって、このGCシェイプは理想的だ。

このあたりの情報を知った上で、お茶の水の楽器店で Taylor 112ce のほか YAMAHA LS/LL, そのほか Takamine, Martin, Gibson などを少し触らせてもらいに行った。


触らせてもらった中では 112ce が突出してネックを握りやすく、音も好みだった。この時点で、すでに買うなら 112ce になるのは決まっていたのだと思う。でも最初に触った112ceは、トップの節が個人的には気に入らなかった。店の人は個性でいいじゃないかと言っていたが、後日、別の店にあった 112ce を購入した。

購入した店には 312ce もあったので、そちらも気になった。112ce に対して 312ce は米国内生産、オール単板、インレイがカッコよくなり、ネックやブリッジピンの素材も差別化されている。価格的には大幅に上がるため、その場では興味のないふりをしていたが、いっそのこと 312ce にしておけばよかったかもしれない。

今の自分なら、112ce と並べて弾き比べていただろうし、もし両方を試奏していれば、どちらを選んでも今のようなモヤモヤは残らなかっただろう。

■ ギター入手後の日々


「どんな曲を弾くんですか?」
……ウッ(弾けないッピ)

ギターを購入してエレベータに乗り込む前、店員に聞かれてどう答えようか悩んだ質問。とりあえず、適当に川崎鷹也さんの曲と答えていた。

大して弾けないので参考にしている動画での紹介だけども。。


魔法の絨毯 のコピーTABを練習していたけど、一曲でアルペジオからコード弾き、ブリッジミュートまで入っているので初心者にはスパルタ。1年以上前に譜面を見始めたのに完成してない。

YOASOBIの優しい彗星のソロギターカバーも2024のGW練習していて、GW中の完成を目指したけど、ひどい風邪をひいてその後1~2カ月動けなくなるという状態になり、そのまま未完成。


とはいえ、この1年で「楽器は、ちょっと弾けるだけでも楽しい」と再認識。

出張先などで楽器屋を見つけたら軽く試させてもらったりするようになったけども、慣れだと思うけども、弾き心地なら、自分の 112ce が最高である。


■ ギターのメンテナンスと新曲へのチャレンジ


「弦高3mm以上。店だと商品にならない」

購入から1年経過し、久々に新曲へチャレンジをしたいと思ったが、妙に弦を押えづらくなっている気がするな?と思い、新曲にチャレンジするタイミングで購入店に見てもらうことにした。

結構キツい表現でコンディションについて指摘され、トラスロッドで指板をフラットによせて弦高をいくらか下げてくれたのだが、その店ではたぶん Taylor のメンテナンストレーニングを受けてる人がいないように見えた(実際いないのだろう)。

結局、Taylor ギター専門のリペアマンがいる、東京は初台にあるArtist Loungeに相談して、再度メンテナンスしてもらうことにした。




購入店でのトラスロッド調整は結果的に元に戻されて、shimの入れ替えでコンディションを調整してもらった。工場出荷状態で、ネックコンディションを考慮してか、もともと少し弦高を高めにするセットアップがされて出荷された個体だということが、この時点で分かった。

小指でギュッと抑えていた1弦が指板にはりついてるような感じになり、ずいぶん抑えやすくなり、自分でも違いがわかった。Artist Lounge のクイックリペアサービスで自宅環境に調整された私の 112ce は、メーカー保証期間が10年から12年に延長されたとのこと(なんだって?!)

このArtist Loungeでの調整を経て、Taylorの思想が腑に落ちた。
  • 工場出荷時点ではおそらく比較的無難なセットアップ
  • 購入後にしばらく自宅などにおいて、その環境で慣らす。置き場所によりコンディションは変わる
  • shim の差し替えにより弾きやすい状態にセットアップ(ここでメーカー保証期間が延びるw)
  • それでも四季でどうしてもネックコンディションは変わるが、上下調整すればよい
  • 「弦高調整」を目的としてサドルを削ったりする必要はない

ある程度の湿度管理をしていても、一年を通じて弦高は最大1mmほど上下するものらしい。
購入店ではコンディションについて少々きつい言葉をもらったが、そもそも工場出荷時の状態というのは、ビビりなどを防ぐために弦高がやや高めに設定されているものだ。
そのままの状態で店頭に並び、調整もされずにそのまま受け取ったのであれば、一時的に弦高が3mmを超えていたとしても、何ら不思議ではない。

最近はレギュラーチューニングで弾くことが少なくなっているのも関係しているかもしれないが、クイックリペアから数ヶ月が経過した今の112ceは、セットアップ時と比べて1弦の弦高が約0.2mmほど下ブレしている。
5・6弦が少しビビりやすいのだが、「まあArtist Loungeに持っていけばすぐ解決するし、そのうちまた季節が変わるしな」という圧倒的安心感と余裕になっている。

再セットアップされたギターで練習しているのは TOMOO のコントラストのカバー。

私としては、はじめて非レギュラーチューニングへの挑戦。
ピエゾタイプのチューナーがレギュラーチューニング特化で使いにくかったので、チューナーも買い直す結果に。。。(最初から、ちゃんと音階が表示されるチューナーを買おうってことだな)





■ 湿度管理のプチ見直し


大切にしたいとはいえ、弾いてナンボ、というか弾くために買ったのでしまい込みたいわけでもない。季節によってネックの形状は変わるのは材質的に受け入れること、また、Taylorの場合、それはshimで調整ができるということで、気にしすぎないことにした。

ギターのコンディション維持は「弦を緩めるよりも湿度コントロール」と言われているので、これ以降、夏でも家のエアコン常時稼働で50%~高くなっても60%ぐらいに抑えるようにしている。人のためじゃなくギター(、あとはカメラレンズ)のために24時間エアコンかけてるまである。
本当はもう少し湿度を下げたほうがいいのだろうけど、現実問題として専用の箱を用意するとか色々考えないと難しい。冬に湿度を稼ぐのは、もっと難しそう。


■ Taylor 112ceで気に入っていること、気になっていること


アコースティックギターとの再会、で 112ce には総じて満足している。ここまでの内容と重複、また新規の内容もあるが、いくつか Pros/Cons のポイントを並べてみよう。

〇 抱えやすく、ソロギター向きなバランスのGC シェイプ
Grand Concertシェイプの 112ce はピッキングがヘタクソな自分でもフィンガースタイルでも小柄なボディが反応してくれて、ソロギターとしての十分な低音でてくれる。ピックを使わずに静かに弾きたい自分としては、正しい選択をしたと思っている。

〇 握りやすい、フレット移動しやすいネック
お茶の水で握った 112ce のネックは握った感覚がよかったけど、今でもそう感じる。またネック裏面の塗装的にすべりやすく、力んでもフレット移動しやすい気がする。
また、ネックが細めなのも初心者にも扱いやすいのだと思っている。

〇 クイックリペア余地による絶対的安心感
Taylor のクイックリペアによるネック調整が可能な点は大きなアドバンテージで、安心感につながっている。木工品なのでどうしても季節でコンディションが変わるのを受けいれることになる。他ブランドのアコースティックギターに対する抵抗感にすらなりそう。

☓ バック、サイド板に汗が染みこむ
私は日常的に、速乾系のスポーツウェアを着ている。これの仕組み的に肌の汗を衣類の外側に出すことでドライに保つのだけど、つまり、自分の汗が衣類の表面にいく。これを 112ce のバック材のサペリが吸って、購入当初はサラサラだったバック材がいくらかザラザラになってしまった。
たぶん、自分が汗かき、よく着ている衣類が速乾素材+塗装タイプの組み合わせで起きているのだろと思うけども、長期的なバック材へのダメージが心配。ここだけは「自分にあってないかもなぁ」「ラッカー塗装とかのほうが取り扱いが楽そうだなぁ」と思っている。

☓ Taylor認定リペアマンがいる店で買うべきだった
ここは薄々気づいていたところで詰めが甘かったのだけど、Taylorのリペアトレーニングを受けたリペアマンがいる店で買うべきだった。Taylorのギターをフルスペックで利用するには同社のメンテナンス方式を活用することになる。欲しい個体を売ってみるお店がどこかというのもあるので、考慮する要素の一つに過ぎないが、112ceなら大体の取扱店にある。何にせよ、買ったままにせず、半年ぐらいたったら Taylor クイックリペアは一度お願いするのが良い。
Artist LoungeでTaylor専門のリペアマンに有償メンテナンスしてもらったりすることはできるし、それを第一選択肢にするならそれでよいのだが、ネック取り外しのshim交換まで購入店の無償サービス範疇してもらえるのなら、追加費用なしでの再調整という選択肢は増える。


■ 終わりに


一度熱が冷めても何かの刺激でまた弾いてみたくなる、ギターってそんな楽器だなと。
ソロギターをやってみたいという自分にとって、Taylor 112ceは自分に適した一本を見つけられたと思っている。ボロボロになるまで、大切に家に置いておきたい。

直近では、ブリッジピンをエボニーやTUSQに変えて「味変」してみたりしている。サドルはES2との相性を考えると弄るべきではなさそうという思っているのだが、とはいえ自分は内蔵ピックアップはほとんど使わず、録るときはマイクを立てるようなスタンスなので、自分でサドル削りだすのにもチャレンジしてみたい(どうしても本来の目的よりも下のレイヤにいってしまう...)。

2025年1月26日日曜日

Creality Space Pi フィラメントドライヤー、利用にあたってのベストプラクティス

 3Dプリンター向けのフィラメントを乾燥させるには何等かのフィラメントドライヤーが必要です。私は正直あまり何も考えずに Creality Space Pi フィラメントドライヤーを買いました。Creality Space Pi フィラメントドライヤーを利用するにあたって気づいたことをまとめてみます。



Space Pi フィラメントドライヤー 1ロール



どうしてこのドライヤーを選んだか

買うにあたって「これでいいや」と考えたポイントは以下でした。

  • 置き場所の制約から1スプール用のドライヤー
  • ドライヤーからプリンターにフィラメントを直接フィードできる

他のフィラメントドライヤーと比較したことがないので良し悪しはわからないですが、とりあえず結果的に使えているので大きな問題は感じていません。ただ、この代わりになるものを買い足すのなら、次はコンベクションオーブン等を買ったほうがよいと思っています。


使ってみて気づいたこと

乾燥温度が70度までしか上がりません。 ABS や TPU などのフィラメントでは 80 度前後の乾燥温度が推奨されていることがありますが、このドライヤーではそこまでの温度に上げることはできません。代わりに乾燥時間を長めに設定することで対処します。

フィラメント供給用の穴がありますが、ここからフィラメントと裸で供給するなら問題ないかもしれませんが PTFEチューブで保護した状態で3Dプリンターに送り出したい場合は部品交換したほうがよさそうです。この点については後述します。

スプールがある程度回転するよう、小さなローラーで支えられていますが、ダンボール製スプールなどは安定して供給できないように見えます。複数の理由から、ダンボールスプールに巻かれたフィラメントはプラスチック製のスプールに巻きなおしてから乾燥をはじめるのが正解と思っています。この点についても後述します。

ディスプレイ画面部分が脆いです。タッチパネルとして指で押すだけでも表示が崩れることがありますし、メンテナンスのときにディスプレイ部分を下にして置いたら、壊れたかなと思うぐらいに表示がバグったことがあります(最終的に元に戻りましたが)。温度や時間を操作できなくなると完全なゴミと化します。ここは利用上の注意が必要そうに見えます。ディスプレイ保護フィルムなどを貼っておくのも保険になるかもしれません。


フィラメント供給用穴のアップグレード

ドライヤーの中からフィラメントを供給したい場合のために穴があり、ゴム状のフタがついています。ここからフィラメントを直接供給する場合はよいのですが、せっかく乾燥させたフィラメントを、吸湿を防ぎながら3Dプリンターに送りたければPTFEチューブで接続したくなります。

超初心者な私は、ドライヤー本体のゴム状のフタにPTFEチューブを刺してつないだのですが、特に固めのフィラメントだとPTFEチューブが抵抗にまけてフィラメントドライヤー内に引き込まれ、スプールに巻き付くというトラブルになり大変な思いをしました。また、フィラメント押し出し量が不安定になり造形不良につながっているかもしれません。

解決先として、フタをこちらに含まれる PC4-M6 の継ぎ手に交換しました。


Litorange PTFEチューブ テフロンチューブ 2mm x 4mm x 2M + PC4-M6 ワンタッチ継手 + PC4-M10 ストレート空気圧継手 1.75mmフィラメント用 3Dプリンターパーツセット (ホワイト)

こちらには長めのPTFEチューブも付いており、フィラメントの供給用にもちょうど良いです。取付には別途M6のナットが必要です。通常のナットだと必要以上の高さがあるので 5mm 程度の M6ナットを3Dプリントしてもよいかもしれませんが(その場合70度の乾燥に耐えるフィラメントを使う必要があります)

Aurooooa 50個入 M6 六角ロックナット ナイロン ロック ナット 高さ6mm 六角幅10mm 304ステンレス鋼 ナイロンインサートセルフロック

このコネクタを取り付けることにより PTFE チューブを本体のフィラメント排出穴に取り付けできるようになり、PTFEチューブで保護した状態で3Dプリンターに送り出せます。



ダンボールスプールからプラスチックスプールに巻き直す

ダンボールスプールに巻かれたフィラメントを乾燥したり造形に使用したりするには以下の問題があると考えてました。

  • ダンボールの吸湿性がそもそも高いので、乾燥させたフィラメントがまたダンボールを通じて吸湿する可能性がある
  • ダンボールスプールのまま Bambu AMS やドライヤーのローラーの上で回すとしても、送り出しに抵抗が発生してうまくいかない
  • ダンボールスプールとローラーが接触する部分を保護するためのリングのモデルが存在するが、PLAなどで造形したこのリングは70度の乾燥に耐えられず歪んでしまう(PAなどで造形すれば使える?)
  • ダンボールが摩耗し紙の粉が発生するとフィラメントに不純物が混じる可能性がある


まあそりゃそうだろという感じではあるが、
70度乾燥に耐えられなかったPLA製ダンボールスプールリング
ローラー跡がついているほか全体的に歪んでいる


こういった理由から、手元では、ダンボールスプールに巻かれたフィラメントはプラチックのスプールに巻き直して使用するほうが遥かに扱いやすく、トラブル切り分けをシンプルにできるため、悩みたくなければ開封してまずはプラスチックスプールに巻き直してしまったほうが良いと考えています。

Bambu の再利用可能スプール。70度の乾燥に耐えられると表記があります
Creality Space Pi ドライヤーの最大温度(70度)で使用して、
いまのところ問題ありません


手元では以下のフィラメントリワンダーを造形し、余っている Bambu の再利用可能スプールに巻き直しています。最初は道具なしで巻き直してみたのですが、それではきれいに巻き直すことができませんでした。手作業で苦労して巻き直しているうちにフィラメントに不純物が付着したり、巻きが汚くなったりすることで送り出し~造形時の安定性にリスクを感じました。スプール間の巻き直しに道具は必要です。



Filament Spool Switcher for Bambulab AMS and AMS Lite

このフィラメント巻き器は特に Bambu スプールの径にあわせて作られているので、手元のニーズにあっています。巻取り先スプールが別のものであれば別の巻き器のデザインを見る必要があるのかもしれません。

2025年1月24日金曜日

3Dプリンタを初めて購入した感想など

今更ですが3Dプリンタ Bambu Lab P1S を購入しました。

思ったより楽しくて日々色々出力してみてるのですが、思ったことなどを色々まとめておきたいと思います。

なお3Dプリンタや樹脂を溶かすといった経験についてはここ2カ月弱の経験しかないのでとんちんかんな事を書いているかもしれませんが多めに見て、場合によっては Twitter などでやさしく教えてください。

場所がないので玄関に置いている
背面へのアクセス、上部からのアクセスなどが制限されるので
本当は良い置き場所とはいえない


AMS(フィラメント自動切り替えシステム)は便利

Bambu Lab の現行プリンタは AMS もしくは AMS Lite と呼ばれるフィラント素材を自動的に切り替えてくれるシステムが存在しています。同社のプリンタでは P1S, X1 Carbon では AMS と呼ばれるエンクロージャ式のものが利用できます。AMSには以下のメリットがありました。

  • 多色出力ができる。もちろんフルカラーなどではないですが一部色を変えたい道具類を作りたいときにはとても便利です。
  • サポートのインターフェイスにだけ別素材を使える。後でサポートの取り外しが楽になります。
  • 素材の切り替えが自動。PLA、PETG、ウッドPLAなど複数の素材を自動的に行き来できる。
  • いちおう密閉されておりフィラメントの吸湿をある程度抑えられる。フィラメントを利用可能な状態を保てるため、フィラメント交換や出力を気軽にできます。
X1 Carbon か P1S か

Bambu Lab での個人向け現行最上位機種は X1 Carbon 、それの廉価モデルが P1S になります。はじめての3Dプリンタであったこと、予算的に安いほうがよいと感じたことから P1S 一択で買いましたが、使い始めて知ることで、何が違うのかも色々判ってきました。

X1 Carbon と P1S の差違は基本的に、温度が高い「 PLA や PETG 以外の材質を使いたいかどうか」かなと思いました。

X1 Carbon は高温で出力する素材に対応できる部品が採用されていたり、出力品質安定化のために庫内を暖めたり、高温で臭いやガス、細かな粒子の発生する状況に備えてHEPAフィルタが付いていたりするという点です。総じて PLA や PETG なら P1S で出力すると最初から割り切っていれば P1S で十分ですが、ラボっぽく、いろんな素材を試してみたいと思うのなら X1 Carbon のほうがチャレンジできる幅が広くなります。

一方 P1S でもノズルや押し出しギアなどを X1 Carbon に交換でき、これである程度の素材までは対応できます。とはいえチャンバーの温度コントールなどを後から実装するのは現実的ではないので、 X1 Carbon と互角までは持っていけないですね。

そのほか筐体が金属かプラスチックか、ロッドがカーボンか、ベッドから造形物が外れてしまったら検出できるAIセンサーなどの差がありますが、 P1S でも、とりあえず大抵のことはできるという印象です。 X1 Carbon を買わなかった後悔はせずとも、次の3Dプリンタを選ぶときに自分が選ぶもののスペックが判るようにはなりました。

ノズルの素材と径

私は 0.2mm と 0.6mm の焼き入れスチールを本体とともに購入しましたが、結果的に 0.2mm は使っていません。改めて、焼き入れスチール 0.4mm ノズルを購入して、今はこれが主力になっています。

P1S 向けで提供されるノズルには「ステンレススチール」と「焼き入れスチール」の二種類があります。 P1S では標準で 0.4mm ステンレススチールが装着されていますが、後で交換可能です。

積層型のプリンタでは 0.4mm の径がいまのところ出力品質と速度のバランスが取れており、よく使われる径のようです。スライサー(出力をコントロールするプログラム)の品質向上により 0.6mm でもかなりキレイに出力できるようになってきたようですが、トラブルなくサクサク出力したいなら 0.4mm が安心です。一方、木材を練り込まれたフィラメントなど特殊なものを利用してみたい場合や出力速度を稼ぎたいときには 0.6mm も欲しくなります。

P1Sに標準搭載のステンレススチールのノズルは PLA/PETG を使っているうちは問題ないですが、焼き入れスチールになると摩耗耐性が上がります。より固い材質、カーボンファイバーやガラスファイバーが含まれるフィラメント、ナイロン系フィラメントなどを利用するには焼き入れスチールのノズルが欲しくなります。たとえば歯車などの機械的構造の部品を作りたいとか思ったときに、ここで使える材料に差がでてきます。

 
P1S だと付属はステンレススチールですが、X1 Carbon 同等の焼き入れスチールに交換できるので、必要となったときにさくっと焼き入れスチールに交換してしまうのが良いかと思います。径を変えたいと思わない限りは、もうほとんど交換の手間もありません。

標準の 0.4mm スチールノズルから 0.4mm焼き込みスチールに交換する様子
これでABSやカーボン、ナイロンなども扱えるようになる
焼き込みスチールノズルに交換するなら、
押し出しギアも強化ギア(黒)に変えてしまおう

ツールヘッドから写真の押し出しギアまわりやノズルの部品を取り外して交換作業をしてみると、3Dプリンタのツールヘッドの中身がわかりますし、詰まりの時に何をしたら良いか想像できるようになるので、よい経験になりました。


3Dプリンタで作った3Dプリンタ備品

3Dプリンタを便利に利用するために便利な小物は3Dプリンタで作れます。騒音問題などがなければ、寝るタイミングなどで以下のようなものを仕掛けて作っておくとよいと思います。私は以下のものを作りました。
  • フィラメント交換時に発生するごみフィラメント(poop💩)を受けるくず箱
  • AMSをシリカゲル除湿剤をセットするためのケース
  • X1 / P1 PTFE Tool - P1SとAMSの間などを接続する通信ケーブルやPTFEチューブの付けけ外しに便利

とりあえず シワなしPITのり

PLA/PETGなどだけ扱うのならあまり問題ないでしょうが、取り扱うが難しい素材にチャレンジすると、ベッドにのりをつけて定着改善&PEIプレートを保護したくなります。

まだよく判っていないのですが、 PEI プレートというのは鋼にプラスチックのシールが貼り付けてあるようなものみたいですね。また Bambu 公式サイトを見てもエンジニアリングプレートが出ていないです。結果として本来推奨されない PEI プレート上でエンジニアリングプラスチックを造形しちゃえということになります。

しかし、造形中に外れてしまったり造形物を取り外すときに PEI プレートの表面をもっていかれないように気をつけなければいけません。そのためにはスティックのりをベッドに塗ることになります。

もともと手元にあった大塚商会取り扱いのスティックのり(PVP)を使いましたが、これを塗ると厚みがでてしまい、とても塗りにくいです。シワなしPITはもっと液状っぽくて塗りやすいです。結果としてベッドの段差もできにくいので、とりあえずシワなしPITを買って持っておくのが正解だと思います。

手前にある白のがPVPのスティックのり。
造形中の Benchy の下には実はシワなしPITが塗ってありますが、
薄くぬれているので判らないと思います


フィラメント乾燥機は事実上必要。専用機か食品用のオーブンか

PLAやPETGなどの比較的取り扱いが簡単なフィラメントを気軽に使うためだけでも、フィラメントスプール専用の乾燥機は持っていて損しないと思います。これらの乾燥機からPTFEチューブで直接3Dプリンタに出力できる点は魅力です。

PLA、PETGなら既製の専用フィラメント乾燥機がお手軽だと思っています。ただABSなどのより上位の素材を扱いはじめると、乾燥温度を80度を求められたりすると、このようなフィラメント乾燥機では手に負えなくなってきます。あまり加熱するとプラスチックのスプール自体が溶けてしまうんですね...手元ではABSやナイロンは70度でのんびり乾燥させています。

使い混んでいる方のなかには食品用のコンベクションオーブンを利用している方もいるようで、使いこなせてきたら、そういったものもアリかなと思います。


ノズルの交換がめんどくさい

P1S のノズルの交換はけっこう面倒くさいです。

出力直後だとノズルが熱い可能性があるので火傷の不安があります。私はサーマルカメラを持っているので、視覚的に火傷する温度かどうかは確認できるので何度か確認して、「ああ、この状態でこれぐらい経ったらこれぐらいの温度なんだ」というのを知ってしまいましたが、普通はそんなもの持ってないですよね。

また、Bambu Labの3Dプリンタの場合、ノズル交換にあたって小さなコネクタを3つ付けたり外したりする必要がありますが、私はコレ一発で正しく付けられません。コネクタが小さくて取り付けるのが難しい、壊してしまいそうという不安に加えて、 P1S は構造上プリントヘッドの前側にフレームがくるので視界がとおりにくく、この交換がしづらいです。クリック感がないのでうまく装着できたかわからず、動作させてみたから「ファンの回転数異常です」などのエラーメッセージを受けて問題に気づく、みたいな感じになります。このため必要以上にノズル交換をしたくありません。

コネクタ取り付け失敗対策として、コネクタの高さに対してマーカーでしるしを付けてみました。しるしを付けてからコネクタを弄っていないので、役に立つかどうかはこれからです。

コネクタ縦位置のマーカー

スプールは造形しなくても溜まる

購入した非純正フィラメントや交換用フィラメントだとスプールが無かったり、ダンボール製で印刷に向かなかったりすることがあります。ひとつの解決策はスプールを3Dプリントすることです。

でも、本当に色々なフィラメントで遊び始めると、すぐに再利用可能スプールが溜まりはじめると思います。たとえば Bambu サイトで購入可能なマットPLAのフィラメントは交換用パックとしての販売がないので、これを使おうと思うと必然的に再利用可能なスプールが手元に増えるんです。


PETG(青)でスプールを造形したが結局一度も使わず。
Bambu 純正フィラメントのスプールが何本も余りはじめている

スプールは探すと3Dモデルが出てきて、これを造形すれば造り出すことができます。低コストなフィラメントを探して回る旅をしているのならともかく、 Bambu 純正スプールを何本か試すつもりなら、たぶん必然的に予備スプールが生まれるので、本当に3Dプリントしてまでスプールを増やす必要があるかは疑わしいです。

カーボン強化フィラメント・ガラス強化フィラメントのリスクとナイロン系フィラメントを考える

本体購入と合わせて PLA-CF (カーボンファイバー強化PLA)のフィラメントを購入したり、ABS-GF(ガラスファイバー強化ABS)をフィラメントを購入したりしましたが、ABS-GFは造形しましたがPLA-CFについてはまだ未開封です。特に PLA-CF については、結果的には、意図的に未開封です。

特にカーボン強化フィラメントはフィラメント内にカーボン繊維が練り込まれていて、これは一度体に吸い込むと分解されずに体のどこかに刺さったまま蓄積されてしまう物質ということになると思います。テストプリントでそんなものをボロボロ出してみたり、それをノリで削ったりして吸い込むと本当に体によくないんですね。BambuのCFは日用品の出力例が示されていますが、一般論的に、CFやGFは出力後に塗料で塗装して封印してしまうとか、そういう使い方を前提としてほうがいいのかなと思います。

素材の特性で避けられないということなら仕方ないですが、PLA-CFやABS-GFなどよりも安全そうなものとして、PAや、非純正であればPolymakerのCoPAなどがあります。PAやCoPAは所謂ナイロン系のフィラメントで、こちらは造形時に熱で溶かして一時的に有害なガスが出ることはあっても、カーボンファイバーみたく呼吸器に刺さった状態で蓄積するような恐ろしさは少なそう。



750g 1万円ちょっとと、割と値がはりますが、一週間ほど試行錯誤して、手元のP1Sで割と安定して出力できるようにパラメータを作成することができました。ということで、手元では機械的な部品などを作るときの強化フィラメントとしては、色の選択肢などは少ないですが、まずはCoPAを中心に選ぶことになりそうです。


中国メーカーのサーバーにデータを送るというリスクをどう見るか、直近のネットワーク認証強化についての議論

Bambu Lab 社のプリンタで直近話題になっているネットワーク認証強化の件にもからむところですが、 Bambu Lab のプリンタはアプリケションからプリンタに対して、ジョブをインターネット経由で送信する仕組みになっています。

実は私もこの点は購入前に気になっていて、ある程度割り切って使うことにしました。 Bambu Lab P1S が便利なところは割と設定なしでもモデルを食わせれば勝手に造形物が出てくるところにあり、クラウドへの依存は設定操作をシンプル化するための仕組みです。

自分の造形物データを盗まれるかもしれないとかそういう可能性はゼロではないと思いますが、まぁ自分の造形データを盗むほど価値はないですし、どちらかといえば同社がサービス停止した後にプリンタが文鎮化するのではないかという点を気にしました。本当にクラウドに流したくないデータはSDカード経由でプリンタにデータを入れて造形開始することも可能なので、そういう時はそうするつもりです。

最近ネットワーク認証強化のために、結果的に Orca Slicer などのオープンソースプロジェクトからプリンタへのジョブ直接投入ができなくなるとか、プリンタがセキュリティ対策をせずに丸出しにしていたインターフェイスを使ったサードパーティモジュールが使えなくなるとか、そういった話題で「課金しないとプリンタを使えなくしようとしている」とか大騒ぎしているインフルエンサーがいますが、私にはそこまでには見えません。

3Dプリンタはオープンソース文化との親和性が高く、スライサーソフトなどもユーザや業界の協調で発展してきた経緯から、プロプライエタリなロックが発生するのだと敏感に反応しているように見えます。一方、3Dプリント界隈はコンピュータエンジニア畑ではない人が中心に、「いままでに無かったロックは怖い」というお気持ちを表明しているようにしか、私には見えていません。

恐らく同社が守りたいのは同社が提供するサーバーと、その先に接続されているユーザーのプリンターだと思っています。
Bambu Studio やそれをフォークした Orca Slicer など、そこに含まれたコードが
場合によっては悪意ある攻撃コードの土台にもなりうると思えば、
無償提供・APIが公開されていない自社サービスに対して
サードパーティーが直接接続することを嫌う気持ちはわかる。

ローカルネットワークからプリンタ自体への接続も自社ソフト経由というのは
確かに少しやりすぎにも感じるが、乗っ取られた無線ルータなどから発火させられる
リスク等を回避する方法のひとつ思えばまぁ判る。筋がいいかは微妙だが


最新の家庭用プリンタは 350度ぐらいまでノズル温度を上昇させることができるようになってきて、そこまでの温度で造形するものだとチャンバー温度を高く保てるモデルが増えてくると思います。そういったプリンタをインターネットから操作できるようにして、攻撃者がウチのプリンタを加熱させて意図的に火事を起こすとかそういう行為ができるようなセキュリティホールなら、同社はそれを対処する必要があります。

同社からは、プリンタの認証機能をアップグレードせずに既存のソフトウェアを使い続けたければ現行バージョンを使い続けることで従来のサードパーティーも利用できると案内されていますし、 Developer モードを使えばローカルネットワークでそのセキュリティ機能を回避できる選択肢が用意されることが案内されました。
実際のところiPhone や Android のアプリストアはこの件以上にプラットフォームが強い規制をしていますし、これらのスマホやOculus Questなども同じようにストアを経由しないソフトを動かすためには Developer モードを使用します。コンピュータハードウェアの世界では何年か前にソフトウェアのライセンスを変更して、新ファームウェアにアップロードした後は特定形態での使用を禁止するような製品価値を差損するEULA変更をした企業もありましたが、それと比べたら大した話でもありません。
今回の件が本当に気になるなら、他社の製品を選択したり、純粋にオープンソースのものを選ぶなど、自由に広い選択肢から好きなものを選べばいいと思います。

2024年9月29日日曜日

IkaLogの開発で得た知見: ニューラルネットワークを用いたブキ分類器の思想と実装

以前IkaLogの開発で得た知見:大量の動画や画像を取り扱う際の Tips にて、 IkaLog が使用していたブキ認識において、いかに実ユーザ環境からの送信データを活用しながらいかに効率的に教師データを揃えることができたかを紹介しました。

最近は LLM や生成 AI などが話題をもっていきがちですが、独自のモデルを構築してアプリケーションに組み込もうというアイデアで取り組まれている方も増えているのではないでしょうか。

私自身が取り組んだのは 2015-2017年頭の話なので昔話でしかないとはいえ、もしかしたら新規アプリケーションを作られる方の参考になるかもしれない?と思ったので、当時どのような思考で作業をしていたか、もう少しまとめてみる事にしました。

今回は、 IkaLog のブキ認識において、最終的にシンプルなニューラルネットワークに行きついたかについて解説します。

バックグラウンド: IkaLog で目指した性能と、当時のハードウェア制約

精度99%では満足できなかった理由

スプラトゥーンでは、合計8名のプレイヤーがふたつのチームに分かれて勝敗を競います。このときひとりひとりのプレイヤーが100クラス以上のブキのなかからひとつ選んで勝負に挑みます。


ブキにはそれぞれシューター/ローラー/ブラスターなどのクラスの特徴があるほか、攻撃力や距離、連射力で差別化がされています。また、ブキには戦局を有利に進めたり、不利な場面を打開するために活用できるサブウェポンやスペシャルウェポンが用意されています。

IkaLog で処理される勝敗データでは、各プレイヤーがどのメインブキを使用しているか、またサブウェポンやスペシャルウェポンが何であるかを正しく記録することが、戦績データを扱うためのしくみとして重要だと考えていました。

※ この統計自体には IkaLog は使われていません


先述のとおり、一回の対戦において8名のプレイヤーがゲームに参加します。これは 99% の分類器があったとしても、対戦で使われたブキすべてが正しく分類できる確率は 0.99^8 = 92.2% にしかなりません。このため IkaLog ではブキ分類器で 99.9% 以上の精度が必要であろうと考えていました。

スプラトゥーンのリザルト画面からのブキ認識は今のAIの仕組みから考えれば、とても簡単な仕組みです。画面の同じ場所に同じ画像が表示されるだけ。ただ、バグありのビデオキャプチャデバイス、HDMIでさりげなく入るノイズ、ユーザーのセットアップなどの理由で、ソフトウェア観点からみると「同じ画像が毎回表示される」前提ではブキ分類器を実現できませんでした。


当時のハードウェア事情

また、 IkaLog を開発していた 2015 年頃はまだゲーミングPCらしくゲーミングPCを一般的なプレイヤー層は持っていることは想定できませんでした。

ましてや Wii U でスプラトゥーンをプレイしているユーザがとなりに AI で十分な性能を発揮できるようなハードウェアを持っておらず、ゲームをしている人が最新CPU搭載のコンピュータを所有しているかも怪しいです(今でも多くのスプラトゥーンプレイヤーでも余裕のあるPCを持っておらず、むしろスマホのほうが性能が高い可能性すらあるでしょう)。当時の事情でいえば、x86 CPUでの演算において SSE4.2 程度の命令セットしか期待できなかった時期での取り組みでした。私自身が認識できていたユーザには Core 2 Duo で IkaLog を常用している方もいらっしゃいました。

IkaLog がリアルタイムで画像認識をするというコンセプトであったため、当時の記録によると、8キャラクタ分のブキ分類を含めてリザルト画面の解析をおよそ3秒以内で実現できることをひとつの目安としていたようです。


IkaLogの開発においてたどった当初の分類器のしくみや遷移

K近傍法

IkaLog では、当初は OpenCV の K近傍法 の実装を用いて、入力画像に対してもっとも特徴量ベクトルが近い近傍があるクラスに分類するアプローチで実装していました。

開発開始当初はブキ数が30程度だったかと思いますが、アップデート終了までにクラス数が100を超えるほどに増えました。結果論ですが、単純なテンプレートマッチングやSVMなどといったアプローチをとっていたら、実行時間の観点から、より苦労していたと思います(スプラトゥーン2向けの実装では数字などのキャラクタ認識でSVMを利用することも検討し取り組みましたが、このワークロードではKNNほどコスパよくありませんでした)。

KNN の実装は当時の CPU でアイコン程度を分類するのは十分に高速だったほか、分類器の訓練も高速でしたので、開発初期からこのアプローチにたどり着いていたことはとても助かりました。データ量が少ない状態から半自動的に訓練データを集めようとしたときに、いまでもとりあえず使うことが多いです。


色相のヒストグラム

ブキの分類器を作り始めた当初、最初に実装したものは色相のヒストグラムからパターンを見つけて分類が可能かどうかを試していました。


ただ、スプラトゥーンのリザルト画面では、所属チームによりブキ画像の背景にチーム色が映り込み、場合によってはプレイヤーが選んだ装備品もブキに重なります。プレイヤーのキャプチャーデバイスの設定などにも依存することもあり、あまり実用的な精度は出せませんでした。

ラプラシアンフィルタ

輪郭抽出は古典的な画像の分類アプローチでよく使われる手法の一つかと思います。IkaLogでもラプラシアンフィルタを適用し、カラー画像から次元数を削減した特徴量を生成し、ここから分類を行う方法を試していました。一時期のバージョンの IkaLog では実際にこのアプローチで提供していたと思います。

IkaLogのブキ分類のワークロードにおいてラプラシアンフィルタはチームの背景色の影響を排除し、ブキの形状に基づいて分類するには良い方法に思えます。しかし、ユーザの映像キャプチャ環境において元画像が 720/1080p だったり、それを480pにリスケールした映像が投入されたりといったかたちで想定外の入力がされると精度を保てないという問題が生じました。

最終的なチャレンジはスプラトゥーンのアップデートそのものでも発生しました。スプラトゥーンではメインブキに対して、サブウェポン・スペシャルウェポン違いのバージョンとして「カスタム」「コラボ」といった亜種が登場します。これらの亜種ではブキ画像の右下に小さな追加マークが表示されるのですが、ラプラシアンフィルタを介して色相情報を落とした状態でこれらの特徴を合理的に見分けることはできませんでした。



ニューラルネットワーク導入の決断

IkaLog を作り始めて自然と機械学習的アプローチに関わるようになっていたことから、 Cousera の Andrew Ng 先生のコースなども一通り修了していた頃に「もうニューラルネットワークにカラー画像をそのまま入力したほうがいいんじゃないか」考えるようになってきていました。

とはいえ、AlexNet などの既存のニューラルネットワークは100MB以上の重みデータがありますが、さすがにこれは過剰ですし、ユーザがそんなもので推論できるようなプロセッサを持っていませんし、CUDAをユーザのプロセッサで実行できるわけでもありません。このため IkaLog で目的に合わせたニューラルネットワークを実装することを考え始めました。

IkaLog のブキ分類においてニューラルネットワークに画像をそのまま入力することによる一つのメリットは、ニューラルネットワークであれば背景色などを無視できることがあります。チームカラーによって何色になるかわからないようなピクセルに基づく入力値は、結果的に無視されるようになります。ブキの形状によって適切な重みが自動的に形成されることを想定できたので、おそらく簡単にうまくいくだろうと思いました。


HSV色空間

RGBとHSVでしっかり比較したわけではないのですが、ブキ分類器での分類対象ではHSV色空間で取り扱ったほうがよいだろうと判断したので、何も考えずにHSV色空間を特徴量として使用しています。

HSV色空間を利用しようと思った最大の理由は、ブキの「カスタム」「コラボ」といった亜種の特徴を表現する色相がピクセルあたりひとつのパラメータで表現されることになるので、おそらくRGB色空間で扱われるよりもいいだろう、ぐらいにしか考えていませんでした。背景の色相を無視するという観点でも重みが小さくなることで簡単に表現できるでしょう。ここについては「こうなってくれたらいいな」という思想でしかなくて、現時点でもそう思っているだけで、これによる差があったかどうかは何も検証していません。


ネットワーク構成をシンプルに

使用するレイヤとしては単純な全結合とReLUに制約することにしました。理由はふたつあり、一つ目は計算量、二つ目は再実装のしやすさです。

計算量の観点では、畳み込みフィルタなども考えましたが、当時 MacBook Pro (2014) とその上の GeForce チップ、また Haswell Refresh プロセッサで走るニューラルネットワークの速度を見ていると、 CNN やプーリングをエンドユーザのプロセッサで実行させることは現実的ではないだろうと感じていました。単純な全結合と ReLU 程度であれば、当時で型落ちとなっていたプロセッサ上でも NumPy やその下位のライブラリが現実的なスピードで動いてくれるだろうと期待しました。

再実装の観点では IkaLog に取り組んでいた当時でニューラルネットワークを動かそうと思うと、 Caffe を使うとか、もしくは Chainer を使うとか、そういったいくつかのフレームワークを利用する方法でした。 ONNX ランタイムみたいなものはまだ出てきておらず、想定するユーザ層が中学生・高校生・大学生や社会人で、主に Windows ユーザであろうことを考えると、既存のフレームワークを IkaLog のためにセットアップさせるのは不可能でしょう。

IkaLog は zip ファイルを展開して実行すれば使える状態の配布形態を維持することを心がけていたので、ブキの分類器のためにフレームワークへ依存を追加することにためらいました。このため、シンプルなネットワーク構成とすることで、IkaLog用に推論コードを作成するコストを最低限に抑えることにしました。


実装を進める前の事前確認を Azure Machine Learning で実行

それまでの取り組みである程度のデータ量は確保できていたので、まずは手元のデータセットを用いて最低限の作業でアプローチを検証するため、 Azure Machine Learning に想定する特徴量をアップロードして、 MLPで期待するようなモデルが実現するのかを確認しました。

Azure ML はこの程度のワークロードであればファイルをアップロードしポチポチするだけでいいですし、 confusion matrix などもさくっと出してくれるので、アプローチ上問題がないことを簡単に確認できましたしコードを具体的に書く前に最低限の労力で検証できたことはとても助かりました。なおこの Azure ML の体験談は 2016 年頃当時の話であることに留意してください。





学習済みモデルのインポート、推論

実際の学習は Chainer と GeForce GTX 1080 (後半は Tesla P100)で行いました。そもそもどれぐらいのノード数で性能が飽和するかを Chainer 上で検証し、ネットワークの隠れ層のサイズを決めました。

本番の学習は 24 時間などのオーダーで1000エポック以上回したような覚えがあります。 Chainer のチェックポイントとして得られたものをいくつか評価して使用するモデルをきめました。

Chainer フレームワークからネットワークの重み・バイアスを取り出して、単純な NumPy コード上で推論できることを確認できたので、モデルをただのマトリックスとして pickle してファイルに保存、そこからモデルを復元・推論することで、機械学習フレームワークへの依存を断ち切りました。

実際に生成できた実行用モデルファイルをみてみると15MBほどになっていました。この中には32ビット浮動小数点数が並んでおり、zipなどでの圧縮効果がほとんどありません。配布ファイルが大きくなることを嫌って、pickcleする際に16ビット浮動小数点数として扱うことによってファイルサイズを半分に抑えることにしました。このワークロードとモデルにおいて浮動小数点数のビット数を抑えても実用上の影響はほとんど感じられません。最終的に戦績共有サイト stat.ink に投稿されるブキ画像を 99.99% で分類できる精度が得られました。


推論の実装

先述の理由で、 IkaLog ではフルスクラッチかつ最低限のコード量で推論を再実装しました。ここで実装した内容は、のちに発売されるオライリーの「ゼロから作る Deep Learning」の最初の100ページで解説された内容そのものともいえるかと思います。

このブキ分類器は、すでに型落ちとなっていた IvyBridge 2.0 の MacBook Air でも 0.02 秒で実行できました。Core 2 Duo などでも十分な速度で動きましたし、 PYNQ (ARMコア搭載 FPGA)でも1回あたり200ms未満の実行速度で収まりました。

FPGAならPLで実行すりゃもっといけるだろとかそういうツッコミはいくらでも可能かと思いますが、技術的には可能ですが、非営利の独りプロジェクトでここまでやれば十分かなと思っています。


おまけ

当時やってみたかったこと

ネットワークの蒸留や枝切りをしてより配布ファイルのサイズを小さくできるのではないかと考えていましたが、着手しませんでした。

単に手が回っていなかったほか、ネットワークの規模が小さくなったときに、どのクラスにも該当しない画像を特定のクラスに分類してしまう可能性などを恐れていたように思います(実際取り組んだらどうなったかはわかっていません)。


最近のエコシステムに思うこと

ここまでの内容を2017年以前に取り組んだ後、こんなフレームワーク便利だなと思ったものが幾つかでてきました(現時点の選択肢として筋がいいと言いたいわけではありません)。

  • ONNX Runtime の登場によりホストプログラムが雑に使える推論ライブラリが出てきたという印象
  • Intel が OpenVINO や Movidius VPU を出してきて、 Windows PC でハードウェア支援が期待できるようになった。最悪 AMD CPU でも SSE 相当で動くっぽい
  • OpenCV に DNN に対する推論機能が強化されており、配布方法を工夫すれば GPU アクセラレーションなどをホストプログラムから呼び出せるかもしれない。

さらに、2017年の iPhone X から Neural Engine が搭載され、 Android にも同じように推論エンジンがハードウェアとして搭載されるようになりました。 Mac であれば M1 から、 Windows でも Copilot PC が出てきました。

ようやく OS レベルの推論の抽象化が進んできた

ライブラリの観点では、Windows であれば DirectML 、 Apple であれば CoreML 、Androidであれば MLKit などが普通に使えるようになってきて、私が IkaLog を作るときに困った「推論のための仕組みがない。ターゲットごとに実装してられない」という状況に大きな変化が起きているように感じています。特に個人的には DirectML は(ごくたまにしか試してませんが) Windows 環境において OS が推論ワークロードをハードウェアで実行してくれるという、まさに OS らしい抽象化をしてくれるようになりました。

私自身はふだんほとんどプログラムを書かないのですが、ローカルで推論をするアプリケーションの開発難易度は10年前から比べると大きく下がってきたなと感じています。

ローカル LLM の話題などもみかけますが、 Copilot PC の話題などをみつつ 2024 年は、ローカルで推論をするタイプのアプリケーションの開発が加速する年になるだろうなと思っています。2025 年になるとウイルス対策ソフトすら推論用アクセラレータにオフロードするような世界がくるのかもしれませんね。

2024年3月9日土曜日

BOSE SoundBar 900 のメンテナンスと覚え書き

暫く iOS アプリなどから連携不可能な状態になっていた BOSE SoundBar 900 を復旧したので覚え書き。まとまった情報がなかったため理解するまでにかなりの時間を要しました……。


問題

私が対応した個体では下記の問題がありました。

  • ルータの設定上の問題か、 BOSE 社サイトへの通信が通らずアクティベーションできない (iOSアプリにて連携できない)
    • ネットワーク構成の問題かもしれないが、一般的な IPv4 通信はできる環境のはずで、なぜうまくいかないのかわからない
  • アクティベーションされた際、最新ファームウェアへのアップデートが始まるが、完了しない
これに対しての対応方針をかきのように定めました。
  • シンプルなネットワーク上にサウンドバー本体を有線LAN接続しアクティベーションを完了させる
    • 現地のネットワーク構成に依存した問題が発生しているように見える
    • ファクトリーリセット状態からのアクティベーションは LTE ルータをゲートウェイとしたシンプルなネットワークを使用する
  • ファームウェアアップデートをアクティベーション前に済ませる
    • 600MB近いファームウェアのダウンロードを繰り返しさせたくない(遅い)
    • 確実にファームウェアを更新完了した状態でアクティエーションすることで失敗要素を減らす

この問題を解決するための手順は、最終的に、下記のとおりになりました。
  • DHCPでアドレス取得ができるネットワークに有線で接続
  • ファクトリーリセットのため Bluetooth + 早送り> ボタンを長押しする
  • BOSE社サイトからファームウェアファイル product_update.zip をダウンロードする
  • SoundBar 900 が掴んでいる IP アドレスを見つける
    • 今回はルータの DHCP リース状況からIPアドレスを特定
    • BOSE社サイトで案内されているMACの prefix がアテにならない
  • http://x.x.x.x:17008/update.html にアクセスする
  • 表示されたファームウェアアップロード画面にて product_update.zip をアップロード
    • ファームウェアアップロード画面をリロードしてファームウェアバージョンが上がっても我慢
    • 白いダッシュ(−)LEDが点滅しているうちはFWアップデートが続いているので1~2時間かかるつもりで放置
    • サウンドバー本体からファクトリーリセット時の起動音がしたらアップデート完了
  • DHCPでアドレス取得ができ、素直に通信できるインターネット環境に接続
    • 今回はLTE無線&有線ルータを上流として使用
    • SoundBar 900 を同ルータに接続して有線 DHCP でアドレス取得した状態とする
    • iOS端末を同ルータのL2セグメントに接続
  • iOS端末にて SoundBar 900 を登録、アクティベート
  • 本来のネットワークにイーサネットで接続し DHCP でアドレスを取得しなおす
    • 有線 -> 有線であれば WiFi のパラメータが絡まず、上流を置き換えても問題がおきない模様
普通の人に「これやりなよ」とカジュアルに言えるかというと、かなり微妙です。
知人が同じ問題に悩んでいても、面倒なので、教えてあげたり手伝ってあげたりする気には、正直なりません。
このようにファームウェアの挙動が常に判りづらく、デジタルガジェット的観点な感想として、かなり低めの評価になります。


ファームウェアアップデートについて

事前にファームウェアをアップデートする理由は、アクティベート成功後、自動的にファームウェアアップデートが開始されますが、iOS上でファームウェアアップデートが開始された後に失敗しても何も理由が表示されません。アップデートは一度で30分弱かかると書かれていますが、ファイルの転送段階でアボートしていても把握できないようです。このため手動でファームウェアアップデートを済ませて解決します。

LTE経由でファームウェアアップデートが走ったとしても、ここでダウンロードされるファイルが 600MB ほどになり、光回線などがあれば、LTEで転送することは合理的ではありません。PC等でファームウェアを事前ダウンロードしておけばリトライも簡単ですし、試行あたりの待ち時間や総転送量も減るでしょう。

実際にファームウェア更新ページで試してみるとわかるのですが、ファームウェアアップロード時、 SoundBar 900 のフラッシュストレージ上に過去の失敗ファイルが残っていることがあるようで、その場合にはファームウェア更新のワークエリアが十分にとれずに失敗することがあるようです。この問題を回避するためには Bluetooth ボタン + 早送り> ボタンを同時長押しして、あらかじめファクトリーリセットしておくと、ワークエリアがリセットされるのか、空き容量不足になるエラーが解消できました。

いちどファームウェアが更新できれば、LTE回線を上流としたネットワーク環境でも、アクティベート後の自動的なファームウェアアップデートも発生せず、期待通りデバイスが制御できるようになりました。

最近のファームウェアでは HDMI で接続されたソースが起動したときにこちらに入力を切り替えるような変更が入っているようですね。何かの拍子に入力ソースが切り替わった後に、テレビ等からの音が聞こえずモヤモヤするということは減るのかもしれません。(音が鳴らないと HDMI のリンクが落ちているのか、単に入力ソースの問題なのかという二択が頭によぎる時点でかなりUXが低い印象でしたが、これが改善しているかもしれません)


中身は Android なのね

サービス用の Type-C コネクタを介して疑似イーサネット?接続することも可能なようですが、手元ではすぐにイーサネットとして認識されなかったので、切り分けも面倒なので早々に諦めて有線ネットワーク経由でアクセスしました(このアップロードページは、これはこれでセキュリティ的にどうなんだという作りですが)。

Type-Cで接続したところ Android デバイスとして認識されたので、これ中身の OS は Android なんですね。ファームウェアファイルが600MBもあったのに驚きましたが、なんか納得というかんじです。 Raspberry Pi にのっているような STB 用のプロセッサ等で制御しているんでしょうね。


HDMIのリンク落ち問題

経験してみて判ったのですが BOSE SoundBar シリーズは HDMI で接続中に HDMI のリンクが落ちるとコールドスタート(電源ケーブル抜き差し)まで復旧しないようで、ネットで調べるとフラストレーションを感じている人が日本語でも他の言語でもいっぱいいます。私が弄った個体でもこの問題は発生していて、以下の対策をしています。

1)Ultra High Speed HDMI 認証のケーブルに交換で接続
2)簡単にリセットできるように電源ケーブルにスイッチを増設 :-(
3)リンクモードを拡張から標準にダウンブレード


Ultra High Speed HDMI 認証のケーブルに交換で接続

Ultra High Speed HDMI は、 8K 対応として売られているケーブルです。メーカーがズルをしていなければ、このロゴを付けられるケーブルは 8K のデータが転送できることを確認している(よりテクニカルには 48Gbps のデータ伝送で問題ないことが確認された製品)ということになります。Ultra High Speed HDMI はいまのところ HDMI シリーズでいちばんノイズ耐性をもとめる規格です。1m程度のケーブルは銅線などで単に接続されているパッシブタイプのケーブルが一般的ですが、高ノイズ耐性なケーブルであれば迂闊な HDMI の信号ロックはずれに頻度も減るだろうという狙いです(自分で HDMI 信号を扱ってきた際の体験談に基づいてのロジックです)。実際、体感的には、コレでかなり音が消える頻度が下がった気がします。

SoundBar 900 は eARC の製品ですが、どうせオーディオしか伝送しないだろうに、高いビットクロックでソースとシンクが HDMI 信号をロックしてて、ちょっとしたノイズで簡単に HDMI 信号のロックが外れると電源入れ直しまで復旧しないとか、そんな感じの挙動に見えます。ネット上のクレームを見る限り、おそらく付属のケーブルでも同期がとれなくなるケース多いのでしょうが、私みたいに古いケーブルなどをうっかり使い回すような人は、かなり痛い目にあうのでしょう。

簡単にリセットできるように電源ケーブルにスイッチを増設 :-(

HDMI信号ロックが外れたときのために SoundBar 900 の通電用ケーブルは簡単にリセットできるように電源スイッチを自分で追加する加工した電源ケーブルに置き換えました。


電源タップ側で簡単に電源オンオフできればそれでいいのですが、設置先の電源タップがアウトレットごとの独立制御に対応していなかったので、ケーブルを加工しました。電源ケーブルを抜き差しする手間がないだけでもかなりストレス軽減になるでしょうです。

リンクモードを拡張から標準にダウンブレード

テレビ側の設定を見ていたら HDMI ソース側(今回は SONY BRAVIA)の外部入力設定において HDMI リンクモードを拡張から標準に変更しました。HDMI のリンクモードを拡張・標準で選べるようなので、これを変更したときに具体的に何がおきるかは判っていないのですが(テレビ側もスピーカー側も何も教えてくれません)、これで HDMI のビットクロックを落とせたら安定性が増すかなと期待して標準モードに変更しました。結果として、この設定が安定性面で一番効果があったようです。


追記
BRAVIAのリンクモードを標準に落とした場合に何がおきるかわかっていないのですが、仮にリンクモードが落ちてARCにダウングレードされると、 5.1ch 圧縮までのサポートとなり 5.1 非圧縮や7.1のフォーマットを伝送できなくなるようです。
今回の設置場所では非圧縮5.1chなどのコンテンツに用はなさそうなのでARCにダウングレードされても十分でしたが、7.1期待で買っている人はどうしたらいいんでしょうね...