Ground Control not following gcode command

Hi,

Just getting started with Maslow, and several times now Ground Control has sent my sled off of the lines specified in the gcode. Here’s a picture of what I mean:

The graphic correctly shows the shape I was expecting to cut, but the red cursor (and my sled) wandered off of that graphic. Here’s the cut that was made:

Every time this has happened, I noticed the following:

  1. The gcode command is G2
  2. The Ground Control log in the bottom right repeats the gcode command (even though this command appears only once in my .nc file)
  3. The second time that command is logged, I don’t get the usual “Large-radius arc” message. I get nothing until I press stop.
  4. The path taken by the red cursor and my sled are arcs, but with a larger radius than was asked for.

This is not repeatable. I can run the exact same .nc file again, and this error might not happen or it might happen at a different step in the file. It seems random (other than always on a G2).

I’m using version 1.26.

Any thoughts?

Thanks!

That is super strange…hmmmm. It sounds like a serial connection issue to me. Somehow the same line is being sent to the machine twice which is causing unpredictable results. Do you by any chance have a different computer available to try?

Trying to use Webcontrol instead of Ground Control could be another way to experiment with a different option.

Thanks for responding. Can’t easily try another computer, but I could move to Webcontrol. I’ll need to look into that. But as of now, I’ve run the machine for several more hours, and haven’t seen this error happen again. Perhaps I was getting some electrical interference earlier? (This router sucks, and early on it was causing severe electrical interference. I thought I had corrected that, but maybe not…)

And, just for the record, I think my previous post implicating G2 was incorrect. G2 was a red herring. In fact, I suspect this command duplication was happening with other codes, but there’s no harm in, for example, repeating a G0 or G1 code. But G2 behaves differently: When the XY location passed in is the same as the current location, the Maslow draws a full circle. This is the correct behavior according to the gcode standard.

can you post your groundcontrol.log file? it will show us what GC sent to the
firmware and what the firmware responded. this should show any double sending.I
can’t see how GC would send something twice (I would expect it to stall, not
resend if there was a problem), ut seeing what is happening may help.

David Lang

Hi David,

Thanks for offering to help. I’m a noob here and just starting to learn my way around this software. Is it log.txt that you are interested in? That file is huge, so I don’t want to post the whole thing, but I dug into it and found warnings of a buffer overflow. It’s been several days since I had this problem, so it’s hard for me to remember the specifics of the situation, but I suspect this corresponds in time to the error I was seeing.

Here’s the section of the log right before the buffer overflow.

Sent: G3 X-9.5002 Y-3.0445 I0.199 J0.038  
G3 X-9.512 Y6.2262 I0.1872 J-0.0775

ok

G3 X-9.5166 Y6.1776 I0.2548 J-0.0486

ok

Sent: G3 X-9.4805 Y-3.0808 I0.1872 J0.0775  
<Idle,MPos:-9.52,6.18,-0.13,WPos:0.000,0.000,0.000>

[PE:-0.45,-0.38,127]

G1 Z-0.26 F30

<Idle,MPos:-9.52,6.18,-0.13,WPos:0.000,0.000,0.000>

[PE:0.04,0.01,67]

Buffer overflow!

Buffer Used: 127

Buffer Number of Lines: 3

Buffer Begin: 13

Buffer End: 12

Buffer Contents: G1 X-9.5166 Y-2.9563 F60  \nG3 X-9.512 Y-3.0049 I0.2594 J0  \nG3 X-9.5002 Y-3.0445 I0.199 J0.038  \nG3 X-9.4805 Y-3.0808 I0.1872 J(End of Buffer)

I interpret this as the arduino isn’t keeping up with GroundControl. To track down where things go wrong, I started at the top of the log file, where there’s a bunch of stuff like this:

Sent: G20  
G20

ok

Sent: G91 G00 Z0.010 G90  
<Idle,MPos:-35.85,-11.30,0.14,WPos:0.000,0.000,0.000>

[PE:-0.00,-0.00,127]

G91 

G00 Z0.010 

<Idle,MPos:-35.85,-11.30,0.15,WPos:0.000,0.000,0.000>

[PE:-0.00,-0.00,127]

G90

ok

Not sure how to interpret everything, but it seems like commands are being sent to the arduino, it executes them, echoes them back along with some diagnostics, and then says ok.

Then, several thousand lines into the log file, things start to get out of sync:

<Idle,MPos:-35.85,-11.30,0.18,WPos:0.000,0.000,0.000>

[PE:-0.00,-0.00,127]

Sent:  
ok

Sent:   
Sent: G20 G90 G40  
ok

Sent:  
<Idle,MPos:-35.85,-11.30,0.18,WPos:0.000,0.000,0.000>

Sent: G0 Z0.15  
[PE:-0.00,-0.00,127]

Sent: T0 M6  
G20 

Sent: G17  
G90 

Sent: M3  
G40

Sent: G0 X-16.77630 Y-7.8013  
ok

Sent: G1 Z-0.12 F30  
ok

Sent: G1 X-17.25630 Y-8.6327 F30  
G0 Z0.15

<Idle,MPos:-35.85,-11.30,0.18,WPos:0.000,0.000,0.000>

[PE:-0.00,-0.00,127]

I didn’t scan the whole file, but presumably, things continue to get further out of sync until, 380000 lines later, the buffer overflows.

Does this help with the diagnostics? Or, do you need the entire file?

Thanks,

Eric

I had a file do that at one position on every layer, but the behavior was one of two things. It would either just stop or try to do a radius cut in the wrong direction. The offending line was a G3 Xxx.xx Yyy.yy R______ and it turns out the maslow does not read R’s. I’d look there first, but your example above did not appear to show a Radius command. Usually they will have I and J. Yours looks like a buffer overflow, so perhaps something else is the issue.

I think you are exactly right there. I suspect that any line can be duplicated, but only G2 causes a change in the cut

Again, you are completely correct. That is exactly what is happening.

I think the first thing to try is web control.