BTT SKRV1.4Turboで No printer attached 再び

2021/02/16

前回は3DプリンタネタとしてBigTreeTech社の SKR V1.4 Turbo + TFT3.5を導入し、さらに「No printer attached」エラーが出たのでその対処を行いました。

 

さて、前回「No printer attached」エラーの原因を見つけて対応したつもりでしたが、タイトルにもある通り再発しました。

 

状況

まずは言葉の定義をしておきます。

・SKR V1.4 Turbo→"マザーボード"とします。

・TFT3.5 V3→"タッチパネル"とします。

 

SKRV1.4 TurboはAmazonでも販売されています。

 

SKR V1.4 turbo 基板 制御ボード コントロールボード+TMC2209 V1.2 モードドライバー ステップドライバ 5pcs 3Dプリンター部品 LPC1769-120 MHz周波数 VS SKR V1.3 / V1.4

Amazon
BIQU TFT35 V3.0 グラフィック スマートディスプレイ コントローラーボード 3Dプリンター用

Amazon

 

今回の現象はマザーボードとタッチパネルを接続しているにもかかわらず、タッチパネル側で「No printer attached」というエラーが出て、プリンタの操作が出来ない状態になります。

 

忘れないようにツイッターでも愚痴現象を呟いています。当時の臨場感を味わいたい方はツイートを参照ください。

 

原因

Confguration.hのSERIAL_PORTを色々弄ってい見ましたが、どんな組み合わせでも改善されませんでした。

 

最終的にはタッチパネルのロータリーエンコーダを長押ししてMarlinモードで起動したところ、「Err:MAXTEMP」というエラーが表示されたことがきっかけで解決しました。

上記のエラーから温度異常を検知して死んでいるということが分かったため、TEMP_SENSOR_BEDを998に変更して温度センサを無効化したところ無事起動しました。

 

第二の問題発生

さて、TEMP_SENSOR_BEDを998に変更すれば「No printer attached」エラーは解消されました。

しかし、このままだと温度センサが無効になっており、ヒートベッドの温度調整が出来なくなります。

当然TEMP_SENSOR_BEDの設定値を元に戻すのですが、そうしたらまた温度異常で「No printer attached」エラーが出ます。

 

この時点で半ば発狂しかけていますが、頑張って原因を探します。

 

温度異常の検知はBED_MINTEMPとBED_MAXTEMPで行っているようなので、値をいい感じに弄って温度異常とならないようにします。(今回はBED_MAXTEMP 1500とかにした)

 

その状態で起動すると、「No printer attached」エラーは消えますが、300度とか表示されます。

温度センサを触っても300度から変わりません。

 

 

いままでずっと同じソフトでそれなりに動いてきたのに、ソフトを疑うのはおかしな話です。

そのためハードを疑うことにしました。

「本当に温度センサが壊れているのか?サーミスタって温度に敏感なだけで、ただの抵抗でしょ?」とは思ったものの、一応点検します。

すると、見事に無限Ωでした。

 

基板やセンサー付近を良く見ていたら原因が分かりました。

下記画像を良く見るとはんだクラックしています。

なんだそんなことかー!

これならちょちょっと直して終わりだね!楽勝楽勝!

 

しかし直りません。

ここで一度発狂しましたが、コーヒーブレイクを入れて続けます。

 

基板側にも接触不良やクラックがあるのか?と思い、赤丸のところを重点的に確認しましたが異常はありませんでした。

センサを接続し、マイコンの足までの導通があることも確認しました。

一点気になる点としては、TH1やTH0ではプルアップ抵抗の両端を測ると4.7kΩでしたが、TBでは2kΩほどしかありませんでした。

チップ抵抗を外した状態で測るとちゃんと4.7kΩあります。

うーむ…回路図上はTH1やTH0と同じ構成なのですがどこかで3kΩほどの抵抗が生じているようです。

テスターをあてられる箇所は出来る限り確認しましたが、原因を特定することができませんでした。

もしかしたらマイコンの内部で壊れたのかもしれません。裏取りすることはできませんが…

(マイコンを一度外して再度抵抗値を測ってみれば確認できますが、100pinのQFPをリワークできる技術は私にはありません)

 

第二の問題解決方法

第二の問題に対しては成功法での解決はできませんでした。

仕方がないので諦めて裏技を使います。

 

ヒートベッドのポートが何かおかしいのは間違いないです。なので、余っている別のポートを使います。

今回だとTH1は未使用ポートのため、TH1ポートをTBとして使うようにソフトを変更します。

 

具体的な方法として、Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.hのTEMP_1_PINとTEMP_BED_PINを入れ替えればOKです。

 

無事、TH1にヒートベッドの温度センサを差すことで温度を取得することが出来ました!