Advanced Use for Dummies, Recover from an unexpected halt

I ran into my first problems with the Maslow shortly after assembly. I don’t really know if the initial calibration is flawed in Ground Control or if I just made some absentminded mistake, but the chains seemed to be feeding from the wrong direction from what I had chosen to do initially. Fortunate given my theoretical setup differed from what was practical.

After calibration, I went about cutting out my first sled. Disaster.

In all, I had to start the G code program over about five times to get it finished. There was this problem with my laptop used to control the machine (although I had made sure that it would not fall asleep on the job, I had not disabled hibernate in the advanced power settings). I may have had an endmill come out of the chuck as well at some point. PS (that actually happened).

That being said, the sled I cut out was awful.

I learned two things that changed how I used ground control that fateful day.

  1. The included sled .nc file is trash ( there is a file for one on the garden that helpfully retains the center biscuit with a 1/4 in. hole in it to align your router).

  2. It is possible to resume from some portions of your G code with the following trick.

I have seen this explained poorly about 100 times, so here is some clarification and best practices.

The GOTO button on the Ground Control movement section only works when you begin the line # with one that begins with a Z-axis move.

To get this to work safely, do the following:

  1. Observe the line # your program halted at, or the operation you had in progress ( although G code looks complex, the general gist of what is happening can be identified with basic deduction)

  2. Launch the ACTIONS button and select VIEW G Code.

  3. Using the line number from step 1, scroll through the G code to find it.

  4. Once you have found the line you ended on, go backwards from there until you see a traversal height Z axis move ( usually looks like XX G0 Z0.6)

  5. Make sure the Z axis move is in a positive direction (for example, don’t use one with a G0 Z-0.6 as that is a plunge operation [its all about that - ]).

  6. Close the G code screen and press the GOTO button, enter the number of the line with your Z axis move.

  7. Ensure your machine is safe for a move, as the exact next instruction it gets after the Z axis move is usually a rapid move to an X.Y coordinate some distance from its current location (remember you can’t start exactly where you ended, but you can restart where the machine started with a plunge on the Z axis).

  8. Once ready for a move (remember to set the Z axis using the controls at the top right BEFORE you execute the GOTO command) Hit the PLAY button and away she goes. Some supervision will be required, I usually don’t turn on the Router until its about to start the plunge operation.

  9. Congratulations! you can now start off where you left off (mostly).

Example code:

1 (1001) //program name
2 (T1 D=0.25 CR=0 - ZMIN=-0.875 - FLAT END MILL) //tool specs for program
3 G0 G40 G90 G17 //rapid move,//tool radius compensation off,//roughing for z axis,//xy plane selection
4 G20 //specify programmed in inches
7 T1 M6 //tool 1 T1 for turret 1, M6 for misc. 6, in this case 1/4" endmill
8 M3 S24000 //spindle speed (in this case its your router rpm)
9 G0 X34.2 Y8.775 //G0 is a rapid move, in this case, to the home point for the start of the toolpath
10 G0 Z0.6 //rapid move on z axis to traversal distance (THIS IS WHAT YOU ARE LOOKING FOR)
11 G0 Z0.2894 // rapid move z axis to safe distance (specified when creating toolpaths in CAM software)
12 G1 Z-0.225 F16. // interpolated plunge of z axis (note the negative number)
13 G1 X34.1997 Z-0.2289 //interpolate move, linear
14 G1 X34.1988 Z-0.2327 //" note
15 G1 X34.1973 Z-0.2363 //" that
16 G1 X34.1952 Z-0.2397 //" the
17 G1 X34.1927 Z-0.2427 //" z axis
18 G1 X34.1897 Z-0.2452 //" is slowly
19 G1 X34.1863 Z-0.2473 //" getting
20 G1 X34.1827 Z-0.2488 //" deeper
21 G1 X34.1789 Z-0.2497 //" in this
22 G1 X34.175 Z-0.25 //"part
23 G1 X34.15 F48. //feed rate 48 ipm
24 G3 X34.125 Y8.75 I0 J-0.025 // circular interpolation counter clockwise

In the example code above, line number 10 would be the ideal GOTO line, however lines 11 and 12 would also work, you would need to babysit the sled until it reaches your intended start point so the tool doesn’t gouge the workpiece though #unsafe.

If you have gone through a power cycle with the Maslow hardware, as long as the Workpiece hasn’t moved and you calibrate, you can usually start off again without too much distortion on the finished parts ( my last go at this had it maybe 1/32 in. from its original paths before the rogue Hibernation kicked in again. I had my laptop shut off on me three times in a row. how embarrassing. Cheers!



So to be clear, the z action gcode line you command it to GOTO is not actually performed. So it will first do the next (plunging) z action even though you GOTO the positive z action just before it. Is this what you have observed?

It will be executed, this is the weird part I think in the ground control programming, it will execute the z axis command immediately followed by the next move command as a rapid move, so this is why I specify to make sure your z move is in the positive(retract) direction, specifically even further to a traversal retract (the usual default is 0.6in above the workpiece).

Okay, I think I’m catching on. Please be patient with me. So what you’re saying is that giving Ground Control and goto a positive z action will result in the sled moving to position and moving down, back up, and then it will be safely moving at the safety height across the workpiece rapidly?

If your z action is a negative value, it will approach or crash into the workpiece and then move(BAD). If its a positive number, then it will raise (assuming its already down) to the z height (ANYTHING ABOVE 0 IS GOOD) and then move without gouging or crashing. This is why it seems like the goto function hasn’t been fully developed, it still gives you an opportunity to screw things up in a big way.

1 Like

To be fair, the initial spark for this article was from a post of yours, any input for clarification would be welcome.

1 Like

Yes, I had learned that it needs to be a z action. I’m just learning that it may have been ‘dumb luck’ that I chose the right one. I figured, however, there was a chance that I had everything set at the right height to safely go down as needed.
…and also to be fair my experience took my .25" end mill ‘soaring’ through my half cut project! :grinning_face_with_smiling_eyes: At that point I figured l just need to hold the sled away as it makes it’s b line.
That project got filled and painted!

I have use the method outlined above on several occasions, as long as you choose a gcode line with a traversal z move, it is flawless, only babysitting required is to get the router turned on before it starts plunging.

1 Like

I did this today, had halt of my own doing. reset all, restarted ground control and guesstimated zero, or home. I did not note this which was mistake. always record home coordinates. duh.

I found z with no negative in front of number and machine went there just right. thx


@David_Gochberg , I just had a problem with my computer (surprise, surprise but when I’m done with this priority job I can set up my new computer :grin: ) Anyway, I was able to take your specific advise and it worked out so perfectly! Thanks so much for sharing! I was also excited how much I actually, somewhat, understood the gcode. Despite a problem I was right back on track easily!

I had an issue restarting where the moves would list on GC saying it was making a movement at a velocity of roughly .7 which was agonizing.

I am very new to Gcode but it seems like there are some configuration lines in the opening of the code that must create some parameters for movement.

I had success by starting my program from the beginning and let the opening lines run. During the first traverse I paused it. Then I used GoTo to find the desired location to pick up.

I’ve also had to double check my Z position and make sure that it matches the starting code. If your code is starting from a 5mm position, your reading on ground control for Z position should be reading 5mm.