Adventurer3を最新ファームにしたところ、FlashPrint4.6台で機器に接続できないというのが出てきていたので、ちょっと調べてみた。
- 追記 2021/10/09
ファームとFlashPrintのバージョン間での接続の可否について最後にまとめてみた。
最新ファームのバージョン
設定を見たところ、ソフトウェアのバージョンが1.3.1、管理バージョンが2.1になっていた。
そのひとつ前のもの(FlashForgeからダウンロードできたもの)は、ソフトウェアのバージョンは1.2.5、管理バージョンは1.6。
何が起こっているのか
管理バージョン2.1になったものをFlashPrint5.1でつないで、通信状況をネットワークプロトコルを調べてみた。
そうしたら、今のところ2点の問題点が判明した。他にもあるかもしれないけど。
M601のリターン値の変化
Adventurer3はM601のコードを送信すると、それに合わせてリターン情報を返してくれる。
このコードは、Adventurer3との通信開始を表すコードだと思っている。
古いファームの場合は以下のコードを返してきていた。
CMD M601 Received.
Control Success.
ok
新しいファームの場合は以下のコードを返すようになった。
CMD M601 Received.
Control Success V2.1.
ok
つまりV2.1という情報、たぶん管理コードのバージョン何だろうが、それを入れ込んでいたようだ。
FlashPrint 4.6はこれを異常コードとして認識し、接続できなかったものと思われる。
ちなみに、私が作成したAdventurer3制御プログラムはM601のリターン値を見ていなかったので、接続自体は問題ないようだった。
ファイル転送方法の変更
FlashPrint 4.6は接続自体できないので、Gコード情報の転送は行われないのだが、Adventurer3制御プログラムの方は、接続は可能だったのでファイルを送信してみたのだが、まったく受け取ってくれなくなってしまった。
そこで、FlashPrint 5.1でファイル転送のプロトコルを確認したところその部分にも変化があった。
今までの送信方法はAdventurer3の制御4で解析したようなプロトコルだったのだが、新しいファームではもっと簡単な形になっていた。
送信ファイルを4096バイトに分割し連続送信をするといったものだった。また最終ブロックは4096バイトに納めることもなく、必要な分だけ送信するといったもの。
前まであったAdventurer3側の送信できたかどうかの確認がなくなった。
こちらが古いファームでの転送プロトコル。
赤い線が4096+制御コードでブロック化した送信データで、青い線の部分が受信できたかどうかの返却情報。
こちらが新しいファームでの送信データ。
4096に分割した情報を連続して送信している。
Adventurer3との接続がTCPで誤り訂正自体が必要ないので、こういった形にしたのだろうか。
ということは、前までの通信プロトコルは、シリアル通信など誤り訂正を自分で行わなければいけない時代のものをそのまま使っていたということなんだろうか。
何にしても、上の対応をしないといけないな。
追記2021/10/09:ファームとFlashPrintの接続の関係
FlashPrint Ver5.xからはどのファームへも接続(ファイル転送)可能だが、Ver4.xからはVer1.6以下の管理バージョンのファームへしかファイル転送ができない。
ファームの管理バージョンは、ファームウェアをダウンロードした際のファイル名の中位に示されている番号になる。またAdventurer3のパネルからも見ることが可能。
ちなみにこの件、FlashForgeの対応はSNSで第1報を出したっきりその後なんもないのか?
サポートページのFAQやトラブルシュートの事例にぐらい入れておけよと言いたい。
コメント