BTT SKRV1.4 Turbo + TFT3.5で「no printer attached」が出る

2020/10/11

3Dプリンタの制御基板としてBIGTREETECH社の SKR V1.4 Turboと、タッチパネルの TFT3.5 V3を購入しました。

初期に入っていたファームウェアだとそれっぽく動いていたいのですが、

自分でビルドしたファームウェアを使うとタッチパネルに「no printer attached」と出て、タッチパネルからプリンタ操作ができなくなりました。

解決までにいくつかハマったので、メモしておきます。

 

状況の詳細

前提

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

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

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

 

・Marlinモード→タッチパネルで選べる2モードの内の1つ。古典的な画面で操作できるモードです。

・タッチモード→タッチパネルで選べる2モードの内の1つ。BIGTREETECH社が開発したタッチ操作できるGUIなモードです。

 

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」というメッセージから、マザーボードとタッチパネル間のシリアル通信が正常にできていないものと思われます。

この予想からハード的な問題、ソフト的な問題、両方考えられます。

 

詳細

確認できた症状を箇条書きで示します。

・初期状態(ファームを書き換える前)だとマザーボード、タッチパネルともにそれっぽく動いていた。

・自前でビルドしたファームを焼くと、PC⇔マザーボード間のシリアル通信は正常にできており、Pronterface等でプリンタ操作ができていた。

・ただし、タッチパネルには「no printer attached」と表示され、プリンタ操作が一切できない。

・マザーボード⇔タッチパネル間のシリアル通信のボーレートを変更する設定を全通り試してみたが改善せず。

・マザーボード⇔タッチパネル間のケーブルは5pinケーブル+10pinケーブル2本の計3本あるが、考えられる全通りの接続方法を試しても改善せず。

・タッチパネル側のファームバージョンを色々変えてみたが改善せず。(このissueを参考にした)

 

といった具合で、細かく書ききれないところも色々試しましたが改善せず。

 

解決方法

マザーボード側のファームのシリアルポートの設定が正しく無いようでした。

Configuration.h内にある

SERIAL_PORT の設定を 0 → -1に、
SERIAL_PORT_2の設定を -1 → 0に、修正する必要があります。

また、この設定はWiFiモジュールの有無等でも更に変わるようです。

正確な情報は探せなかったので色々試してみるのが速そうです。

 

おまけ(というか個人的なメモ)

結果的にタッチパネルのファームは自分で弄る必要はありませんでしたが、マザーボードのファームは弄る必要がありました。

その際にどの辺を触ったのかをメモしておきます。

SKR V1.4 Turbo + TFT 3.5 V3の組み合わせで動くファームの組み合わせになりますので、同じ組み合わせでの動作を目指している人には参考になると思います。

 

ベースのソフトはこちらです。

 

この中で弄るべきところは2ファイル。

Marlin/Configuration.h

・SERIAL_PORT 0 → -1

・SERIAL_PORT_2を有効にし、 -1 → 0

・BAUDRATE 250000 → 115200

・MOTHERBOARD BOARD_RAMPS_14_EFB → BOARD_BTT_SKR_V1_4_TURBO

・TEMP_SENSOR系をいい感じに

・X_DRIVER_TYPE系をいい感じに

・DEFAULT_AXIS_STEPS_PER_UNITをいい感じに

・EEPROM_SETTINGSを有効化

・REPRAP_DISCOUNT_FULL_GRAHIC_SMART_CONTROLLERを有効化

 

platformio.ini

・default_envs mega2560 → LPC1769

 

以上。