Adventurer3の制御2

Adventurer3との通信方法が分かったので、次にSimplify3Dとの通信に関して調査。

COM接続

Simplify3Dは、COM接続で機器の制御をしている。そこで、com0comの仮想COM経由でプログラムと通信し、どのような、プロトコルでやり取りしているかを調査した。

ちなみにcom0comは、以下のような特徴を持っている。

Null-modem emulator:ヌルモデムエミュレータ( com0com )は、カーネルモードで動作するWindows用の仮想シリアルポートドライバです。Null-modem emulator(com0com)をインストールしたマシンでは、仮想COMポートのペアを無制限に作成することができます。そして、作成したペアを使ってCOMポートを使用するアプリケーションと接続することができます。

Simplify3Dとの接続と通信内容

Simplify3D側の設定

プログラムとの通信に先立ち、ファームウェアの設定を変更した。Adventurer3との通信では、機器側から接続時に認識コードが送られてくるわけではないので、その部分のみを修正。

Dreamerのファームの、コミュニケーションの起動コマンドを待つのチェックを外し、これをAdventurer3用のファームとしてプロファイルを作成。このファームをFFF設定-GCodeのファームウェア設定側に適用した。

通信内容1

マシンコントロールパネルより接続を行うと、どのようなコマンドが出るのか、判明したので、そのコマンドが、Adventurer3側に送信した場合、どのような返答が来るのかを確認し、その内容を返すようにエミュレートしたプログラムを作成し、Simplify3Dと接続してみた。

その結果、Adventurer3側からの返信も解析しているようだった。

一応、ベッド温度、ノズル温度もプロットされている。

ツールパスの送信

次に、Simplify3D側からの印刷を「USB経由でプリントを開始」でやってみて、どのような送信データが送られているのかを確認した。FlashPrintでの出力は、一端M28でツールパスのファイル情報を送信し、M28で出力を開始していた。

Simplify3Dでは、ファイルを作成せず、シリアル通信でそのままファイルの中身相当を出力していた。

G90
M82
M107
M140 S55 T0
M104 S210 T0
M104 S0 T1
M107
G90
G28

Adventurer3側で認識されるか確認

Simplify3D側から出力されたものを送信できるか、前回のプログラムを用いて確認。

しかし、Adventurer3側からリターンが来るコードと来ないコードがある。

G90,M140,M104,G1などは認識してくれたが、M82やG28などは認識してくれず、また、そこで、通信がストップしてしまった。

結果

Adventurer3側では通信で使用できるGコードコマンドが限られているのだと思う。一度ファイル保存したものをアップロードして印刷する、という方法もとれるが、それならば、現在のSimplify3Dでパスを作成しファイル保存、その保存データをFlashPrint側で読み込み印刷を開始する、という運用とあまり変わらないので、Simplify3Dですべての運用をする試みは、ここで断念。

ネットワークのプロトコルを解析した時は、なんとなく行けるのではないかと思ったのだが。

Simplify3Dとの通信プログラムはここ

コメント

タイトルとURLをコピーしました