3Dプリンターのファームウェアとは|KlipperとMarlinの違い
3Dプリンターのファームウェアとは、制御ボード(メインボード)上で動くソフトで、スライサーが吐いたGコードを1行ずつ解釈してモーターやヒーター、ファンを動かす最下層の頭脳です。
スライサーが設計図、Gコードが指示書、ファームウェアが実行する作業員という三層関係をつかむと、設定ひとつで印刷品質が変わる理由が見えてきます。
筆者もEnder 3の改造から始めて、いまはBambu Lab X1 Carbonをメイン機に使っていますが、複数機を行き来するほど、まずファームウェアの役割を腑に落とすだけで設定理解が一気に進みました。
主役になるのはMarlinとKlipperで、違いは速さや機能の前にアーキテクチャにあります。
Marlinは制御ボード1枚で処理を完結する従来型、KlipperはRaspberry PiのようなホストPCに重い演算を分散する構成で、この設計差がそのまま速度、機能、導入の手間に反映されます。
ただし、Klipperを入れれば自動で速く綺麗になるわけではありません。
新規インストール直後は未調整なので、Pressure AdvanceやInput Shaper、rotation distance、PIDを機体ごとに詰めて初めて真価が出ます。
この記事では、導入の流れとつまずきやすい点、そして最後にMarlinのまま使うかKlipperへ移るかの判断まで、順を追って確認していきましょう。
3Dプリンターのファームウェアとは?役割を3分で理解する
3Dプリンターのファームウェアは、制御ボード(メインボード)上で動くソフトです。
スライサーが作ったGコードを1行ずつ読み取り、ステッピングモーター、ヒーター、ファン、各種センサーを実際の動きに変えます。
つまり、スライサーで見える設定のさらに下で、印刷機のふるまいを決めている土台だと考えると分かりやすいでしょう。
スライサー・Gコード・ファームウェアの関係
スライサーは設計データをGコードへ変換し、Gコードは座標や温度を並べた指示書になります。
その指示を受け取って、最後に物理動作へ落とし込むのがファームウェアです。
ユーザーが普段触るのは主にスライサー設定ですが、加速度、最高速度、温度上限、センサーの挙動のような「土台」はファームウェア側が握っています。
ここが見えると、設定を変えても反応が鈍い場面の理由が整理しやすくなります。
筆者も最初は、印刷の不調をすべてスライサー設定のせいにしていました。
Ender 3を触り始めた頃は、工場出荷状態のファームウェアが何をしているか知らないまま設定を闇雲に変え、時間をかなり溶かしたものです。
ところが、加速度や速度の上限が別レイヤーで決まっていると分かった瞬間、調整の順番がはっきりしました。
原因を切り分ける入口は、まずこの三層構造を押さえることです。
ファームウェアが決めている『印刷の限界値』
市販の3Dプリンターは、ほぼ全機種が出荷時にファームウェアを書き込み済みで、その多くがMarlinベースです。
だから多くの人は意識せず使えますが、印刷の限界値はその時点でかなり決まっています。
速さや品質を一段上げたいときに、はじめてファームウェアが選択肢に上がるのはこのためです。
ここで効いてくるのは、単に「動くかどうか」ではなく、どこまで無理なく動かせるかという設計です。
加速度を高く取れるか、最高速度の頭打ちはどこか、温度制御がどこまで追従するか、センサーがどう反応するか。
こうした要素が積み重なって、同じスライサー設定でも結果が変わります。
工場出荷の状態で十分に使えるのに、詰め始めると土台の差が見えてくるのが面白いところです。
なぜファームウェアを変えると印刷が変わるのか
ファームウェアを変えるのは、印刷機の「頭脳の動かし方」を変えることです。
同じ機体、同じスライサーでも、制御の仕方が変われば到達できる速度や補正の効き方が変わります。
だからこそ、MarlinとKlipperの設計差を後で理解する価値が出てきます。
実際、ファームウェアの違いは、単なる設定画面の好みでは済みません。
制御の余裕が増えれば、高速移動時の振動を抑える考え方や、押し出しの先読みのような補正を取り込みやすくなります。
逆に、従来型の構成は追加ハード不要で扱いやすく、安定しているのが強みです。
どちらを選ぶかは、何を優先するかで変わる。
まずはこの土台を理解しておくと、次のMarlinとKlipperの比較がかなり読みやすくなります。
MarlinとKlipperの違い|アーキテクチャが根本的に異なる
MarlinとKlipperの差は、機能の多寡よりも「どこで計算するか」にあります。
Marlinは制御ボード1枚で完結するため構成が単純で扱いやすく、KlipperはホストPCに演算を逃がしてMCUを駆動専任にすることで、速度と調整の余地を広げた設計です。
だからこそ、両者は同じ3Dプリンター用ファームウェアでも、得意分野がはっきり分かれます。
Marlin:制御ボード単体で完結する従来型
| 処理方式 | 必要ハード | 最高速度/処理性能 | 追加機能 | 設定変更の手間 | 導入難易度 | 向いている人 |
|---|---|---|---|---|---|---|
| 制御ボード単体で全処理を完結 | MCU搭載ボードのみ | 8bit AVRから32bit ARMまで幅広く対応し、処理上限はボード性能に依存 | 基本機能中心で堅実 | LCD操作、Gコード送信、場合により再コンパイル | 低い | 安定重視で標準運用したい人 |
| ホストPCに演算を分散する2段構成 | Raspberry Pi等のホストPC+MCU | 8bitで175,000steps/s超、32bitで600,000steps/s超 | Input Shaping、Pressure Advance、Web管理 | printer.cfgを書き換えて再起動 | 中〜高 | 高速化や細かな調整を突き詰めたい人 |
Marlinは印刷機の制御ボード(MCU)1枚でGコード解釈からモーター制御までを受け持つ、昔ながらの堅実な構成です。
追加ハードがいらず低コストで、長年使われて枯れているぶん安定性を取りやすいのが強みでしょう。
8bit AVRから32bit ARMまで守備範囲が広く、市販機が標準採用しやすいのも納得できます。
初期状態のままでも動きやすいので、まず失敗しにくい安全牌として選ばれやすいのです。
Klipper:ホストPCに演算を分散する次世代型
Klipperは、重い演算をRaspberry PiなどのホストPCに任せ、MCUは実時間のモーター駆動だけに集中させる2段構成です。
この分担によって計算の余裕が生まれ、8bitボードでも175,000steps/sを超え、32bitでは600,000steps/s超に達します。
500mm/s超の高速印刷まで視野に入るのは、単に速いからではなく、制御の詰まりが起きにくいからです。
さらにInput ShapingやPressure Advanceを組み合わせると、高速移動時の振動や押し出しの乱れを抑えやすくなります。
設定変更の軽さも、Marlinと比べると差がはっきり出ます。
MarlinではLCDメニュー操作やGコード送信、場合によっては再コンパイルが必要ですが、Klipperはprinter.cfgを書き換えて再起動するだけで反映されます。
同じ機体で移したとき、再コンパイル待ちが消えてテキスト編集から即反映に変わるだけで、検証サイクルは体感数倍速くなりました。
筆者の環境では、8bitボードのままでも処理が軽くなり、これまで取りこぼしていた高速域でステップ落ちが減った感触があります。
試行回数を増やして詰める運用には、相性がいい構成です。
一目でわかる7項目比較表
| 項目 | Marlin | Klipper |
|---|---|---|
| 処理方式 | MCU単体で完結 | ホストPC+MCUの分散処理 |
| 必要ハード | 制御ボードのみ | Raspberry Pi等のホストPCが必要 |
| 最高速度/処理性能 | ボード性能に依存し、堅実だが余裕は少なめ | 8bitで175,000steps/s超、32bitで600,000steps/s超 |
| 追加機能 | 基本機能中心 | Input Shaping、Pressure Advance、Web管理 |
| 設定変更の手間 | LCD操作、Gコード送信、再コンパイルが入りやすい | printer.cfg編集と再起動で反映 |
| 導入難易度 | 低い | 中〜高 |
| 向いている人 | 安定運用を優先する人 | 高速化と調整効率を重視する人 |
この比較で見えるのは、Marlinが「単純さと安定」を優先し、Klipperが「分散処理で余裕を作り、速度と調整性を引き上げる」点です。
どちらが上という話ではなく、設計思想が根本から違います。
だからこそ、仕上がりをどこまで詰めるか、設定をどれだけ回すかで選び方が変わってくるのです。
Klipperの強み|Input ShapingとPressure Advanceで何が変わるか
Klipperの強みは、3Dプリンターの「高速にすると荒れる」という弱点を、ソフト側の補正でねじ伏せられる点にあります。
中核になるのがInput ShapingとPressure Advanceで、前者は振動由来の波打ちを抑え、後者は流量の先読みで角や継ぎ目の崩れを整えます。
しかもMainsailとFluiddまでそろうと、調整から監視までブラウザで回せるので、運用の手触りが一段変わるのです。
Input Shaping:振動を消して高速でも綺麗に
Input Shapingは、高速移動で発生する機体振動をリアルタイムに打ち消し、壁面に出るリンギングやゴースティングを目立ちにくくします。
剛性の低い機体やCoreXY、高速印刷ほど効果が出やすく、同じ速度設定でも外周の見え方が変わるのがこの機能の面白いところです。
筆者が調整したときも、同じ高速プロファイルなのに壁面の波模様が目に見えて減り、造形全体の落ち着き方が変わりました。
調整の流れもわかりやすく、ADXL345などの加速度センサーで機体の共振周波数を実測してから詰めていくのが一般的です。
感覚だけで追い込むより、どの方向でどの周波数が暴れているかを把握したうえで補正を入れられるので、再現性が高い。
高速印刷で品質が崩れる理由を、機械の弱さではなく振動特性として扱えるのが強みでしょう。
Pressure Advance:にじみと押し出しムラを抑える
Pressure Advanceは、フィラメントの流量変化を先読みして制御し、角でのにじみや継ぎ目のポツポツ、押し出し不足を抑えます。
速度を上げるほど押し出し系には遅れが出やすく、そのズレが面の荒れとして見えるのですが、この機能はその時間差を埋める役割を持ちます。
筆者の機体では、詰め込んでいくほど角のダレと継ぎ目の乱れが落ち着き、表面が荒れにくくなりました。
Input Shapingが「振動で崩れる輪郭」を整えるなら、Pressure Advanceは「材料の出方で崩れる輪郭」を整える機能です。
両方を併用すると、高速でも輪郭の鋭さと面の均一さを両立しやすくなります。
速度を上げたときにまず見苦しくなる二つの原因へ、それぞれ別方向から手を打てるわけです。
MainsailとFluidd:ブラウザで全部操作できる
Klipperでもう一つ実利が大きいのが、MainsailとFluiddの使いやすさです。
ブラウザベースのWeb UIなので、ファイルをドラッグ&ドロップで投入し、Webカメラで遠隔監視し、printer.cfgの編集まで同一ネットワーク上のPCやスマホで完結します。
造形中に席を立たず、設定変更のたびに端末を行き来しなくていい。
ここは体感の満足度に直結します。
Marlinで同じことをやるならOctoPrintを別途足す必要がありますし、運用の導線も少し重くなります。
Klipperはファームウェアだけでなく、日々触る画面まで含めて軽いのが魅力です。
調整機能が強いだけでなく、触り続けたくなるUIがあるからこそ、移行後の満足感が上がるのでしょう。
Klipperの導入手順|Raspberry Piから書き込みまでの全体像
Klipperの導入は、ハード準備、OS書き込み、firmware.binの書き込み、printer.cfgの設定、キャリブレーションという5段階で考えると見通しが立ちます。
個別のコマンドを丸暗記するより、どの作業がどの順で来るのかを先に地図として持っておくほうが、初心者はつまずきにくいでしょう。
最初に全体像を押さえてから進めると、作業の意味がつながって見えてきます。
必要なもの
用意するのは、ホストになるRaspberry Pi 3B/3B+/4/Zero 2W、またはOrange Pi等のボード、対応するMCUを積んだ制御ボード、microSDカードです。
単機運用ならPi 4の2GB RAM以上が快適で、ログイン後の操作やWeb UIの反応にも余裕が出ます。
ここで足りないものを埋めてから進めると、途中で手が止まりにくいです。
Step1-3:OS書き込み・firmware.bin・printer.cfg
Step1はRaspberry Pi ImagerでRaspberry Pi OS Liteの64bit版、Bookworm推奨をmicroSDに書き込み、起動してKIAUH等でKlipper一式を導入します。
ここでホスト側の土台が整い、以後の設定も同じ環境で進められます。
Step2では自分のMCUに合わせてklipper.binをビルドし、firmware.binにリネームしてSDカードから制御ボードへflashします。
名前を合わせるのは単純ですが、書き込み先を取り違えないための実務的な工夫です。
Step3ではprinter.cfgをホストの/home/pi/に置き、機種テンプレートを土台にしてMCU、各ステッパー、エクストルーダー、ベッドの設定セクションを埋めます。
筆者がEnder系にKlipperを初導入したときも、ここで機種テンプレートの選び方とMCUセクションの整合がいちばんの壁でした。
最初から空白の設定を組むより、まず近いテンプレートを起点にして差分を埋めるほうが、配線やポート名の取り違えを減らせます。
Step4:初期設定のままでは性能は出ない
Klipperは新規インストール直後のままだと、まだ機体固有のクセが詰め切れていません。
Pressure Advance、Input Shaper、rotation distance、ホットエンドとベッドのPIDを機体ごとにキャリブレーションして初めて、速さと仕上がりが噛み合います。
導入直後にそのまま印刷すると期待外れになりやすく、筆者もPAとInput Shaperを詰め直した途端に別物のように改善しました。
ここを飛ばさず、調整込みで完成形だと考えて進めましょう。
ファームウェアの書き込みでつまずく落とし穴
冒頭でつまずきやすいのは、書き込み手順そのものよりも、ボード固有の前提を取り違えることです。
MCUの型番とブートローダーサイズを外すと、firmware.binを用意してもSDカードに書き込まれず、原因の切り分けに時間を吸われます。
配線やファイル名の確認より先に、ここを押さえておくと後の作業がずっと楽になるでしょう。
自分のボードのMCUとブートローダーを確認する
Ender系でよくあるのはSTM32F103で、ブートローダー28KiBという前提で動きます。
ところが新しい機種ではSTM32F401、ブートローダー64KiBの構成もあり、同じKlipperでも書き込み先の見方が変わるのです。
筆者もSTM32F401機でルートにfirmware.binを置いたまま小一時間悩み、書き込まれない理由がボードの違いだと気づいてようやく前に進めました。
STM32F103とF401で手順が違う
STM32F103はSDカードのルートにfirmware.binを置く流れで通ることが多いのに対し、STM32F401の一部機種は『STM32F4_UPDATE』というフォルダを作り、その中にfirmware.binを入れないとflashされません。
ここを同じ手順で扱うと、ファイルは正しくあるのに反応しない状態になります。
ボードが違えば作法も違う、という単純な事実を先に知っておくと、初回の失敗が減ります。
SDカード書き込みでよくある失敗
書き込み用のファイル名は小文字のfirmware.binにそろえ、カード内には余計なファイルやフォルダを残さないほうが通りやすいです。
筆者は隠しファイルが残ったSDカードで認識されず、フォーマットし直して単一ファイルだけにしたら一発で通りました。
可能なら8GB以下のカードを使い、flash中は制御ボードをUSBでホストに接続したままにせず、SDカード経由の経路だけに絞って確認してみてください。
こちらのほうが切り分けやすく、おすすめです。
結局どちらを選ぶ?タイプ別の判断基準
MarlinとKlipperの選び分けは、どちらが上かではなく、今の目的にどちらが合うかで決まります。
追加ハードを増やしたくないならMarlin、速度と仕上がりを追い込みたいならKlipperが軸です。
さらに、Klipperは初期構築の手間とRaspberry Pi等の費用を伴うため、最初から飛びつくより、判断材料を揃えてから移るほうが納得感があります。
Marlinのままで十分な人
Marlinが向いているのは、まず印刷を安定して回したい人です。
追加ハードを増やしたくない、設定の沼に入る前に「そのまま動く」安心感を優先したい、そんな考えなら据え置きで問題ありません。
市販機の多くが標準採用しているのも、最初の一台で扱いやすさを重視する設計が支持されているからです。
初心者にとっては、レベリング、Zオフセット、フィラメントの乾燥、造形物の向きといった基礎を一つずつ体に入れるほうが先です。
ここが固まると、後から別の制御方式を触ったときに「何が変わったのか」が見えやすくなります。
知人に初心者がいれば、基礎が固まるまでMarlin据え置きを勧める、という判断は筋が通っています。
Klipperに移行する価値がある人
Klipperが活きるのは、速度と仕上がりを本気で詰めたい人です。
Web UIでプリンターを扱いたい、printer.cfgを即時に反映しながら試行錯誤したい、Input ShapingやPressure Advanceを前提に調整したいなら、Marlinよりも伸びしろを取りやすいでしょう。
設定を触る過程そのものを楽しめる中級志向のユーザーには、まさに相性がいい構成です。
ただし、Klipperは入れただけで速く綺麗になるわけではありません。
初期構築は重く、Raspberry Pi等の追加ハード費用もかかりますし、新規インストール直後は未調整なので品質も出ません。
調整して初めて化ける方式なので、完成品をすぐ求める人より、仕上げ込みで育てたい人におすすめです。
筆者自身も調整沼は楽しんでいますが、最初の1台では焦って飛びつかず、基礎を一通り経験してから移行したほうが設定の意味が腹落ちしました。
迷ったらまずやるべき最初の一歩
迷うなら、いきなり導入可否を決めずに、自分の制御ボードのMCUを確認するところから始めましょう。
F103かF401かを把握するだけでも、次に何を選ぶべきかの見通しが立ちます。
そのうえで、速度や品質に不満があるならPi 4を用意してKlipper導入を検討し、導入後はPAとInput Shaperのキャリブレーションを必ず行ってください。
この順番にすると、勢いだけで環境を変えて失敗する確率を下げやすいです。
現状を知る、必要なら小さく試す、足りない点を調整する。
おすすめです。
判断材料が揃った段階で一歩進めば、Marlin据え置きでもKlipper移行でも、自分に合う選び方になっていきます。
関連記事
マルチカラー印刷のやり方|AMS設定と多色プリント手順
マルチカラー印刷は、AMSやCreality CFSのようなシングルノズル方式で始まると、色を変えるたびに旧色を吐き切るパージが避けられません。AMSのように1本のノズルを複数フィラメントで共有する構造では、パージタワーや捨て吐きが必ず発生し、筆者もデフォルト設定のまま4色印刷を回して、
3Dプリンターのエンクロージャー自作|ABSの反りを防ぐ囲い
ABSの反り対策は、ノズルやベッドの設定を追い込む前に、庫内温度を整える発想へ切り替えるところから始まります。ABSはガラス転移温度が約105℃と高く熱収縮率も大きいため、Ender 3系のオープンフレーム機では下層だけがベッドで温かく、上層が室温まで冷えて四隅が持ち上がりやすいのです。
STLファイルとは|OBJ・3MF・STEPの違いと変換
STLは3Dプリントでは定番ですが、入っているのは基本的に表面形状だけです。単色でまず造形したいなら非常に強い形式である一方、色・材質・単位・再編集しやすいCAD情報までは標準では持っていません。
ベッドレベリングのやり方|手動・自動の違いと手順
3Dプリンターの「ベッドレベリング」は、地面に対して水平を出す作業ではありません。狙うべきなのは、ノズルの移動面とベッド面を平行にそろえ、造形エリア全体で1層目の隙間を一定にすることです。