TRONXY X5SA Pro 3Dプリンター ~Klipper化~

2021年8月ごろ、TronXY X5SA Proという3DプリンターをAMAZONで買いました。

当時割引が利いてて、33,000円でおつりが来ました。かなり安かったです。

Amazon : TronXY X5SA Pro

スペック

成形技術FDM(熱溶解積層法)
印刷サイズ330*330*400mm
印刷速度20〜100mm / s
印刷色単色
位置決め精度X / Y:S0.00625mm、Z:S0.00125mm
電源AC 110-220V、DC 24V 360W
接続方法SDカードとUSBケーブル
スライスソフトウェアCura、Repetier-Host
推奨フィラメント直径1.75mm、PLA/TPU/ABS/PETG/HIPS/WOOD

こんな感じ。

330x330x400mmの大きなビルドスペースと、CoreXY、4本のリニアロッドと2本のZ軸。

この組み合わせは大変よさげだったので、くそやすったし衝動買いしました。

最初の組み立ては6時間ぐらいかな。

標準のファームが気に入らず、すぐにMarlin化しようとしました。

が、ここからが苦難の連続。。。

Marlinを入れるだけで一苦労

この3Dプリンター、実はかなり曲者です。

まず、ハード的は組み方が少し工夫が必要です。

スライドレールの押さえつけるテンション調整と、ABモーターのプーリーの位置が肝です。うまくいかない時は、抵抗がありすぎてレイヤーシフトします。

問題は使用しているボードにあります。

Chitu V6 というボードを使用しているのですが、これ普通にアップデートすると起動不能にります。

Marlinを出力すると、frimware.binというのができるので、普通はSTM32CubeProgで書き込むわけですが、Bootloaderが入っており、これが消えると起動しなくなります。

なので、Marlin化するときはupdate.cbdというファイルをSDにいれて、bootloaderによる書き換えが必要です。

参考URL:https://angryadmin.sesc.dev/posts/tronxy-marlin/

上のリンクにもありますが、まずバックアップを推奨します。

私はBootloaderがぶっ飛んで、かなり苦労しました。

ぶっ飛んじゃった方はこちらのYOUTUBE参照:https://youtu.be/N1FaKO5QziE

この方がbootloaderとか初期のファームウェアのバックアップを公開してくれてます。ただし、X5SAでもバージョンが違うので、上のリンクのAmazonのプリンターに入ってるファームと異なります。Bootloaderだけ救助するのが良いでしょう。

そして次なる問題が。

レイヤーシフトが収まらない

レイヤーシフトとは、XYZのどれかの軸がステップを見失ってどんどんずれていく現象です。Marlin化したら一瞬大丈夫なのですが、1時間も出力すると全然ダメ。

こんなイメージ。

これから泥沼に入ってしまい、速度を落としても加速度を落としても駄目で、3カ月ぐらい放置していました。

粗大ごみに出そうと思ったが、何気なくKlipper化

もうあきらめてて、捨てようにも捨てられなくて、ずっと放置してたんですが、本日何気なく余ってるRaspberry pi 400 (キーボード一体のRaspberry pi 4みたいなやつ)があったので、こいつにMainsailOSをインストール、Klipper化することにしました。

そもそもKlipper化とは、Raspberry piを主に計算として使い、メインのコントロールボードの制御を補助してやろうという代物です。検索するとたくさん事例が出てくると思います。

これも実は一苦労しました。

最初はBootloaderの件忘れて、またぶっ飛ばしてしまい、出戻り。

次にオフセットして書き込んでもうまくいかず。

原因はKlipperをビルドするときのオプションにありました。

Klipperのビルドオプションで、STM32F103を選択後、BootloaderにChitu V6 Bootloaderを選択、さらに、USBをSerial on USART1 PA10/PA09に変更します。

その次に、Klipperフォルダの下で、

./scripts/update_chitu.py ./out/klipper.bin ./out/update.cbd

を実行、update.cbdをコンバートして作ります。

これをbootloaderが生きているボードにSDカードを差し込んでアップデートします。

2回ビープ音が鳴ったら成功です。

がここにも罠が。

メインボードにはスーパーキャパシタが入ってるようで、電源を切っても30秒ほど電源が落ちません!余裕を見て、電源を落としてから3分ほどしてから再起動してください。

この情報はどこにも書いておらず、気が付くのが遅れました。

そこまできて、やっとKlipperの設定です。

printer.cfgはこのページを参考に作りました。参考URL:https://gist.github.com/cab404/b7bcbb0cd592a14515493694719de59b

printer.cfg

# This is a Klipper configuration for TronXY X5SA, with CXY-V6
# motherboard.

#            === FLASHING WITH STOCK BOOTLOADER ===
# You should make firmware for STM32F103 with bootloader offset
# at 0x8008800 (Chitu v6 Bootloader) and serial (on USART1 PA10/PA9)
# communication.

# Use "./scripts/update_chitu.py ./out/klipper.bin ./out/update.cbd"
# after make to generate update.cbd.  Put `update.cbd` onto SD card,
# and reboot the printer.  It will be automatically installed, and you
# will be able to update it this way.

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 5000
max_accel_to_decel : 5000
max_z_velocity: 25
max_z_accel: 30

[stepper_x]
step_pin: PE5
dir_pin: !PE6
enable_pin: !PC13
microsteps: 16
rotation_distance: 20
endstop_pin: !PG10
position_endstop: -1
position_min: -1
position_max: 330
homing_speed: 50
homing_retract_dist: 10
second_homing_speed: 10.0

[stepper_y]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PE4
microsteps: 16
rotation_distance: 20
endstop_pin: !PA12
position_endstop: 0
position_max: 330
homing_retract_dist: 10
homing_speed: 50.0
second_homing_speed: 10.0

[stepper_z]
step_pin: PB9
dir_pin: PE0
enable_pin: !PE1
microsteps: 16
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -2

[extruder]
step_pin: PB4
dir_pin: !PB5
enable_pin: !PB8
microsteps: 16
rotation_distance: 3.855
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PG12
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA1
control: pid
pid_Kp: 18.831
pid_Ki: 0.821
pid_Kd: 108.044
min_temp: 0
max_temp: 250
max_extrude_only_distance: 300
pressure_advance: 0.5
pressure_advance_smooth_time: 0.1

[heater_bed]
heater_pin: PG11
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
min_temp: 0
max_temp: 130
pid_Kp: 73.932
pid_Ki: 1.521
pid_Kd: 898.279

[heater_fan hotend_fan]
pin: PG14

[fan]
pin: PG13

[controller_fan drivers_fan]
pin: PD6

[filament_switch_sensor sentinel]
pause_on_runout: True
runout_gcode:
  M25
switch_pin: PA15

[output_pin beeper]
pin: PB0

[safe_z_home]
home_xy_position: 165, 165
speed: 50
z_hop: 10
z_hop_speed: 5

[bed_screws]
screw1: 5, 5
screw2: 165, 5
screw3: 325, 5
screw4: 5, 325
screw5: 165, 325
screw6: 325, 325

[bed_mesh]
speed: 120
probe_count: 5, 5
horizontal_move_z: 5
algorithm: lagrange
mesh_min : 20, 20
mesh_max : 290, 310
mesh_pps: 0

[probe]
x_offset: -40
y_offset: 0
pin: !PG9
speed: 30
#z_offset: 2

[input_shaper]
shaper_freq_x: 54  # frequency for the X mark of the test model
shaper_freq_y: 40  # frequency for the Y mark of the test model

[virtual_sdcard]
path: ~/gcode_files

[display_status]

[pause_resume]

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    ##### set defaults #####
    {% set x = params.X|default(180) %}      #edit to your park position
    {% set y = params.Y|default(200) %}      #edit to your park position
    {% set z = params.Z|default(10)|float %} #edit to your park position
    {% set e = params.E|default(1) %}        #edit to your retract length
    ##### calculate save lift position #####
    {% set max_z = printer.toolhead.axis_maximum.z|float %}
    {% set act_z = printer.toolhead.position.z|float %}
    {% set lift_z = z|abs %}
    {% if act_z < (max_z - lift_z) %}
        {% set z_safe = lift_z %}
    {% else %}
        {% set z_safe = max_z - act_z %}
    {% endif %}
    ##### end of definitions #####
    SAVE_GCODE_STATE NAME=PAUSE_state
    BASE_PAUSE
    G91
    G1 E-{e} F2100
    G1 Z{z_safe}
    G90
    G1 X{x} Y{y} F6000
	
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
    ##### set defaults #####
    {% set e = params.E|default(1) %} #edit to your retract length
    G91
    G1 E{e} F2100
    G90
    RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
    BASE_RESUME
	
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
    TURN_OFF_HEATERS
    CLEAR_PAUSE
    SDCARD_RESET_FILE
    BASE_CANCEL_PRINT

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [probe]
#*# z_offset = 2.800
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	-0.076250, -0.007500, -0.061250, -0.101250, -0.108750
#*# 	0.036250, 0.088750, -0.001250, -0.042500, -0.060000
#*# 	0.053750, 0.071250, -0.023750, -0.052500, -0.093750
#*# 	0.036250, 0.072500, -0.036250, -0.056250, -0.082500
#*# 	-0.316250, -0.256250, -0.330000, -0.313750, -0.313750
#*# tension = 0.2
#*# min_x = 20.0
#*# algo = lagrange
#*# y_count = 5
#*# mesh_y_pps = 0
#*# min_y = 20.0
#*# x_count = 5
#*# max_y = 310.0
#*# mesh_x_pps = 0
#*# max_x = 290.0

おおむねこんな感じです。

そのままでも動くと思いますが、私は責任取れませんので慎重にお願いします。

Klipperにしたら、突然の快調プリント

最新のKlipperにしたら、いきなり快調です。

レイヤーシフトもなにもなく、Pressure Advanceも効きます。

Pressure Advanceは解説によると、ボードにはんだされているTMC2225ドライバーを外部からserialで書き換えろとありましが、何もしなくても大丈夫です。MarlinのLinearAdvanceだとモーターが止まるので必要っぽいです。

脱調するかなと思って速度を200mm/sec、加速度を5000mm/sec^2まで上げましたが、全然大丈夫でした。

筐体の剛性が思いのほか高く、リギングも出にくいです。input shaperなしでも4000mm/sec^2まで出てきません。共振点もX軸が54Hz、Y軸が40Hzとでかい割にかなり高いです。

いつものお船を印刷しましたが、1時間ジャストでこの仕上がりです。

あんまりきれいじゃない写真ですいません。PolymakerのPolylite PLAで出してみました。ノズル温度200度、ベッド温度50度、送りは60-100mm/secあたりです。

細いところこそボーデン式の影響で多少荒れてますが、外周の送りは100mm/secも出てるので、十分だと思います。

Pressure Advanceのおかげで、ライン同士の隙間も少ないです。

買ってから8カ月かけて実用的になった

まとめです。

  • TornXY X5SA Proは安いが、初心者向きじゃない。少なくともKlipper化は必要。
  • ハードウェア的には大きな問題はないが、細かいところは工夫必要。
  • Marlin化は上手くいかない。やめた方が良い。
  • Bootloaderをぶっ飛ばさないように注意。
  • 最終的にはきれいに出るが、上級者向け
  • 安いからって手を出すと後悔する(自戒)

以上です。

参考になれば幸いです。

Polymaker CoPAフィラメント~造形条件がわかった~

最近、マイクロドローンの造形を10種類くらいのフィラメントで試しまくってるshyachiです。

さて、表題の通りなのですが、Polymaker CoPAフィラメントの造形条件がやっと出ました!二ヶ月くらい試行錯誤した気がする。

まずはフィラメントの紹介。

PolyMide CoPA (Nylon) フィラメント

いわゆるナイロンのフィラメントで、高い靱性・強度・耐熱性を持ちます。通常のナイロンのフィラメントは高温のノズル温度、保温チャンバーがないといけないのですが、このフィラメントは基本不要です。

主な造形条件は以下の通り。

推奨プリント温度260 °C
推奨プリント速度40 mm/s
推奨ホッドヘッド温度20~50 °C
Polymaker HPから引用

この数字、なんで温度範囲と速度が非常に狭いのかなと思ってたんですが、理由がありました。

温度と冷却と湿気に極めて敏感なフィラメント

実は上記の数字、速度とホッドベッド温度は多少のずらしが効くのですが、ノズル温度は極めて精密に決める必要あります。

具体的には255℃だと積層間の接着が甘くて使い物にならず、265℃だと強すぎてサポートが剥がれません。

なので、温度は精度良く260℃固定です。

次に冷却ファンですが、環境によりますがこの強さで積層の剥離性を調整します。私の環境だと0-25%だと冷却が弱すぎて剥離性がなく、100%だとパキパキになってしまいます。

なので50%前後で微調整します。

速度は40mm/sec以下が良いと思います。それより早く造形できますが、剥離性と温度の関係がシビアすぎて高速な造形に向きません。

湿気にも注意が必要とHPにも記載があるとおり、常時10%以下の絶乾状態をキープする必要があります。私はPolyboxにオゾという超強力乾燥剤を2個突っ込んだ上、隙間をテープでぐるぐる巻きにしてあります。

オゾ

この方法で3~4週間、湿度を10%以下に保つことが可能です。

ちなみにどれくらい湿度に鋭敏かというと、外気に触れてるフィラメントは2時間くらいでふにゃふにゃに湿気るくらいです。

では長所は?

微細な造形でもきっちり層間の接着が可能、かつ強度と靱性が高く、耐熱性もある超強力フィラメント

これはマイクロドローンのフレーム製作ですべての条件を満たした唯一のフィラメントでした。PEEKとかRENYとかスーパーエンプラが使えればそれが良いはずですが、ご家庭では利用不能なので…

マイクロドローンは細い立体的な造形部分が多く、直径2mmの柱が靱性を持っていないといけません。これを満たすフィラメントはかなり少ないです。ほとんど積層間で折れちゃいます。

また、電波の送信部の温度が80度を超えることもあり、PLAなどは耐熱において耐えきれません。さらに極力軽量にしなくてはいけません。

これらをすべて満たすフィラメントを散々探しましたが、PolymakerのPolymax PLAがかなりいいところまで行っていました。でも、最終的には靱性が高いPolymide CoPAが最高です。

いやー、ここまで温度にシビアなフィラメントを扱ったのは初めてですが、決まるとすげーいい感じです!

おすすめですよ。

レイヤーシフト問題再び

昨日からずっと3Dプリンターの不調と戦ってる。

Marlinでのレイヤーシフトする不具合で、自分のマシーンはY軸にずれる。

調べれば調べるほど原因が多彩になる厄介なやつで、TMCのモータードライバの動作とMarlinのコードが合致しないときに起こりやすいようです。

ひとまずいくつか考えられる対策のうち、JerkとAccelerationを下げる方法を取ることに。今ところ順調。

前回はドライバーをA4988したら治ったんだけど、これは爆音プリントになるので避けたい。どっちにしても早く治したいっすね。

構成は

  • プリンター名:FORMBOT T-REX 2+
  • モータードライバ:TMC2100を全部の軸で、16μstepのspreadcycle
  • モーター電流:600mA付近と低めで運用
  • ファームウェア:Marlin 2.0.7.2
  • 使用オプション:Linear Advance・Junction Deviation・S-Curve Acceleration・Backlash Compensationなど
  • 加速度設定:移動軸は500mm/minで統一
  • Jerk設定:0.025
  • その他:PLAで印刷。2時間の印刷で4回以上レイヤーシフト。すべてY軸。

こんなもんですかね。

今ちょうどテストしてて、加速度下げる前にレイヤーシフトしてたポイントは通過したっぽいです。このまま順調に終わるといいなぁ。

Colorfabb XT-CF20 メモ書き

今日うまく造形できたのでメモ書き。

まず、高温対応バレルはうまく造形できなかった。途中で溶けて詰まる。なので、テフロンチューブが入ってる通常のバレルが良い。

次に、ノズル系は0.4mmが良い。これが大きくなると、Bedから自身を剥がしてしまう。

エクストルーダ温度は240度、ベッドは70。

フィラメントの使い方:Colorfabb XTは低温でゆっくり造形するのが吉?

こんにちは。

久々の投稿ですが、今回は、フィラメントのColorfabb XTについての使い方メモです。そもそも、どんなフィラメントかは次を参照してくださいね~。

Colorfabb XT の公式ページ

このフィラメント、いくつか特徴があるのですが、おおよそPETGと同等です。特段の長所はアメリカの食品衛生法をクリアしてるところでしょうか?つまるところ、食器に使っても安全です。

で、今回書きたいことは

え、推奨温度間違ってない?説

ですw

このフィラメントは推奨温度が240-260℃、ベッド温度は70度くらいとされています。

ベッド温度はいいんですけど、エンドの推奨温度、240℃は高すぎるっぽいのです。

結論から言うと、225℃できれいに造形できました

これは推奨設定より15℃も低い温度です。しかし、射出不良もなく、240℃だとでてしまう糸引きがほぼなくなります。

ただし、送りは30mm/secほどのゆっくり目が良いようです。なぜかというと、粘度が高いフィラメントのため、下の層にくっつかずにエンドにひっついて整形不良を起こしやすいのです。

なのでまとめると、

Colorfabb XTの射出条件

  • エンド温度:225℃
  • ベッド温度:70℃
  • 射出定数:0.95
  • 送り速度:30mm/sec

このあたりが重要な条件になります。推奨温度外というのがかなりびっくりですよね。

防湿庫DS-51C レビュー (フィラメント保存用)

最近はジメジメとした梅雨の時期に入りましたね。

3Dプリンターのフィラメントには大敵の時期です。

私は先日から防湿庫を導入して、フィラメントを保存するようになりました。

これが効果絶大で、湿気を吸ったフィラメントも数日で復活しました。

“防湿庫DS-51C レビュー (フィラメント保存用)” の続きを読む

3Dプリンター「Formbot T-REX 2+」のファームウェア更新のあとがき

端的にいうと次のことをしました。

  • T-REXのファームウェアをメーカーの標準(Marlin 1.1.x系)からMariln 1.1.9に書き換えました
  • 手順は、Formbotからソースコードを直接もらってから、そのソースコードを参考に最新のファームウェアに書き換えた

というだけです。

でも、これが想像以上に大変で、なおかつ効果がありました。

“3Dプリンター「Formbot T-REX 2+」のファームウェア更新のあとがき” の続きを読む

【2019年】あけましておめでとうございます

新年明けましておめでとうございます。

本年もよろしくお願いいたします。

さて、挨拶はそうそう、3Dプリンタのフィラメントで新しい知見が得られたので紹介いたします。

今回はこちら!

Colorfabb XT-CF20
 カーボン配合コポリエステルフィラメント
 高剛性・高強度

Colorfabb XT – CF20 カーボン配合コポリエステルフィラメント
“【2019年】あけましておめでとうございます” の続きを読む