2023/03/22

3Dプリンタについての備忘録

所有してる3Dプリンタについての備忘録。

3Dプリンタについて更新があるときは、ここに随時追記していく。
最終更新日_2023/3/22
(投稿日_2023/3/22)

--------------
2週間前に、久しぶりに3Dプリンタのことを書いたついでに、備忘録として、所有してる3Dプリンタの詳細と、書き換えてあるファームウェアの変更箇所などを以下にメモしておく。

というか、先日、オートベッドレベリング(ABL)のセンサーブラケットが破損して新しいものに交換する際、センサー位置が変わったのでファームウェアを更新しなきゃいけなかったんだけど・・・
所有する3Dプリンタ用にカスタマイズしたファームウェアを紛失。
デスクトップ、ノート、バックアップ用HDDなど、いろいろ探したけど見つからず。
仕方なく1からファームウェアを書き直したので(==)

なので、万が一、次にファームウェアを更新する時に見当たらなくてもここを見れば大丈夫なように、カスタムした箇所を記録しておく。
(一応、Googleドライブにバックアップ済)

--------------
機種:HICTOP 3dp-08bk(中古品を2020年3月に購入)

純正からカスタムしたパーツリスト

・メインボード:MKS_GEN_1.4に交換
・ステッパーモータードライバ:HR4988(A4988の互換品)
・エクストルーダー:アルミ製に交換
・ビルドシート:FLASHFORGE製を使用
・近接センサー:LJ18A3-8-Z/BX
・センサー接続用の電子回路:自作
・電子回路収納ケース:3Dプリント(自作)
・センサーブラケット:3Dプリント(Thingiverseからダウンロード)
・ファンブロア:3Dプリント(Thingiverseからダウンロード)
・X軸ベルトのテンショナー:3Dプリント(Thingiverseからダウンロード)
・ケーブルドラッグチェーン:3Dプリント(Thingiverseからダウンロード)
・フィラメントガイド:3Dプリント(自作)
・スプールフォルダー:3Dプリント(自作)
・メインボード収納ケース:3Dプリント(自作)
・Y軸リミットセンサーブラケット:3Dプリント(自作)

ノズルは基本的に0.3を使用してる。

アルミヒーターブロック、セラミックカートリッジヒーター、サーミスタは、安いのをまとめ買いしてストック。

--------------
購入時に前所有者がカスタムしたパーツがいろいろと付けてあったが、それらは全て取り外した。

というのも、購入当時、使い方を覚えつつ1週間ほど使用した時、手順通りに印刷しても精度がいまいちで・・・
印刷途中でズレたり、側面に変な模様が出たり、印刷中にビルドプレートから剥がれて印刷物がグチャグチャになったりといったことが多々発生。

一先ず、原因を切り分けるために前所有者が自作した振動吸収パーツとか、ビルドプレートの固定パーツなどを外して、再度印刷。
そしたら、ほとんどの問題があっさり解決してしまった。
外したパーツのうちのどれが原因かは特定してないけど、おそらく本体底部に取り付けてあった振動吸収パーツなんじゃないかなと思う。

なので、全てを初期状態にした方が良いかもと思い、一旦、本体を全て解体し、構造の勉強も兼ねて、組付け精度(レベル出し)に気を付けながら、1から丁寧に組み上げ直した。

結果は、寸法はきっちり出てないけど、印刷面はきれいになった。
Z軸のスクリューの動きも段違いでスムーズに改善した。

--------------
寸法精度に関しては、Y軸とZ軸方向はほぼモデルデータ通りだけど、X軸方向が小さく出来上がるという不具合が出てた。
フィラメント素材の収縮率かなとも思ったんだけど、それだと、Y軸とZ軸方向のサイズに問題が出てないのは何故?ってなる。
これは、グーグルで検索すると、ベルトのテンションの張り具合だということが分かった。
そこで、テンションの調節ができるように、ThingiverseからX軸ベルトテンショナーというパーツをダウンロードして印刷し、取り付けて調整してみた。
結果はバッチリ。
小物類であればどこを測定しても±0.1以内で仕上がるようになった。
さらに側面の見た目も調整する前よりきれいになった。

--------------
メインボードは、20時間ほど時間がかかるものを印刷してた時、負荷がかかり過ぎたのか、熱でチップが焼けて故障してしまったので交換した。
ステッパーモータードライバは、新しく購入したメインボードには付属してなかったので、ついでに購入。

正規品はA4988だけど、私が購入したのは格安で出回ってる互換品のHR4988で、所謂コピー品。

ドライバの電圧は0.8Aに調整してある。

--------------
エクストルーダーは、プラ製の純正品が劣化で割れてしまったので、アルミ製のものを購入して交換した。

--------------
ABL用のセンサーは、メインボードに繋ぐため、途中に自作した回路を組み込んだ。

このセンサーについては、もう1つのブログ(みんカラ)の2020年4月の記事に詳細を書いたが、ここにもまとめておく。

ABL用のセンサーは、LJ18A3-8-Z/BXという非接触型の近接センサー。
入力電圧は6~36V。

プリンターの電源が24Vなので、センサーの電源はそこから取った。

一方で、センサーの出力は制御基板のリミットセンサーへ入れるけど、リミットセンサーの動作電圧は5V。
センサーの出力はそのままだと24Vが流れるため、直接繋ぐと壊れてしまう。
単純に24Vを抵抗分圧で繋いでも動くが、トラブルがあってメインボードを壊すと嫌なので、フォトカプラを使い接続することにした。

【回路図】

手持ちの抵抗が1/4Wなので、念のために並列にしておいた。


基板部品を組んだら、これを収めるケースを3Dプリンターで作って本体に固定。
ファームウェアを書き換えて、動作確認をしながらセンサーの固定位置を微調整してABLの実装が完了。

--------------
ファームウェアについて。

ファームウェアは、marlinのバージョン1.1.9.1を使用。

所有してる3Dプリンタ用にConfiguration.hとConfiguration_adv.hの内容を書き換えてある。

以下に書き換えた箇所および重要な部分を書き出しておく。

■Configuration.h

125 #define BAUDRATE 250000 //250000

134 #define MOTHERBOARD BOARD_MKS_GEN_13 //#define MOTHERBOARD BOARD_RAMPS_14_EFB

152 #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //3.0

313 #define TEMP_SENSOR_0 1

318 #define TEMP_SENSOR_BED 1

383 #define DEFAULT_Kp 16.22 //22.2
384 #define DEFAULT_Ki 1.05 //1.08
385 #define DEFAULT_Kd 62.45 //114

531 #define X_MIN_ENDSTOP_INVERTING true //false set to true to invert the logic of the probe.
532 #define Y_MIN_ENDSTOP_INVERTING true //false
533 #define Z_MIN_ENDSTOP_INVERTING true //false
534 #define X_MAX_ENDSTOP_INVERTING true //false
535 #define Y_MAX_ENDSTOP_INVERTING true //false
536 #define Z_MAX_ENDSTOP_INVERTING true //false
537 #define Z_MIN_PROBE_ENDSTOP_INVERTING true //false

611 #define DEFAULT_AXIS_STEPS_PER_UNIT { 80,80,398,94.4962144 } //{ 80, 80, 4000, 500 }

636 #define DEFAULT_ACCELERATION 1500 //3000

677 #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN //アンコメント

698 //#define Z_MIN_PROBE_ENDSTOP //コメントアウト

719 #define FIX_MOUNTED_PROBE //アンコメント

776 #define X_PROBE_OFFSET_FROM_EXTRUDER -29 //ノズル位置からセンサーまでの距離
777 #define Y_PROBE_OFFSET_FROM_EXTRUDER -50 //ノズル位置からセンサーまでの距離
778 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0   //ノズルのZ方向のオフセット

834 #define DISABLE_X false //false
835 #define DISABLE_Y false //false
836 #define DISABLE_Z false //false

842 #define DISABLE_E false //false
843 #define DISABLE_INACTIVE_EXTRUDER true //true

848 #define INVERT_X_DIR true //false
849 #define INVERT_Y_DIR true //true
850 #define INVERT_Z_DIR false //false

855 #define INVERT_E0_DIR true //false
856 #define INVERT_E1_DIR false //false
857 #define INVERT_E2_DIR false //false
858 #define INVERT_E3_DIR false //false
859 #define INVERT_E4_DIR false //false

879 #define X_BED_SIZE 180
880 #define Y_BED_SIZE 205

883 #define X_MIN_POS 0 //0
884 #define Y_MIN_POS 0 //0
885 #define Z_MIN_POS 0 //0
886 #define X_MAX_POS X_BED_SIZE
887 #define Y_MAX_POS Y_BED_SIZE
888 #define Z_MAX_POS 150 //200

904 //#define MIN_SOFTWARE_ENDSTOP_Z //コメントアウト

975 #define AUTO_BED_LEVELING_BILINEAR //アンコメント

983 #define RESTORE_LEVELING_AFTER_G28 //アンコメント

1020 #define GRID_MAX_POINTS_X 3 //3で3x3の9ポイント 4で4x4の16ポイント測定

1024 #define LEFT_PROBE_BED_POSITION 40 //アンコメント 衝突回避のためオフセット デフォルトはMIN_PROBE_EDGE

1142 #define Z_SAFE_HOMING //アンコメント

1224 #define EEPROM_SETTINGS //アンコメント M500とM501コマンドの有効化

1427 #define SDSUPPORT //アンコメント SDカードからの読込を有効化

1435 #define SPI_SPEED SPI_HALF_SPEED //アンコメント SDカードの転送速度

1461 #define ENCODER_PULSES_PER_STEP 4 //アンコメント パルス数

1467 #define ENCODER_STEPS_PER_MENU_ITEM 1 //アンコメント 

1507 #define SPEAKER //アンコメント ビープ音を有効化

1530 #define REPRAP_DISCOUNT_SMART_CONTROLLER //アンコメント


■Configuration_adv.h

806 #define BABYSTEPPING //アンコメント ベビーステップを有効化

811 #define BABYSTEP_ZPROBE_OFFSET //アンコメント Zプローブオフセットと連動

ファームウェアについては以上。

--------------
スライサーのソフトはCuraを使用。

Start G-Codeは次のように記述してる。

G21 ; 長さの単位をmmに設定
G90 ; 座標を原点を基準とした絶対座標に設定
M82 ; エクストルーダーの押し出しを絶対位置モードにする
M107 ; 冷却ファンをOFF
M140 S{material_bed_temperature_layer_0} ; ベッドの温度を設定値へ上昇
M190 S{material_bed_temperature_layer_0} ; ベッドが指定温度に達するまで待機
G28 ; Home all axes
G29 ; ABL
M420 S1 ; レベリングを有効にする
M420 Z3 ; 指定した高さまでベッド補正をする
G1 Z15 F4000 ; Z軸を15mm上げる
M104 S{material_print_temperature_layer_0} ; ノズルの温度を設定値へ上昇
M109 S{material_print_temperature_layer_0} ; ノズルが指定温度に達するまで待機
G92 E0 ; エクストルーダーの位置を0に設定
G1 F200 E2 ; extrude 2mm of feed stock
G92 E0 ; エクストルーダーの位置を0に設定
G1 F5000
M117 Printing... ; LCDのメッセージ表示内容

捨て線のGコードも入れた方が良いのかな~。
ベビーステップで微調整するため、スカートかブリムのどちらかを必ず入れてるし、それで特に不都合はないので、今のところ捨て線はしてない。

--------------
以上

0 件のコメント:

コメントを投稿