3D プリンタのキットを買えば,インストールするだけでつかえる firmware がついてくる, もしくはダウンロードできるとおもっていたが,全然そうではなかった. ネットでいろいろさがしまくり,うまくうごかない原因をまたネットでさがしまわるということをくりかえさなければならなかった. まだ完了していないが,これまでにわかったことを書く.
Marlin firmware の問題点
「AnyCubic Kossel でやっとプリントできた」 に書いたように,2 種類の firmware をためして,Marlin というやつで収拾できるかとおもっていた. しかし,まだいろいろと信じられない問題があった.
上記の項目に書いたように,Marlin で一応は印刷ができるところまできた. ところが,時計のすすみかたがおかしい. 60 秒かかるはずの印刷が 40 秒くらいでおわってしまう. つまり,時計がただしく時刻をきざんでいない. Arduino の負荷がたかすぎるのが原因ではないかとかんがえて,つぎのパラメタをいじって計算量をへらしてみたが,かわらない.
#define DELTA_SEGMENTS_PER_SECOND 50
Marlin の弱点のひとつは,軌道の計算を浮動小数でやっていることだ. そのため,負荷がたかい. しかし,もとは 200 になっていた値を 50 にすることで,計算量は十分にすくなくなるはずだ. それでも時計のすすみかたがおかしいのはなにか根本的におかしいとおもうのだが,原因はわかっていない.
Marlin にはもうひとつ問題があった. 印刷がすすむにつれて,ゴミがたまるのか,印刷がだんだんおそくなって,ついにはとまってしまう. これではつかいものにならない.
Marlin のもうひとつの問題は,上記の項目にすでに書いたが,まだディスプレイで表示することに成功していないということただ. Configuration.h でそれらしい定義を選択しても,なにも表示されない.
Repetier firmware でのヒータ停止問題
そこで,再度 Repetier の firmware をためしてみることにした. ディスプレイの輝度を調整したためか,今度はディスプレイにちゃんと表示がでた. まえはならなかったブザーもなるようになった. Repetier の firmware では hotend のヒータがしばしばきれてしまう. その原因がきのうまでまったくわからなかったが,きょうはブザーとディスプレイがはたらくようになったので,すこしわかるようになった. サーミスタがはずれたときにヒータがとまるようになっているらしい. 温度の変化とその分散をもとめて,その異常を発見するとブザーがなってヒータをきるようになっている. その制御がうまくいっていない. 具体的にはつぎのパラメタだ.
#define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20 #define DECOUPLING_TEST_MIN_TEMP_RISE 1
これらはサーミスタが温度変化を検出しなくなったとき,または変化がはげしすぎるときにヒータをとめるためにつかわれている. これらの値をかえてテストした結果わかったのは,後者の値をちいさくする必要があるということだ. 0.1 までさげるとだいぶ検出頻度はさがったが,まだときどきヒータがとまってしまう. そこで,ついにプログラムをしらべはじめた. extruder.cpp というファイルのなかにつぎのような行が 2 回あらわれる.
if(extruderTempErrors < 10)
温度変化と分散をテストしてエラーになると extruderTempErrors というカウンタがカウントされる. 10 回カウントされるとエラーを検出してヒータがとまる. 10 を 50 にすることでエラー検出の頻度をさげてみた. それでも,印刷開始後まもなくヒータがとまる. その原因は,プリント・ベッドの温度がひくいため hotend が冷却されて,その温度がしだいに低下することだ. この冷却はかなりの時間,持続する. だから,温度の低下も継続的におこる. ヒータがとまらないようにするには,温度の低下を異常として検出するのをやめるしかなさそうだ.
Repetier firmware での温度測定停止問題
Repetoer の firmware に関しては,もうひとつ問題があった. キットではサーミスタがあらかじめうめこまれていて,その種類はわからない. そのため Configuration.h でその種類を適当に指定していたのだが,へたな設定をすると温度が計測されなくなる. 温度は正確にはかれていないのだが,現在の設定はつぎのようになっている.
#define EXT0_TEMPSENSOR_TYPE_1 8
Configuration.h にはつぎのような設定もある. ファンにはサーミスタはついていないのだが,つぎのようなパラメタもあり,その値によっては温度がはかれなくなる.
#define FAN_THERMO_THERMISTOR_TYPE 0
ここは初期値は 8 になっていたのだが,8 にすると温度がはかれなくなる. センサはついていないので 0 にしてみる.
コメント (3)
初めまして、Yanonと申します。
記事の投稿日からしてほぼ同時期に同じ中華kosselを買いました。
説明書が不十分で、電装関係のつなぎ方の説明がなく、
ネットで調べてやっと組み上がった所にファームウェアの問題にぶち当たって心が折れそうでした。。。
SDカードに入っていたAnycubic専用?らしきファームウェアは不完全な様で動く気配はないし、
ディスプレイは表示されないし、、あと、ディスプレイのカバーが違っていたり、
ディスプレイの固定パーツの形が左右で違っていたり、、、、、心が折れました(笑)
しかし、この記事を見つけた時の嬉しさたるや!文章では表現出来ない程です!!
非常に参考になりました、またこのプリンターを動かしてみたいと思えてきました。
有難うございます。
投稿者: Yanon | 2016年08月16日 15:49
日時: 2016-08-16 15:49
Yanon さん,著者の金田です.
3 年前に米国製のデルタ型 3D プリンタ (Rostock Max) を買いましたが,そのときは AnyCubic Kossel よりはるかに苦労しました.
3 年でずいぶん進歩してあつかいやすくなったという感想をもっています.ただし,Rostock Max はファームウェアに関しては
問題なく動作しました.中国製のはプログラムがいいかげんなことはたしかなようです.
投稿者: 金田 | 2017年02月25日 01:12
日時: 2017-02-25 01:12
はじめまして.
最近、anycubicのKosselデルタ型を組み立て始めたのですが、ファームウェアをインストールするところで立ち往生してしまっています。プログラムの知識は初心者です。もし、お時間あれば教えて頂きたくコメントさせて頂きました。
まず、ドライバーはArduino1.6.4でネットからダウンロードしました。
そして、ファームウェアは付属SDの"Marlin.ino"をクリックし、なぜか[failed to open sketch]とエラーが出た後、Arduinoが起動しました。その後、説明書通りにBoardには「Ardino Mega or Mega2560」、Processorには「ATmega2560」、そしてPortには「COM4(Arduino mega or mega2560)」と説明書では選択しているのですが、「COM7」としか表示されませんので、それを選択しました
これはこのまま作業を進めても良いのでしょうか?どうなるか心配でプリンターは動かしていません。
ご教授頂ければ助かります。
投稿者: syanher | 2017年03月24日 11:36
日時: 2017-03-24 11:36