3Dプリンタ

BFPTouchをEnder-3で使う為のファームウェア書き換え

投稿日:

Ender-3 LCDコントローラー

今回は、BFPTouch(自作のタッチセンサー)をEnder-3でオートベッドレベリングに利用する為のファームウェアについてです。
電磁誘導式センサーを使ったオートベッドレベリングとは編集内容が少し異なります。

 

サーボモーターのホーンについて

BFPTouch Horn

尚、ファームウェアを書き換える前に、自作タッチセンサーのサーボホーンは外しておきます。
ファームを書き換える前の段階では、サーボの回転位置が定まっていないので、付けたままにしておくとファームを書き換えた瞬間サーボがあらぬ方向へ回転してしまいます。
最悪の場合サーボに無理な力が加わり壊れてしまいます。

ファームを書き換えた後、Ender-3が立ち上がるとサーボはセンサー収納状態の位置に回転しますので、その時センサーが収納されるようにホーンを取り付けると良いと思います。

 

書き換え手順

ファームウェアの書き換え手順については、以前書いた通りなので、そちらを参照して欲しい。
今回このページで紹介するのは設定ファイル(Configuration.h等)の変更箇所だけです。

 

Ender-3 firmware

 

設定ファイルの変更箇所

今回は、

  • Configuration.h
  • Configuration_adv.h
  • pins_SANGUINOLOLU_11.h

の3つのファイルを編集して書き換えます。

Marlin1.1.9に付属しているender-3用のconfigurationsファイルをベースにしています。
その辺りも先のファームウェア書き換え手順のページを見て頂ければと思います。

 

Configuration.hの変更箇所

SHOW_BOOTSCREEN

78行 // #define SHOW_BOOTSCREEN
先頭に//を入れてコメントアウトします。

これはブートスクリーンの表示を行わないと言う設定です。
ブートスクリーンを表示しなくなるぶん起動が速くなるのと、プログラムの容量が小さくなります。

私の場合、電源を入れた後は早く操作できる状態になって欲しいので、ブートスクリーンは非表示にしています。

 

Z_PROBE_SERVO_NR & Z_SERVO_ANGLES

721行 #define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector.
722行 #define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

721行、722行の先頭の//を外してアンコメントします。

721行は、サーボ利用のセンサーを使う宣言(サーボのインデックスナンバーは0)
722行は、サーボのアングル位置の設定で、{Down時のデューティ比, Up時のデューティ比}で指定します。デューティ比の指定は0~255の数値。

私の場合、デューティ比の設定はデフォルト設定{70,0}をそのまま使いました。

 

PROBE_OFFSET_FROM_EXTRUDER

776行 #define X_PROBE_OFFSET_FROM_EXTRUDER -41 // X offset: -left +right [of the nozzle]
777行 #define Y_PROBE_OFFSET_FROM_EXTRUDER -15 // Y offset: -front +behind [the nozzle]

776行、777行の数値を変更して、ノズルとセンサーの位置関係を設定します。
使うマウントによってセンサーの位置が変わると思います。
分からない方はノズルの先端とセンサーの先端の距離を測って指定しましょう。

私のEnder-3の場合、ノズルから左に41mm前に15mm離れた所にセンサーの先端があります。

私が使ったマウントは、Thingiverseに公開しています。
https://www.thingiverse.com/thing:3808691

 

define Z_MIN_PROBE_REPEATABILITY_TEST

823行 #define Z_MIN_PROBE_REPEATABILITY_TEST
先頭の//を外してアンコメントします。

これはセンサーの精度をテストするコマンドが有効になります。
精度テストが必要無い人はここの編集は必要無いです。

 

MIN_SOFTWARE_ENDSTOP_Z

904行 // #define MIN_SOFTWARE_ENDSTOP_Z
先頭に//を入れてコメントアウトします。

これはZ軸がマイナス方向に移動できるようになります。

 

AUTO_BED_LEVELING_BILINEAR

975行 #define AUTO_BED_LEVELING_BILINEAR
先頭の//を外してアンコメントします。

これはオートベッドレベリングの種類をBILINEARに指定しています。

 

FRONT_PROBE_BED_POSITION

1026行 #define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE+15
先頭の//を外してアンコメントして、+15を書き込んでいます。

これはオートベッドレベリングの際のフロント側の位置を少し(15mm)内側に移動させています。
これはビルドシートを留めているクリップにセンサーが当たるのを防ぐ為に設定しています。

 

Z_SAFE_HOMING

1142行 #define Z_SAFE_HOMING
先頭の//を外してアンコメントします。

これはホーミングを安全に実行する為の設定です。
オートホーミングがベッド中央で行なわれるようになります。

 

SLIM_LCD_MENUS

1452行 #define SLIM_LCD_MENUS
先頭の//を外してアンコメントします。

これはLCDコントローラーで表示されるメニューの項目のいくつかを省略します。
メニューの項目が減るぶんプログラムの容量が小さくなります。
Ender-3はメモリが小さいので、プログラムの容量を減らさないと書き込めません。

 

SERVO

1914行 #define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
1915行 #define SERVO0_PIN 27
1922行 #define DEACTIVATE_SERVOS_AFTER_MOVE

1914行は先頭の//を外してアンコメントし、NUM_SERVOSを1に変更
1915行は#define SERVO0_PIN 27を書き込みます。
そして、1922行は先頭の//を外してアンコメントします。

ここではサーボの設定をしています。

 

Configuration.hの編集は以上です。

 

Configuration_adv.hの変更箇所

ここからはConfiguration_adv.hの編集です。

BABYSTEP_ZPROBE_OFFSET

752行 #define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
先頭の//を外してアンコメントします。

ベビーステップは印刷中にノズルの高さの微調整が出来る機能で、その設定とプローブのオフセットを一緒の物として扱う設定。

 

ARC_SUPPORT

798行 // #define ARC_SUPPORT // Disable this feature to save ~3226 bytes
先頭に//を入れてコメントアウトします。

これで円弧のサポートを外します。
多くのスライサーでは円弧が使われていないので問題無いと思われます。
円弧のサポートを外すことでプログラムの容量を減らします。

 

Configuration_adv.hの編集は以上です。

 

pins_SANGUINOLOLU_11.hの変更箇所

ここからはpins_SANGUINOLOLU_11.hの編集です。

 

BEEPER_PIN

169行 // #define BEEPER_PIN 27
先頭に//を入れてコメントアウトします。

もともとビープ音を鳴らす圧電スピーカーに繋がっているピンですが、今回センサーのサーボをこのピンで使っているので、ここでコメントアウトして無効化しておきます。

 

pins_SANGUINOLOLU_11.hの編集は以上です。

 

と言う訳で、3つのファイルの編集が全て終わりで、あとはEnder-3に書き込めばファームウェアの書き換えは完了です。

あと、センサーの取り付けや高さ調整とか必要ですが、その辺りはまたこんど書きたいと思います。

 

-3Dプリンタ
-,

執筆者:

関連記事

Ender-3 ケーブルピラー

Ender-3 cable pillar

Ender-3のホットエンドのケーブルを固定する支柱となる部品を作ってみました。   もともとEnder-3のケーブルは、フィラメントが通っているチューブに結束バンドによって固定されていまし …

ハサミゲージ

ハサミゲージ

ハサミに磁石で取り付けるゲージを3Dプリンターで作りました。 これを使うと、何か物を切る時に長さを確認しながら切ることができます。 (が、あまり正確には切れません。) プリントデータはthingive …

Ender-3

格安3Dプリンター Creality Ender-3

最近、2台目となる3Dプリンターを買いました。 買ったのは、サインスマートが販売しているCreality Ender-3。 以前から気になっていて、買おうかどうしようか迷っていたのですが、ついつい手が …

X軸 V-slot Pulley

Ender-3 Vスロットのプーリーの摩耗が激しいので調整

ふと見るとX軸のVスロットのプーリー(ローラー、タイヤ)に筋が入っていました。 え?と思って、Y軸のプーリーを確認すると・・・ X軸より酷い状態でした。 プーリーが削れて埃のようなものが筋状に付着して …

Ender-3 Fan filter

PETGフィラメントとファンフィルター

最近、PETGフィラメントを使い始めました。 PETGは、ABSと比べて反りが少なくプリントが簡単で、PLAと比べると温度が高めなのと加工性が良くて切ったり削ったりできるので、とても便利です。 特に今 …