西山 茂丸 について

組み込みマイコンでエンジニアを続けてきました。今の時代で見えない部分についても体験してもらってより深い理解を得てもらいたい広報教育活動をしています。

3Dプリンター障害解析 step by step

3D Printer Robo3D の故障

P1030165

第一発見症状
X resetで止まらない  retryの末に最終的に止まった?

確認項目 12/12

  1. X-end stop スイッチの動作をRAMPSボード側で確認 ーー> OK

2) MOTORドライバー基板のX軸の調整値をいじりながら反応をみる–> X軸の動作はスムーズに動かない。

3) RAMPSボードの目視確認–>NG Regulatorでコネクター接触部において一部溶融して接点ネジ困難
==>予備のRAMPSボードに交換、MOTORドライバーは付け替えで現状品を換装

MatterControl(制御ソフト)から確認
3) ATMEGAを切り分けで、交換したところ、シリアルポートがUbuntu(Linux1)側からttyACMxとして見えないという状態
–> Firmwareの書き換えが必要と認識して書き込み環境からNV, イメージを同一にすべく行ったが解決せず。
4) 同一品として認識していたATMEGA2560がチャイナ仕様でUSBがCH340だったことが判明。オリジナル版は、ATMEGA16UがUSB処理として搭載されていて、これはttyACMxとしてLinux側ではハンドリングされていた。–> CH340対応のカーネルドライバーモジュールを探索して、これをbuildしてinsmodして検知できたが、そのデバイス名は/dev/ttyUSBxとなった。Windowsと違ってデバイスのクラスがそこに見えてしまうのでアプリ設定が変更になる。

12/13 対応
1) 温度センサーがエクストルーダー側が計測できない。差し替えでRAMPSポートはOKなので、センサーサイドの抵抗を確認すると途中に作成した延長ケーブルで接触不良(断線っぽい)
–> 延長ケーブルの修理(圧着不良なのでそのラインのみ雌雄の端子を圧着した別の線を作成してハウジングに挿入した)でセンサー系統は解決、以前発生していた温度計測が0とフリッカー表示していたのは、これが原因だったらしい。

head温度のループ制御が崩れると制御不能に陥るので、これは肝心

2)次に各モーター制御を確認するのだが、モータードライバの調整について要調査だ。

年が明けての報告 1/5

突然モーター制御が一切動作しなくなった。切り分けとしてはMatterControlのメニューからのヒータープリセットと、その温度設定に伴う温度センス報告は正しく期待通りに動くのだが、モーター制御でX,Y,Zの各軸の移動指示が動作しない。RAMPSシールドやATMEGAの組み合わせや搭載すべきFirmwareのイメージ書き換えなどでも解決しない。

構成しているハードウェア結線側の確認を逐一行なったが不確実なQIコネクター箇所などの発見程度で現在の問題解決にはつながらず、将来の問題予防にはなったが・・・。

ハードウェアの組み合わせ変更を行い試験を続けたが、進展を見ないまま新年を迎えた。MatterControl以外の環境は現在は搭載していないので旧環境ReptierHostを搭載しなおしてみるかと思っていた。MatterControlの画面に残っている印刷Queueが気になり、何気に消していった。消し切ったところで、ヘッドの位置制御のコマンドが動作しはじめた。

使っていた印刷クライアントソフトの問題だった。このMatterControlは、印刷Queueが残っている限りは、印刷に関係するヘッドの位置制御などが出来ないということに思いが至った。

新しい、カードにしてしまっていたので各軸の制御を確認していき、Z軸の駆動能力が足らずにいることが判明したのでドライバー基板のポテンショメーターを時計回しにして増やしていき解決に近づくのを見つけかかった時に、煙が上がった。ドライバー基板が能力を超えたようだ。Z軸は二つのモーターを駆動する設計なので無理があるようだ。使っていない第二Extruder用のドライバー基板と差し替えて調整をして動作に至った。

クライアントソフトのスレッドで確認手順について問い合わせを早めにしておけば、よかったと悔やまれる。

Robo3D故障対応

3Dプリンターで昨夜、出力をしていたら朝になって途中でおかしくなっていた。
確認したところコマンドが正しく通らなくなっていた、コントロール側からみるとX軸のリセットをするとセンスが正しく動いていないようだった。切り分けを進めるとセンススイッチに問題はなく、どうもシステムとしてFirmwareが正しく動作してないようだった。いったんリセットスタートをCliantのUbuntuも3Dプリンターともに行うと、ATMEGAの本来動作すべきUSB動作が正しく立ち上がらない状況が起きていた。「/dev/ttyACM0」がUbuntuからは見えていないという状況だった。

DSC_0487

溶けたPoroluシールド

RampsシールドとATMEGAを取り外してみて、ATMEGA単体では動作しているようで/deb/ttyACM0が見えているのだが、シールド込みではおかしくなるようだった。シールドを交換してみようとすると、取りついているターミナルの一つがうまくネジが回らない状況だった。よくみると、ターミナルに当たっていたレギュレータでターミナルのハウジングが溶けていた。
交換した予備のシールドの当該箇所を見てみると、放熱器をつけているではないか。レギュレータが壊れたのかどうかの確認は、後にして、まずは交換した。動作していたモータードライバのモジュールはすべて換装しなおした。

DSC_0489

スマホとつなぐインタフェース

DSC_0485
iPhoneやAndroidと繋ぐ最も簡易なインターフェースはイヤホンジャックです。4極のマイク兼用で双方向通信が実現できます。オープンソースで提供されていますが、スイッチサイエンスの取り扱いで製品も入手できます。4極のジャックとSMD部品実装済み基板です。ご依頼のあったものですが、里でも在庫いたします。@1023

少しだけ追加しました

imageimage
半田付けは、おろかブレッドボードでのジャンパー挿しもいらない環境が少しだけあります。マグネットで接続する構造で電子工作の不思議を体感してもらうというのが目的ですが、カスタムブロックを開発するキットも入手しました。

Robo3D Auto Level 改造メモとか

image

Lead Screwの更新でZ軸の安定化とAuto Level機構が合わせてつけられるようになった。調整をしているのか、整備をしているのか、バグ取りをしているのか不明なのだが時間がかかった。まあ、二年ほど使ってきた3Dプリンターで今更ながらに原理機構について学ぶことがある。

Robo3Dは、RepRapというOpenSource/OpenHardの3Dプリンタープロジェクトの一つである。ABSとPLAの双方に対応していて、大きなサイズの印刷物が作れて安いということで登場した米国ベンチャー(KickStarterで立ち上げ)の製品だ。ABS樹脂のほうが強度がありそうだということで、このフィラメントをまとめ買いしたのだが安定に印刷するという目的で完成品を購入したつもりだったが、ABSは作成途上の温度管理が難しくオープンエアーな構造の機械では難しいらしく、おもにPLAを使ってきた。

3Dプリンターの調整で、めんどくさいのはヘッドを清掃交換したりした際に生じるZ軸のゼロ点調整である。紙や隙間ゲージを使って0.12ミリくらいのギャップに調整するわけである。その後のプリンターでは自動調整機構が搭載されてきたので、この機械にも入れることにしたというわけだ。

Auto Levelの肝は、従来の調整したポジションからどれだけヘッドを下げたら、当該センサーがシグナルを出すかということであり、その値を測定してプリンターの個体値としGコードで与えることだ。そのコマンドはM565で、今回は従来通りに隙間ゲージで最適となるギャップを設定しておき、そこから3Dプリンター制御ソフトでZ軸を0.1ミリ単位で下げていくということで割り出した。制御している側から見れば、信号がきた時点が、どれだけ先に行ってしまっているのかということになる。

最後の調整は、第一レイヤの引き回し具合で確認することになる。正しく押し付けて伸びた樹脂として引き回しが出来ていれば完了です。のしが足らない場合には、にょろにょろとした引き回しになってしまいます。その状態ではプリントが外れてしまいます。

設定データを、保存してしまえばマイクロスイッチの取り付けさえしっかりしていれば、あとは、プレートに様々なシートや糊を貼ってもチューニングされた出力が始まります。

調整中に気づいた改善修正項目メモ
1) 出力ヘッドの取り付けボルトの二組のうち、一つがなくなっていた。
これで印刷がぶれていた可能性がありました。–>修正済
2) 背面にある電源スイッチとインレットがおれていました。–>同様なものを手配しました。立てかける時には、必ず電源ケーブルを抜きましょう。
3) 何度かMatterControlの画面で温度表示が0と表示値を繰り返す現象がおきた。–>要調査
Arduino Megaのリセットを行い復旧はした。
4) Z軸のモーターを変えたことでmotorドライバーの出力が不足して振動するのみとなった。–> 当該のモータードライバー基板のポテンショを右回しして出力を増やすことで動作した。モーターでばらつきがあるというよりも、プリンター側のメカが変わったので必要なトルクが増えたということだろう。
5) AutoLevelのセンサはマイクロスイッチなのだが取り付けのM2のネジが効いていない気がする箇所がある。ロック処置が必要。
6) 5)がおかしくなった場合には、フィラメント出力が止まってしまう可能性があるが、位置が下にずれてフィラメントが出なくなった場合には、エクストルーダーのドライブギアの切り込みでフィラメントが削れてしまっているのでフィラメント送りが進まなくなっている。ヘッドの温度を加熱設定してフィラメントを手操作で押しだすことで解消する。

P1030165

Arduino用のユニバーサルシールド基板

Arduinoで周辺I/Oを作りこんだりするカスタムシールド作成用の基板です。

image
UNOに形を合わせてある下側の基板はスイッチサイエンスのバニラシールド@400
右上側の基板は秋月電子取り扱いの基板@200(なお赤基板が割安とのことです)
左上側の基板はAitendo取り扱いのシールド作成基板@200