CNCxPRO V5が勝手に再起動する

表題の通りですが、CNCxPRO V5をPCと接続していると途中でCNCxPRO自体が再起動し、接続しなおしたような状態になります。

最初はケーブルの接触不良やNCデータのエラーかと思いましたが、何も操作していない状態で放置していても30分くらいで再起動、再接続しているように見えます。
再起動時にコンソールに表示されるメッセージは以下のものです

abort() was called at PC 0x40203c0b on core 1
Backtrace: 0x40092e64:0x3ffd4210 0x40093095:0x3ffd4230 0x40203c0b:0x3ffd4250 0x40203c52:0x3ffd4270 0x402032bb:0x3ffd4290 0x402034e2:0x3ffd42b0 0x40203499:0x3ffd42d0 0x400ee157:0x3ffd42f0 0x400f6126:0x3ffd4330 0x400e8ddc:0x3ffd4350 0x400e8aa4:0x3ffd4370 0x400d93b8:0x3ffd4390 0x4008f4d1:0x3ffd43b0
Rebooting…
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
[MSG:Grbl_ESP32 Ver 1.3a Date 20200828]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:CNC_xPRO_V5_XYYZ]
[MSG:Axis count 3]
[MSG:RMT Steps]
Guru Meditation Error: Core 1 panic’ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400d4cd5 PS : 0x00060031 A0 : 0x800811ed A1 : 0x3ffbe940
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000000 A5 : 0x3ffc5bb4
A6 : 0x3ffcf5f8 A7 : 0xbaad5678 A8 : 0x3ffc5bb4 A9 : 0x00000000
A10 : 0x00000000 A11 : 0x00000000 A12 : 0x80092426 A13 : 0x3ffd20b0
A14 : 0x00000001 A15 : 0x3ffd5c6c SAR : 0x00000020 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x400014fd LEND : 0x4000150d LCOUNT : 0xfffffffb
Core 1 was running in ISR context:
EPC1 : 0x400d4cd5 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x40087821
Backtrace: 0x400d4cd5:0x3ffbe940 0x400811ea:0x3ffbe960 0x40084fe9:0x3ffbe980 0x4000bfed:0x3ffd2120 0x4009063d:0x3ffd2130 0x400fd9b6:0x3ffd2150 0x4018c562:0x3ffd2190 0x40081159:0x3ffd21c0 0x400dd03b:0x3ffd2200 0x400d3e12:0x3ffd2220 0x400d2bbb:0x3ffd2240 0x400f96ab:0x3ffd2260 0x4008f4d1:0x3ffd2280
Rebooting…
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8

一行目で検索するとESP32がリブートしてしまうバグ~ のようなものがいくつか出てきましたが当方そのへんには疎いので具体的な解決策がいまいちわかりません。

原因及び解決策はなにかありますでしょうか?

ご報告いただきありがとうございます.

こちらでも同様の不具合を確認し,販売元のSpark Conceptsへと確認いたしました.
その結果USBプロトコル部にメモリリークがあったため不具合が発生したとの報告を受けました.

Spark Conceptsより修正したファームウェアを受け取りましたので,こちらで配布いたします.

CNC_xPRO_V5_1_3a1.bin (1.8 MB)

ファームウェアの更新手順については以下の通りです.
WebUIからの操作となります.

  1. CNC xPRO v5の電源を入れる

  2. ネットワークよりCNC xPRO v5を選択し,接続する.デフォルトパスワードは12345678です.

  3. 接続し少し待つとブラウザが開きWebUIが開かれます.

  4. ESP3Dタブをクリックし,中央の黄色のボタンを押します.

  5. Updateのウィンドウが表示されるのでSelect Fileボタンを押し,ダウンロードしたファームウェアのファイルを選択します.その後Updateボタンを押します.

  6. ファームウェアアップデート実行の確認がされるのでYesを押します.

  7. アップデートが完了すると自動で再起動されます.

お手数おかけしますがご対応よろしくお願いいたします.

私も同じ症状でしたので、ファームウェアアップデート実行をし自動で再起動されましたが、その後ホーミングを行うとコンソールにerror:18が表示されホーミングができません。対処方法がお分かりでしたら教えてください、よろしくお願いします。

AF_akiさん
こんにちは

error:18はgrblのエラーコード一覧に載ってないですが,ホーミング動作のパラメータが有効になっていないためだと思われます.
CNCjsを使っている場合,接続時にコンソールにて$1~$132の値が出力されるかと思いますが,$22はどのような値となっていますか?($1~$132の値が出てない場合は$$とコンソールに入力すると出力されます)

$22=0となっている場合はホーミングサイクルが無効になっているため,
$22=1とコンソールに入力しホーミングサイクルを有効にする必要があります.

nyaru様
お世話になっております。
$22=1となっておりホーミングサイクルを有効にしてあります。
アップデート前まではホーミング出来ていました、$1~$132の値も変わっていないようです。

なるほど.
アップデートで何か設定が変わったのかもしれないですね.
少し面倒ですが,コンソールにてRST=*と入力するとパラメータの設定をリセットすることができます.それでパラメータを再度設定し直したら変わるかもしれません.

どのようなことが起きているのか確認したいので,一度エラーが出ているときのコンソールの出力と最初に出るパラメータ一覧をこちらに貼り付けていただけないでしょうか.

@staff_at さん
確認ありがとうございます。今週はGotoしているので実際に動作させるのはしばらく後になりますがやってみます。
ホーミングでエラーになるもの気になります…
Error18がError一覧にないものそうですが、バージョン1.3自体情報がない(1.2はどこへ行った)のでこのあたりも情報更新していって欲しいですね。

コンソールにてRST=*と入力するとerror:2になります
%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(11)

エラーが出ている時のパラメータ一覧です。
!


ご確認をお願いします。

すみません,パラメータのリセットは$RST=$でした.($RST=*でもリセットされるはずですが,通りませんね・・・)

こちらもxPRO v5があるので,ファームウェアの適用後ホーミング($22)を有効にしてホーミングボタンを押してみましたがerror18でした.
パラメータのリセットをしてみましたがエラーが出るのは変わらずですね・・・

パラメータを見る感じおかしなところはなさそうです.

販売元のSparkConceptsから情報が公開されてないので全然わからないですね...

お世話になっております、
私もパラメータのリセットが出来て再設定後にホーミングしましたが、変わらずerror:18になりました。
ホーミングが出来ないのは致命的なので、アップデート前に戻すことは可能でしょうか?

アップデート前のファームウェアがないので戻すことはできない気がします.
未検証ですがWebUIからの操作であれば問題なく動くかもしれないです.

私もこのままは嫌なのでAvalontechにSparkConceptsにこの件について問い合わせてもらうようにお願いしました.

nyaru様
ありがとうございます、
早急に良い解決策がSparkConceptsから出る事を願って待っています。

Hi Friends,

This error is becuase Homing was moved to a user defined setting. This lets you set custom Homing sequences for different machines. To complete a Homing cycle using $H command you will need to set the board to Home with $22, and also tell it which axis to home first using the $Homing/Cycle settings.
If you send command ‘$S’ you will be able to see all the settings, Homing Cycles are listed near the top and they will show blank.

Example of how to set this up -
Send these commands through the consol

$22=1
$Homing/Cycle2=Y
$Homing/Cycle1=X
$Homing/Cycle0=Z

This will enable homing, and when using $H the Z axis will home first, then the X, and lastly the Y will be homed. You can also do any combination of X, Y, and Z such as

$Homing/Cycle1=XY

This will home X and Y axis at the same time. Not for standard cartesian machines it is recommend to Home Z axis first to clear any work pieces - then you can Home X and Y.

「いいね!」 1

Thank you SparkConcepts.

I tried these settings. After that, I checked to start moving Z axis as homing movement.
But console shows Alarm:8 after moving Z axis. So X and Y axis didn’t move.

I test only CNCxPRO v5 without motors and limit switches. Of cource I use jumper pin instead of limit switches.


$Sで現在の設定確認後,

にてホーミングの設定を行いました.

その後ホーミングを行ったところ,error:18は出なくなり,Z軸は原点復帰動作をしましたが,
Alarm:8が表示されXYが動作しませんでした.

今回はテストとしてモータとリミットスイッチなしで行ったのでそのせいかもしれませんが,どうなんでしょうか.

Hi nyaru,

This is not entirely surprising - the xPRO is very hard to trick into homing with a jumper pin due to the homing search cycles. First a short description of how the xPRO homes on a CNC machine.

As you saw, by setting $22=1, and defining $Homing/Cylce0=Z, $Homing/Cylce1=X, $Homing/Cylce2=Y the xPRO now has homing enabled, and knows which axis to home first, second, and third. This clears the previous Error:18 issue.

Now, the Homing cycle for each axis is comprised of two stages - a Seek and a Feed. The Seek moves the gantry quickly until the Homing switch is triggered - this is a gross motion and has positional error due to the speed of motion. The axis is then backed away from the switch by the amount defined by $Homing/Pulloff (or $27 setting), releasing the switch to its normal state. The axis then approaches the switch very slowly to get a precise reading of when the switch is triggered. Thus giving a very accurate and repeatable Home location.

From the Homing/Cycle definition above, the xPRO will Home the Z axis first (both Seek and Feed cycles) and then Home the X axis (again both Seek and Feed), and finally the Y axis. NOTE If you define Homing/Cycle1 =XY, the X and Y axis will perform the Seek cycle, once both X and Y switches are triggered, then the pulloff the FEED cycle will be performed.

Now, to test the board using only a jumper pin, you will need to first select the Homing button (or send command ‘$H’). At this point, the Z position in the DRO should be moving, short the Z limit pin to ground ( Seek cycle completed) - remove the short (Pulloff is completed) - wait ~300ms and short the pin again (Feed cycle is completed). Repeat for X and then Y.

For the last bit - it always a good idea to test your limit switches before homing for the first time. This makes sure that the xPRO knows that they are Normally Open or Normally Closed, and confirms the wiring is good, and they are in the correct location. This will saves some early crashes ;). To test the switches:

Send ‘?’ command to get the current status. It should report something like this.

<Alarm|WPos:0.000,-0.000,0.000|Bf:15,128|FS:0,0>

Now manually trigger the Z switch and send ‘?’ again. It should look something like this.

<Alarm|WPos:0.000,-0.000,0.000|Bf:15,128|FS:0,0|Pn:Z>

The thing you are looking for is the Pn:Z this means the Z axis limit switch is currently triggered. Repeat for X and Y switches and confirm you have Pn:X and Pn:Y reading correctly. With no limits trigger, no Pn will show in the status. If you have no limits triggered and you see Pn:XYZ then you need to invert the logic on your switches by flipping the value of $Limits/Invert ($5) - if it is currently 1, make it a 0 - if it is currently a 0, make it a 1.

SparkConcepts様、nyaru様

素早い回答ありがとうございました。
表題の再起動する件も解決しホーミングも問題なく出来る様になりAlarm:8も出なく正常に作動しております。
ありがとうございました。

Hi, SparkConcepts,

Thank you for descriptions.
I understood the reason that console shows alarm:8.

And I want to ask another question.

Before We update xPRO v5 firmware, we can use homing cycle without no settings.
But we have to set some parameter again after updating.
It means that firmware-update erase user setting parameters. right?


説明ありがとうございます.
アラームの件わかりました.

もう一つ質問ですが,
ファームウェアアップデート後にパラメータを設定し直すということはアップデートでユーザーの設定が消されるということでしょうか.

Hi Nyaru,

Glad we got homing sorted out.

When loading new firmware using the above method, the user settings will remain on the xPRO V5. However, if you issue a $RST=* command, the user settings will be updated to the defaults in the NEW firmware.

So, if you load new firmware and things are behaving strangely, it is recommended to issue a $RST=* command to get the latest defaults, then set your specific settings such as limits, homing, probes, and step/mm. This will really only be needed if we have to change hardware related settings like step_pulse time and we will note it on the firmware release details.

「いいね!」 1

Hi SparkConcepts,

Thank you for the information.
I’ll try to “$RST=*” command, when it behave strange.

遅くなりましたが、こちらの基板でもファームウェアのアップデートで勝手に再起動することはなくなりました。

迅速な回答ありがとうございました。