Original Prusa i3 MK3/S のアップグレードまとめ

目次

はじめに

Orignal Prusa i3 MK3/Sといえば言わずもがなのベストセラー3Dプリンタです。おすすめな点は色々とありますが、その1つとしてコミュニティが大きく、コミュニティ主体のアップグレードが豊富なことが挙げられます。

去年2月にOriginal Prusa i3 MK3を購入して以来、アップグレードを数多く試してきたので、個人的な備忘録も兼ねてこれまで試してきたアップグレードをまとめてみました。

f:id:SatT99:20200112190245j:plain
Prusa i3 MK3の現在の姿。アップグレードにドハマリした結果、オリジナルのパーツがほとんどなくなってしまいました。。。

前提条件

  • エクストルーダ、フレームといった部位ごとに分けてアップグレードを紹介します
  • アップグレードごとに効果の概要に加え、オススメ度コスト作業時間を記載します
  • オススメ度コスト作業時間効果の3つの総合評価です。基本的にはコスト作業時間に対する効果が大きいほど☆の数が多いです。定義は以下の通り。(☆1、2はめんどうなのでおそらくあまり紹介しません)
☆の数 定義
☆☆☆☆☆ 絶対にやるべき
☆☆☆☆ やることを強く推奨する
☆☆☆ 普段の用途と合致するならやってもいいかも
☆☆ 興味があればやってもいいかも
正直やらなくてもいい
  • コストは必要な部品を購入するのに自分はこれくらい使ったはずというかなりいい加減な値です
  • 自分が購入したのはMK3の後期モデル(R3)です。それ以降のモデルでは、アップグレードの必要性は若干変わるかもしれません
  • アップグレードの前後の比較写真等も残していないので、この記事に書かれたことはあくまで主観的な感想だと認識した上で読んでいただけると幸いです

部品調達先

アップグレードをするには専用のパーツを調達することが必要な場合があります。海外のお店から購入することが多いので、必要なアップグレードを選定した上で何個かのパーツをまとめて購入するのがおすすめです。以下はアップグレード用パーツを調達するのにおすすめのお店です。

  • Lecktor
    Prusa i3 MK3のパーツが豊富なエストニアのお店。おそらくこの記事で紹介するアップグレードに必要なパーツがここ一箇所で揃う。おまけとして北欧のよくわからない味の飴がもらえる。
  • E3D
    E3D V6ホットエンドで有名な会社。ホットエンドやノズルの他にもモータやプーリーも調達することができる。
  • Trianglelab
    3Dプリンタ関連のクローン品を数多く手掛けるお店。価格の割には高品質なパーツが多い。

アップグレード紹介

エクストルーダ

Original Prusaの一番の弱点であるエクストルーダ。熱設計があまりよろしくないので、素の状態だとPLA等のプリントで苦労することが多い1。印刷の品質と成功率が大きく向上するアップグレードが多いので、せっかくアップグレードするならエクストルーダ関連を優先するのが良い。

ホットエンド冷却ファン交換

lecktor.com

オススメ度 ☆☆☆☆☆
コスト 1500円(ファン購入)
作業時間 15分

Original Prusaではホットエンド冷却ファンに静音性が高いNoctuaのファンを使用しているが、ファンの静圧がE3D V6ホットエンドの推奨値に対して不足しているため、冷却性能が足りず、ヒートクリープによるフィラメント詰まりが発生しやすい。

詳しくは以下のページを参照 github.com

作業としては静圧・風量が適切な4010の5Vファンを用意してNoctuaと交換するだけ。ワイヤーハーネスがめんどうならリンク先等から購入するのがおすすめ。

参考:ヒートクリープとは?
ホットエンドの冷却不足が原因で、フィラメントが本来溶けるべきない箇所で軟化し、ノズル詰まり等が発生すること。PLAを印刷する際、最初は上手く印刷できていたのに途中からカチカチと音が鳴り、フィラメントが出なくなる場合の原因のほとんどはこれ。ノズル詰まりまで至らない場合でも、フィラメントの軟化が原因でフィラメントの吐出が不均一になり、印刷物の表面の品質が低下することも。

シリコンソックス

e3d-online.com

オススメ度 ☆☆☆☆☆
コスト 500円(ソックス購入)
作業時間 3分

ヒートブロックをシリコン製のカバーで覆う。ヒートブロックの温度が安定するほか、溶けたフィラメントによってヒートブロックが汚れることを防ぐ、ヒートブロックから印刷物に伝わる輻射熱を減らすといった効果がある。通常版とPROがあるが、PROは罠。PROはノズル用の穴が小さすぎて少しでもソックスがずれるとノズルが塞がれ大惨事が発生する。

エクストルーダ交換

Bear Extruder
Bear Extruder & X Axis(画像引用元

オススメ度 ☆☆☆☆
コスト 1,000~2,000円(ネジ等のパーツ購入)
作業時間 4時間

エクストルーダをコミュニティで開発されたものに交換することで、冷却性能やメンテナンス性を向上させる。パーツの印刷・組み立てがやや面倒だが、効果は十二分。自分はSkelestruderを選びましたが最近は更新が止まってしまったので、今ならBear Extruderがおすすめです。 github.com jltxplore.dozuki.com

ギアードエクストルーダ

ギアードエクストルーダ
ギアードエクストルーダ(画像引用元

オススメ度 ☆☆☆☆
コスト 1,000~9,000円(パーツ購入)
作業時間 2時間

モータとフィラメントのドライブギアの間に1:3程度の比率のギアを噛ませることで、フィラメントの送り量をより細かく調整できるようにする。モータからドライブギアへの熱伝導がなくなるので、ヒートクリープも改善される。印刷物表面の滑らかさが目に見えて向上する。Bear Extruderを使っている場合は、vertigo235氏のギアボックスを印刷して使うか、BMGエクストルーダアップグレード(正規品orクローン品)を購入して使うことになる。

Nema 17 Gearbox "Pulleybox" Mod for Extruder by vertigo235 - Thingiverse

lecktor.com

ja.aliexpress.com

*ギアボックス組立に必要となるシャフトは、Lecktorで購入するか、タミヤのものを削って使うのがおすすめ。 lecktor.com www.tamiya.com

パンケーキモータ

lecktor.com

オススメ度 ☆☆☆
コスト 1,500円(モータ購入)
作業時間 30分

モータをデフォルトのものより薄型・軽量なパンケーキモータに変更する。エクストルーダの重量を100g近く減らせるので、印刷時のX軸方向のjerkとaccelerationを向上させることができる。単体ではトルクが足りないので、ギアードエクストルーダーと組み合わせて使う。ステップ刻みが0.9degのものと1.8degのものがあるが、ギアードエクストルーダーと0.9degのものを組み合わせてもステップ数が過剰でマイコンの処理が間に合わなくなるだけなので、普通に1.8degのもので問題ない。

ヒートブレーク交換

e3d-online.com

オススメ度 ☆☆☆
コスト 1500円(ヒートブレーク購入)
作業時間 30分

Original Prusaのヒートブレークでは、MMU2でのフィラメント交換の成功率を向上させるため、通常のV6用ヒートブレークにはない段差が内部についている。この段差でヒートクリープで軟化したフィラメントが引っかかってつまることが多いらしい。 詳しくは以下動画の11:30付近を参照。

MMU2を使う予定がなく、PLAを頻繁に印刷する人なら通常のV6用ヒートブレークを購入して交換してもいいと思います。

ホットエンド交換

Mosquito™ Hotend
Mosquito™ Hotend(画像引用元

オススメ度 ☆☆☆
コスト 9,000~16,000円(ホットエンド購入)
作業時間 3時間

Original Prusaに搭載されたV6ホットエンドは様々な種類のフィラメントを印刷できる非常に優秀なホットエンドだが、メンテナンスが面倒という欠点がある。特にノズル交換時に誤ってヒートブレークとヒートブロックの間が緩んでしまい、後で印刷中にフィラメントが漏れ出すような大惨事が発生すると涙が出てくる。

そんなV6ホットエンドの欠点を独自の設計で克服したのがSlice Engineering社のMosquitoホットエンド。ヒートブロックに回転防止用の支柱がついているため、ノズル交換の際にヒートブレークとヒートブロックの間が緩んでしまうことがない。またこの支柱で荷重をもつため、ヒートブレークの厚みがV6ホットエンドよりも薄く、ヒートクリープが発生しづらい構造になっている。
欠点は価格。V6の正規品の3倍という値段のせいでなかなかおすすめしづらい。 最近はMosquitoの利点をV6互換の形状で実現した上、お値段もMosquitoの半分というDragonホットエンドがTrianglelabより販売されているので、Mosquitoは値段がちょっとという人はそちらがおすすめです。

reprap.world

ja.aliexpress.com

ローテーションインジケータ

オススメ度 ☆☆
コスト 500円(磁石購入)
作業時間 10分

エクストルーダのモータに磁石でインジケータをくっつけることで、モータの回転を可視化する。エクストルーダが問題なく動いていることを確認するのに便利。作り方はPrusaの公式ブログを参照。

ヒートベッド

パーツ数が少ないため、アップグレードする余地があまりない。効果の大きいNylock nut modをやっておくといいぐらい。

Nylock nut mod

オススメ度 ☆☆☆☆☆
コスト 500円(ナイロンナット購入)
作業時間 3時間

ビルドプレートの水平出しがとても楽になるアップグレード。これをしているとfirst layer関連の問題で悩むことが大幅に減ります。 

導入方法については動画と以下のリンクを参照。 github.com

水平出しの際は、ネジ回転量計算機あるいはOctoprintの専用プラグインを使うのがおすすめ。

ちなみにヒートベッドは熱すると熱膨張で歪むので、普段使用する温度(例:PLAなら60度)まで熱してから水平出しすることが重要。

テクスチャPEIシート

shop.prusa3d.com

(アップグレードというより公式のパーツですが、自分がOriginal Prusaを購入したときはスムースPEIシートしか選択肢がなかった+使ってみたら非常に便利だったので紹介します)

熱いと印刷物が良くくっつき、冷めると印刷物が勝手に剥がれる不思議なシート。スムースPEIシートと違って傷付きにくいので、特にPETGを印刷するときに便利。スムースPEIシートと比べて厚みが0.3mmほど薄いので、テクスチャPEIシートに交換した際にZ方向のオフセットの値を変更し忘れないよう注意。

オススメ度 ☆☆☆☆☆
コスト 5,000円(シート購入)
作業時間 10分

ファームウェア関連

使い勝手向上と印刷品質に関わるアップグレードが多数存在する。Raspberry Pi導入以外はほぼほぼコストが0円なので、色々試してその中から好きなものを選ぶといいと思います。

Octoprint

f:id:SatT99:20200113011213p:plain
Octoprint

オススメ度 ☆☆☆☆☆
コスト 2,000~5,000円(Raspberry Pi Zero/3B購入)
作業時間 2時間

Raspberry Pi経由でブラウザからプリンタを動かせるようになるアップグレード。これがあるとブラウザでg-codeをアップロード→印刷とできるようになるので、使い勝手が大幅に向上する。Raspberry Piにカメラをつけて、印刷中の様子をモニタすることも可能。Raspberry Piはzero(制御基板の背面に取り付け可能)と3B(USBで接続)のどちらでも可能。zeroを使ったほうがケーブルが減って全体的にコンパクトになるが、3BのほうがOctoprintの応答が早い。

詳細な手順については以下参照。 manual.prusa3d.com

USB通信ファームウェア更新

github.com

オススメ度 ☆☆☆
コスト 0円
作業時間 15分

Original Prusaの制御基板に搭載されたMCUのUSB通信ファームウェアには問題があるようで、USB通信に負荷がかかると通信エラーが発生する。特にOctoprintやKlipperのようにUSB通信を常に行う場合に問題となりやすい。自分の体感だと、Klipper+Octoprintで連続して印刷を行うと、1週間に2回ほど頻度でこの問題が原因で印刷が失敗する。

この問題はUSB通信ファームウェアを更新することで解決できる。ファームウェアの更新にはAVRライタが必要となるが、作業自体はいたって簡単。自分は余っていたPro microをAVR-ISPとして使った

詳細な手順についてはリンク先を参照。

7x7 Mesh Bed Leveling

blog.prusaprinters.org

オススメ度 ☆☆☆☆☆
コスト 0円
作業時間 5分

PINDAでヒートベッドの歪みを計測する際にデフォルトの3点×3点ではなく、7点×7点で計測を行うことで、より高精度のメッシュを構成する。PINDAでの計測時間が多少長くなるものの、first layerの貼り付きが良くなるので使用することおすすめします。

もともとはコミュニティ独自のファームウェアにのみ実装されていた機能だったが、去年Prusa本家のファームウェアにも実装されので、今は設定画面での変更だけで7x7 Mesh Bed Levelingを有効にすることができる。ちなみにPINDAの計測値はヒートベッドのマグネット付近だと誤差が生じるので、magnet compensationは常にONにしておいたほうが良い。

Linear Advance v1.5

marlinfw.org

オススメ度 ☆☆☆
コスト 0円
作業時間 30分

PrusaのファームウェアのもととなっているMarlinには、溶けたフィラメントの粘度が原因で発生する、フィラメント送り出しからノズル吐出の間の時間遅れを補償する機能であるLinear advanceが搭載されている。

PrusaのファームウェアがMarlinからフォークした頃はLinear advanceのバージョンが1.0であったが、その後バージョン1.5へとアップデートされた。バージョン1.5のメリットとしては、制御基板の計算負荷が少ないこと2や、v1.0でときたま見られたエクストルーダモータの急加速が発生しないことが挙げられる。

PrusaのファームウェアのままLinear advance v1.5を使用したい場合はvertigo235氏のフォークを使用すればいい。コンパイル済みのhexファイルもあるので、作業としては自分のPrusaのモデルおよびアップグレードの状況(Bear Extruder等)に合ったものをダウンロードしフラッシュするだけである。

github.com

なお、Linear advance v1.0とv1.5とでは使用するK-value(フィラメントの種類ごとの校正値)が異なるので、以下のリンク等を参考に校正をやり直す必要がある。

marlinfw.org

mattshub.com

Klipper

github.com

オススメ度 ☆☆☆
コスト 5,000円(Raspberry Pi 3B購入)
作業時間 2時間

Original Prusaの制御基板に搭載された8bit MCUの代わりに、より計算能力が高い外部のMCU(大抵はUSB接続したRaspberry Pi)を使ってモーションコントロールの演算を行う。Kipperの主な利点として以下が挙げられる。

  • モーションコントロールが秀逸でモータの動きが非常に滑らかになる
  • ファームウェアの設定変更が設定ファイルの書き換えだけで済む
  • Klipperの開発方針について開発者であるKevinOConnor氏がオープンな姿勢を見せており、ファームウェア変更点やその理由についてgithub上で非常に丁寧に説明されている

他にも色々と利点はあるが、すべて書き出していくとひとつの記事になるので、ここではこの程度にしておきます。

Original PrusaでKlipperを導入する手順については以下参照。

github.com

フレーム関連

Original Prusaはフレームが貧弱と良く言われるが、個人的にはそこまで問題がないと思う。フレーム関連をアップグレードしてもそこまで大きな効果は見られないので、興味があればやってみる程度でいいと思います。

Hard Feet

www.thingiverse.com

オススメ度 ☆☆☆☆
コスト 1,000円(ゴムシート・ネジ等購入)
作業時間 1時間

Original Prusaに付属するゴム脚は柔らかすぎてプリンタが揺れるため、Ghosting(下記参照)が発生する原因になる。プリントした脚に交換することでGhostingを低減できる。プリントした脚をそのまま使うと3Dプリンタの揺れが机等に直接伝わってものすごくうるさいので、脚の裏に硬めのゴムシート等をはることをおすすめします。

www.prusa3d.com

Bear X Axis

github.com

オススメ度 ☆☆☆☆
コスト 500円(ネジ等購入)
作業時間 3時間

X軸の剛性を強化するアップグレード。剛性強化はあまり効果が実感できないが、X軸ベルトのテンショナが非常に使いやすいので、メンテナンス性を向上させたいならおすすめです。

Bear Upgrade

github.com

オススメ度 ☆☆☆
コスト 15,000円(フレーム等購入)
作業時間 6時間

フレームをアルミフレームに交換し、プリンタ全体の剛性を強化するアップグレード。高速で印刷するとき以外あまり剛性強化の効果が実感できないが、Y軸ベルトのテンショナが非常に使いやすい他、プリンタを横に倒して作業できるようになるので、メンテナンス性を向上させたいならやってもいいと思います。

ロッド・ベアリング交換

lecktor.com

オススメ度 ☆☆
コスト 7,000円(ロッド・ベアリング購入)
作業時間 3時間

XY軸のロッドとベアリングをより動きが滑らかなミスミ製のものに交換する。手で動かす際にガタツキが減って動きが滑らかになっていることが確認できるが、そこまで印刷の品質に影響しない。

Toothed Idler

github.com github.com

オススメ度 ☆☆
コスト 1,000円(アイドラ購入)
作業時間 3時間

XY軸のアイドラをデフォルトの滑らかなものから、歯付きのものに交換する。アイドラでベルトの歯が潰れることを防ぐらしいが、あまり違いは実感できない。

9mmベルト

github.com

オススメ度 ☆☆
コスト 1,000円(ベルト購入)
作業時間 3時間

Y軸のベルトをデフォルトの6mmのものから9mmのものに変更する。ベルトの剛性が向上することでghostingが低減されるらしいが、あまり違いは実感できない。

その他

これまでの分類に当てはまらないアップグレードをここで紹介する。

LACKエンクロージャ

blog.prusaprinters.org

オススメ度 ☆☆☆☆
コスト 10,000円(アクリルパネル、ネジ等購入)
作業時間 5時間

IKEAのサイドテーブル、LACKを使ってエンクロージャを作成する。エンクロージャがあると3Dプリンタの周辺温度を上げられるため、PETGとABSを印刷する際にwarping(印刷物の端がめくれあがってしまうこと)する確率が減る。ヒートベッドの設定温度や部屋の気温によるが、エンクロージャ内の温度は約30~40度ほどまで上昇する3。音やホコリの対策にもなるので、設置場所があればおすすめのアップグレード。

フィラメント乾燥機

www.aliexpress.com

オススメ度 ☆☆☆☆
コスト 6,000円(乾燥機購入)
作業時間 10分

フィラメントが湿っていると印刷物の品質が大きく低下する(詳しくは下記動画を参照)。シリカゲルを使えばフィラメントをある程度は乾燥させることができるが、乾燥機があればよりしっかりと乾燥させることができる。リンク先のものはスプールホルダーを兼ねているので、印刷中もフィラメントを乾燥させることができて便利。


  1. 普通に印刷することは可能だが、ヒートクリープで印刷が失敗することが多い。

  2. Linear advance v1.0でギアードエクストルーダを使って高速で印刷する場合、einsyの計算が間に合わずモータのステップが飛んでしまう場合があった。

  3. エンクロージャの隙間を目張りしたらもう少し温度が上げられると思うが、これ以上は制御基板の電子部品の寿命縮む上、ホットエンドの冷却が間に合わなくなると考えられるので、あまりおすすめしない。

ワイヤレスな分割キーボードCaravelleをつくったおはなし

「キーボード #1 Advent Calendar 2019」14日目の記事です。

adventar.org

今年は2台目のキーボードであるCaravelleを設計したので、そのときの経緯をざっくりとまとめてみました。
去年の記事は少し長すぎたので、今年はなるべく短めです。

Caravelleとは?

Caravelleは1台目のキーボードであるComet46をベースに色々と改良したキーボードです。自分がキーボードにほしい機能(ワイヤレス、分割、カラムスタッガード等)と打鍵感の良さを両立することを目標に設計しました。

f:id:SatT99:20191209233531j:plain

きっかけとコンセプト

Comet46が完成した当初はほしかった機能を上手く詰め込めたこともあり非常に満足していたものの、半年ほど使用している間に色々と不満な点が出てきたため、それらを改善した新しいキーボードをつくることにしました。

1. 打鍵感向上
Comet46ではPCBがボトムプレートに常に接触しているような極限までに薄いサンドイッチ構造にしていたため、打鍵感が非常に固く、またタクタイル感がひときわ強いBox Royalを使用していたこともあり、一日の終わり頃には指が痛くなることもしばしばでした。そこでCaravelleでは、打鍵感を柔らかくするため、海外のカスタム系キーボードで一般的に採用されているトップマウント構造を採用しました。*1

f:id:SatT99:20191212230650j:plain
Comet46側面(スイッチのピンを切ることで厚みを減らしているためPCBとボトムプレートが接触している)
f:id:SatT99:20191212231057p:plain
トップマウント構造(プレートがケースに吊り下がるような構造をしているため打鍵感が柔らかくなる。図はThomas Baartさん作、完全版はこちら

2. 配列の最適化
Comet46を設計する際にはキーキャップを並べ自分が押しやすいキー配列を決めましたが、それでもキーボードとしてタイピングしてみると気になる点が2つほど出てきました。

  • 小指キーの位置をもう少し下にしたい
    Comet46ではボタン電池を設置するスペースの関係上、小指側2列が自分にとって押しやすい位置よりやや上にありました。Caravelleで電池をボトムケース内の窪みに移動することで小指キーの位置をより下側に移動することができました。

  • 4つ目の親指キーがほしい
    自分で押しやすい位置にしかキー配置しないというコンセプトのもと、Comet46では親指キーを3つだけ配置していました。しかし、実際に使ってみると多少押しづらい位置でもいいのでモディファイアを割り振るためのキーがもう一つあったほうが便利だと考えるようになり、Caravelleでは4つ目の親指キーを追加しました。*2

f:id:SatT99:20191212232239p:plain
左:Caravelle、右:Comet46(カラムスタッガードの度合いと親指キーの配置が変わっている)

ケース設計

トップマウント構造のケースをつくることを決めたのはいいものの、良質なガイドがたくさん公開されているPCBとは違い*3、トップマウント構造のケースの設計方法に関する資料が当時見つけられなかったため*4、まずはケースの構造について調査することとしました。具体的にやったことは2つ。

  • カスタムキーボードのGBに参加する
    いい感じのキーボードは数秒で売り切れたり、GBに参加できたとしても予定より大幅に遅れて発送されたりと入手するのが大変ですが、実物があると構造の細かい部分まで知ることができるのでとても勉強になります。

  • カスタムキーボードのビルドストリームを見る
    いくら勉強になるとはいえ、カスタムキーボードは買うたびにお財布が深刻なダメージを受けてしまうので、購入する代わりにTaeha Types等のビルドストリームを見るのも一手です。実物とは違い細かい構造については知ることができないものの、そのキーボードの特長については大抵解説が入るので、それだけでも勉強になります。

ケースの構造について理解したら次は設計です。自分ははじめに手書きのスケッチでケースのおおよその形状を決めた上で、CADでモデリングしていきました。

f:id:SatT99:20191213210305p:plain
かなり初期の段階における設計途中のトップケースとプレートのモデル

モデリングで一番苦労したのは、スイッチとベゼル内壁の距離*5、ベゼルの高さ*6といった細かい部分の寸法を決めることでした。このとき役に立ったのが3Dプリンタです。実際にものとしてケースを印刷し組み立てることで、モニタを見ているだけではなかなかわからないような点を検証することができたため、効率良くケースの設計を行うことができました。履歴が全部残っていないため正確な数はわかりませんが、おおよそ30回ほど3Dプリンタで試作品を印刷した末に最終的なモデルが完成したようです。

f:id:SatT99:20191214003022j:plain
試作品を印刷するのに使用したPrusa i3 MK3。キーボードを設計するための道具のはずが、一時期3Dプリンタの改造そのものにドハマリすることに。結果、オリジナルのパーツがほとんどなくなってしまいました。。。

f:id:SatT99:20191214002841j:plain
最終的に出来上がった形状

今後やりたいこと

去年の記事にも書いていましたが、まずはアルミケースをつくってみたいです。Caravelleをそのまま3D Hubs等に発注してみてもいいのですが、USBポートがついていない尖りすぎた無線キーボードなため、金属ケースのせいで無線通信が上手くいかない場合、数万円/個の文鎮が2個できてしまう恐れがあり、少し躊躇しているというのが本音です。なので、まずはUSBポートがついたキーボードを設計してアルミケースを発注しようかと思います。(春節に入る前になんとかしたいですが、間に合うかな。。。)

宣伝

Bluetooth版のCaravelleであるCaravelle-BLEをBoothにて販売中です! よろしくお願いします!! satt.booth.pm

*1:キーボードのプレートのマウント法についてはai03さんのまとめ記事Thomas Baartさんのまとめ記事が参考になります。

*2:なお、キーとキーの隙間が露出する面積を減らした方がかっこいいという理由で外側2つの親指キーを1uではなく、1.25uとしました。

*3:キーボードのPCB設計はai03さんのガイドfoostanさんの書籍がとても参考になります。

*4:PCBと違ってケースの設計方法は秘密なこと多いです。ケース設計をはじめた頃は見つけられませんでしたが、Kyuu等の設計者であるQuantrikさんの動画Project Keyboardsが再現したAliceのCADファイル(ページ下部"Open source case files"を参照)とかは参考になりそうです。

*5:プレートの開口部の端からベゼル内壁までを3mm程にすると、スイッチがぐらついたときにキーキャップがベゼルに擦れることがない良い感じの隙間ができます。

*6:使用するキーキャップの種類やベゼルの面取りの大きさにもよりますが、プレート上面からベゼル上面まで7~8mmあるとキーキャップの裾とベゼルが並ぶので丁度良いと思います。

ワイヤレスな分割キーボードComet46をつくったおはなし

「自作キーボード Advent Calendar 2018 その2」17日目の記事です。

adventar.org

今年の春頃に初めてキーボードの設計を体験したので、そのとき考えたことをまとめてみました。
気がついたらわりとボリュームが大きくなってしまったので、時間があるときに読んでいただければ幸いです。

そもそもComet46とは?

Comet46は今年の2月~6月にかけて設計したワイヤレスな分割キーボードです。MiniDoxをベースに内側と外側を1列ずつ足した配列をしています。(ErgoDoxにやや先祖返りしている感じ?)

いわゆるMitosis系のキーボード*1で、左右2つの片割れ(子機)がレシーバー(親機)と無線通信することでワイヤレスかつスプリットを実現しています*2

f:id:SatT99:20181216174349j:plain
Comet46 全体図(自分の技量不足が原因で写真はすべてpotato qualityです)

f:id:SatT99:20181216174341j:plain
Comet46 レシーバー*3

きっかけとコンセプト

自作キーボードに入門したのは去年のHelixのGBがきっかけです。「肩こりをなんとかしたい」と思い新しいキーボードを探していたところ、ちょうどHelixのGBが実施中だったので参加しました。 結果として、

  • 分割キーボードなので楽な姿勢で作業ができ、肩こりが解消された
  • 通常のキーボードと違いOrtholinearな配列なので、指の移動が楽
  • かっこいい

と大満足で、自宅と職場の両方で使っていました。ただしばらく使っていると、毎日自宅と職場の間を持ち運ぶのが面倒、新しいキーボードも試してみたい、という気持ちが湧いてきたので、もうひとつキーボードをつくることにしました。

新しいキーボードをつくる上で、ほしい機能を考えたところ、以下の3つが上がりました。

1. ワイヤレスな分割キーボード
自分の職場の机はとても狭い上、ちらかっていることもあり、Helixを使っているとUSBケーブルとTRRSケーブルの取り回しに困ることが多く、ケーブルがないワイヤレスなキーボードがほしいと考えました。無線キーボードに関して調査した結果、

  • 分割キーボード対応
  • 安定している
  • HoldとかTapとかの機能が使える
  • 電池持ちが良い

といった要求を満たすものが2018年2月当時Mitosisしかなかった(見つからなかった)ため、最初はMitosisをつくろうかと思いました。

(今はahtn/spindleさんのkeyplusjpconstantineauさんのBlueMicrosekigon/gonnocさんのBLE Micro Proといった豊富な選択肢があるので、今現在キーボードをいちから設計するとしたらそれらのいずれかを使用して設計していたかと思います。)

2. 配列はMiniDoxベース
しかしMitosisに関して調べてみると、PCBの製造コストを抑えるためキーボードが10cm四方に収まるキー配置になっており、キーが非常に押しづらいとの評判がもっぱらでした。 https://i.imgur.com/gApMkzz.jpg

Mitosis (作者のReddit投稿記事より引用)かなり特殊な配置の親指キー・column staggered度合いをしています。

そこでMitosisの無線モジュールをベースに、自分が使いやすいキー配置のキーボードをつくることを決意しました。Helix(5行版)のキー配置を毎日使用した感想として、

  • 数字キーは遠くて届かないのでなくていいかも
  • 最下段外側4つのキー(右手側のデフォルトだと矢印がアサインされているキー)も押しづらいのでなくていいかも
  • 最下段内側3つのキー(親指で押すキー)がもう少し手前にあると押しやすいかも
  • Row staggeredからortholinearにしたところすごくキー押しやすくなったので、column staggeredにするともっと押しやすいかも

が挙がったので、それらを実現するキー配置のキーボードを探したところ、MiniDoxがいいのではないかとなりました。 http://i.imgur.com/iWb3yO0.jpg

3. コンパクトで持ち運びやすい
自宅+職場(2拠点あります)の間を持ち運ぶ機会が多いだろうということである程度コンパクトで持ち運びやすいサイズにすると便利だろうと考えました。また、パームレストを持ち運ぶのは面倒なので、できる限り厚みを抑えた筐体にすることも目標としました。

配列を試行錯誤

MiniDoxベースのキー配置にすることに決定しましたが、はたしてMiniDoxの少ないキー数(左右合計36)で足りるか不安だったため、HelixのキーマップをMiniDox風に書き換えて試し打ちを何日かしてみました。結果として、英語入力は問題ないものの、EnterとIMEON/OFFを多用する日本語入力ではキーが足りないと判明したので、小指側に一列足すことを決定しました。さらにちょうどこの時期、Tokyo Mechanical Keyboard Meetup vol.3でのBiacco42さんの発表を聞き、かっこ入力のために人差し指側にも一列足すことにしました。

キー配置の概要が決まったところで、次は実際にキーキャップを並べてキー配置を試行錯誤しました。

f:id:SatT99:20181216225835j:plain
初期のキー配置構想のひとつ

レイアウトを含めた最終的なキー配置は以下の通りです。

f:id:SatT99:20181216230340p:plain
キー配置/レイアウト

詳細は以下の通り。

  • column staggered度合い:”Y”の列を基準(0)にすると内側から順に0u,+0.125u,+0.375u,+0.25u,+0u,+0uとしました。*4
  • 親指キー:一番内側から順に1.5u(傾斜: 20°),1u(傾斜: 12.5°),1u(傾斜: 5°)としました。MiniDoxとは違い1.75uではなく1.5uを採用したのは、角が飛び出して見た目が悪いからです。ただ、1.5uにしたせいでなかなかキーキャップが手に入らない事態に…*5
  • 最内列(かっこ)キー:3行だと最下行のキーが親指キーと干渉する、人差し指 のホームポジションからキーが近い方が打ちやすい、との理由で2つのキーを画像の位置に配置しました。

基板設計

キー配置が確定したところで、次は基板設計です。Helixがほぼ初めて電子工作の素人で、「パスコンって何?、MOSFETって何?」という状態からのスタートだったので、この段階が一番苦労しました。

1、2ヶ月ほどかけて電子回路の基本を勉強したのちに、KiCadで基板設計を行いました。基本的にはMitosisの回路をベースに配線したのですが、何点か独自の工夫を加えてみました。

  1. Core51822の代わりにMDBT40を使用する
    Mitosisでは無線モジュールにCore51822を使用していますが、技適の関係で日本では使えません。なので、技適に対応している代替品としてMDBT40を採用しました。(フットプリントが小さいおかげでキーボードをコンパクトにできた反面、組み立て段階で悲劇を生むことに…)

  2. 電源スイッチをつける
    大したことではないですが、Mitosisでは持ち運び中にキーが押しっぱになって電池が切れてしまうという報告が多数挙がっていたので、対策として付けました。

  3. 部品をすべて基板上面とプレートの間に実装
    MitosisではCore51822を基板裏面に実装していますが、Comet46では厚みを極限まで薄くするため、基板上面とプレートの間にすべての部品を実装できるようにしました。

f:id:SatT99:20181216233612p:plain
Comet46の回路図(初めて+無理に両面基板にしたため、今見るとなんでこんな配線にしたのだろうという点が多数…)

組み立て

KiCadで設計した基板をElecrowに製造してもらい、いよいよ組み立てです。

f:id:SatT99:20181216235145j:plain
出来上がった基板、トッププレート、ボトムプレート(Elecrowガチャのおかげでトッププレートだけなぜか12枚に…)

Helixで細かい表面実装パーツにはある程度慣れていたので、ほとんどのパーツは苦労せず実装できたのですが、MDBT40だけは別でした。0.7mmの挟ピッチ、データシート通りのパッドにしたところ手はんだにはあまりむかない、という2点が合わさったことが原因で、左右の片割れとレシーバーの計3箇所にMDBT40をつける間に、はんだ付け失敗によるパッド剥離でMDBT40を2個壊す事態に…

f:id:SatT99:20181217000200j:plain
MDBT40実装後
f:id:SatT99:20181217000416j:plain
キー以外のパーツを実装した後の様子(レシーバーは旧タイプのものです)

完成、そして反省

良かった点

設計・組み立てともに四苦八苦しましたが、最初に掲げたコンセプトを満足できるレベルで達成できたと思います。

1. ワイヤレスな分割キーボード
Mitosisという既存のキーボードの無線アーキテクチャを流用したので、フリーズ・無線通信失敗・左右のタイミングずれ等の問題もなく、快適に使用できています。また、レシーバーがQMKの処理をすべて担っている上、左右の片割れはmatrix scanをせず入力時以外はスリープモードに入っているおかげで、電池持ちも良好です。今までの実績として、CR2032一個で約2~3ヶ月ほど使えます(自宅と職場で一日平均8時間使用)。(最近無線モジュールのファームウェアをアップデートしたので、さらに電池持ちが良くなるはずです。(現在試験中))

2. 配列はMiniDoxベース
「押しにくい位置にはキーを配置しない」という考えのもとMiniDoxベースの配置を決定し、キーの細かい位置もキーキャップを実際に配置しながら練ったおかけで、快適にタイピングできています。

3. コンパクトで持ち運びやすい
縦140mm×横80cmというコンパクトなサイズのおかげで持ち運びラクちんです。普段は下記画像のハードケースにいれて持ち運んでいます。

f:id:SatT99:20181217003802j:plain
ハードケース(アマゾンにて購入、左側のクッションの裏に予備バッテリー等を収納できて便利)

また、厚みもトッププレートとボトムプレートの間が7.6mm*6とほぼ限界の薄さにしたおかげでパームレストなしでもある程度快適です。

f:id:SatT99:20181216174332j:plain
Comet46厚み(実際には基板がたわんだりするので部位によっては8mmくらいあります)

反省点

1. メンテナンスがしにくい
MDBT40等のパーツがトッププレートとボトムプレートの間に実装されているせいで、メンテナンスするには一度すべてのスイッチを外す必要があります。一回MDBT40のピンが一箇所接触不良になったため、はんだをし直す必要がありましたが、分解→はんだ付け→組み立てに半日かかりました…次のバージョンでは対策を考えたい。

2.軽すぎてタイピング中に位置がずれやすい
プレートも基板と同じFR4(要するにGFRPです)でつくっているので、キーボードとしてはとても軽く持ち運びが楽ですが、その代わりよく滑る机の上でタイピングする際、キーボードが机の上を滑ってしまうことがたまにあります。持ち運びやすさとのトレードオフなので、ある程度は仕方ないです。

今後やりたいこと

Comet46が完成したころは、「自分にピッタリなキーボードができたし、当分はキーボードをつくらなくていいだろう」という甘い考えをしていましたが、部屋に着々と溜まっていく装着するキーボードがないキーキャップおよびスイッチの山を見るにつれ、新しいキーボードをつくりたい欲望がふつふつと湧いてきました。

とりあえず、次につくるキーボードでやりたいことを列挙してみるとこんな感じです。

BLEなキーボードをつくる

Mitosisを使っていてそこまで不満を感じることはないですが、たまにレシーバーなしでBluetoothでPCやスマホでつなぎたいと思うことがあります(特に外にSurfaceを持ち運ぶときはDocking Stationが使えないので、Comet46だとレシーバーを唯一のUSBポートに刺さないといけないのがつらいです)。Comet46を設計した頃はまだ公開されていませんでしたが、今はQMK+BLEに対応したsekigonさんのBLE Micro Proの素晴らしいファームウェアがあるので、BLE Micro Proや今後登場予定のModulo BT Pendant、あるいは単純にMDBT42あたりをベースにレシーバーが必要ないワイヤレスキーボードを設計するのがいいのかなと個人的には思っています。
(唯一心配なのは親機を担当する片割れの電池持ちですが*7、親機にはある程度大容量の充電池(単4二本とか?)を付けられるようにするか、状況に応じてレシーバーありなしを切り替えられるようにするのがいいのかなと勝手に妄想しています。*8 )

Dactyl Manuformをつくる

一般的なrow staggeredからortholinear、その次にcolumn staggeredと試したところどんどん快適にタイピングできるようになりました。そのような経緯もあり、さらに一歩踏み込んでDactylのような立体的なキー配置にしたらもっと快適にタイピングできるのではないかと気になっています。とりあえずclojureとopenscadをインストールして色々な形状のDactyl ManuformをCAD上で試していますが、平面のときと違ってそのキー配置が本当にいいのか実際に試すことが難しいので、どの配置が最適かとても悩んでいます。(3Dプリンタも持っておらず、本番はDMMさんにお願いしようと考えているので、お試しプリントも気軽にはできない…3Dプリンタ買いたい欲が…

アルミケースをつくる

Dactylとは真逆な方向性ですが、Discordに投稿されるai03さんの投稿やGeekhackの投稿に登場するEndgameなキーボードを見ているうちに、自分もアルミケースキーボードをつくってみたいなと思うようになりました。ただ、アルミケースに関しては設計する上で考えるべきことがかなり多く*9、また個人でアルミの切削加工・アルマイト加工を頼むにはどうすればいいかといった知識がまだほとんどないので、本気で取り組むとしてもかなり時間がかかりそうです*10。(妄想段階としては、最近購入したM0116からパーツをとって、ALPS軸の40%~50%くらいのアルミケースキーボードをつくりたいなと漠然に思っています。)

この記事はHelixとComet46で書きました。

*1:ReversebiasのMitosisをベースに設計されているキーボード。ChimeraとかCentromereとか。Mitosisそのものについては去年のカレンダーのntoofuさんの記事の説明がわかりやすいです。

*2:片割れのひとつを親機にするレシーバーいらずな方式もありますが、それも含めた話はこの記事の最後でします

*3:たまにキーを押しても反応しないことがあり、無線通信に失敗しているのか、PCの処理が間に合ってないかわからないことがあったので、現在の状態を表示するOLEDをレシーバーにつけました。結果、キーを押しても反応しないときは99%会社のPCが原因とわかりました。つらい

*4:小指キーは-0.5uにしたかったのですが、電池を入れるスペースがなくなるのと、見た目がイマイチだったので、断念しました。

*5:最近の新しい型のキーキャップ(MDAとかMT3とか)のOrthoセットに1.5uスペースが入るようになったのがせめてもの救いです。(海外含めCorne等が流行ったおかげですかね??)

*6:トッププレート1.6mm+トッププレート・基板間3.4mm+基板1.6mm+ボトムプレート1.0mm

*7:redditのsouthpawengineerさんによるとBLEキーボード(レシーバーなしの構成)だとMitosis系のキーボード(レシーバーありの構成)と比べて電池持ちは半分以下らしいです。

*8:そもそもCR2032で1ヶ月ほど(実際にBLEを試したことないので正確な数値ではないです)電池が持つなら問題ない?

*9:ai03さんが書いたプレートマウント方法の記事を見てプレートだけでもかなり奥が深いと思い知らされています

*10:幸い学生時代にInventorを使っていたおかげでFusion360がある程度使えるのでモデリングそのものは他ほど苦労しないはず、多分