LR3 cutting twice as deep as expected

I re-cut one of my hardboard struts this evening, after triple-checking my toolpaths and tool settings in Estlcam because I wanted a total depth of 3.5mm and each pass to be 2mm deep. During the cut, I quickly grew suspicious that something was off, and it turns out that my machine was cutting to a depth of 7 mm below the cutting surface. Nothing I found in some forum searches seems to match what’s happening in my situation.

I have a couple hypotheses as to why this might be happening, but I assume there’s a 95%+ chance I did something wrong somewhere instead, so… let’s see if I can cover enough relevant information for troubleshooting:

I am running an SKR Pro 1.2, purchased from Amazon. I flashed the board with the V1CNC_SkrPro_DualLR_2209-2.1.1 V515 release firmware. 2209 stepper drivers, UART mode with no other jumpers.

I am using Estlcam 11.245_A_64. The following are as many settings as I can think of to capture. I tried to set everything up per the docs to start with, and have only changed the depth per pass.

1/8" upcut endmill:

All toolpaths look like this, I don’t specify toolpath depth right away. I am not using a finishing pass for the struts:



When saving the CNC program:


When I load the gcode into CNCjs, I see this in the “G-code” section:


Here is the start of the gcode for the strut I cut this evening:

… and the whole gcode file for the strut:

front_strut_cut_full_no_finish.gcode (89.7 KB)

Measured cut depth (one example, it is within .1mm of 7mm across the entire cut):

My workflow, after securing the hardboard to the MDF with screws and powering on the LR3:

  • Manually drive the router to the starting X and Y location;
  • Manually home Z, since it seems like the probing doesn’t work without that;
  • Usually manually send G92 X0 Y0, even though it’s in my gcode;
  • Upload the gcode file to CNCjs;
  • Hit play in CNCjs;
  • Hit play to resume in CNCjs when it pauses for “Attach Probe”;
  • Connect the probe’s clip to the router bit;
  • Click the display button to start the Z probe;
  • Once the bit hits the plate resting on the cutting surface, the gantry moves up 20mm and the program pauses (I am aware 20mm might be a little far, but while it’s on the floor, this makes it easier to release the clip);
  • Disconnect the clip and stow the probe;
  • Visually double-check that the router is where I want it to be in X and Y;
  • Slide the floating dust shoe body onto its mount and release the linear rail truck;
  • Start the router;
  • Start the vacuum;
  • Hit play to resume in CNCjs;
  • Click the display button to start cutting.

As far as the machine goes:

  • It measured square to within 1/16" with a dot test before doing any cutting.
  • All axes home as expected, and all endstops work properly.
  • The Z lead screws are both lubricated.
  • Grub screws are all tight and have been double-checked.
  • The router is secure in its mount.

Things I don’t have/haven’t done:

  • Sitting here a few hours later, I realize that I probably ought to do a simple Z movement test and measure whether the gantry moves up/down by the specified amount, although visually it seemed to move appropriately in pre-crown testing;
  • I don’t have temperature strips on my stepper motors so I don’t know how hot they are running, but I haven’t changed anything in the firmware as far as stepper current goes;
  • There is no G90 at the very beginning of my gcode, in case that matters;
  • ???

So, what boneheaded mistake/s have I made, and/or what other information is needed (other than that Z movement test to check if the steppers are moving the right number of steps)?

Sounds to me like the steps per revolution are configured wrong, we have had this before around here, but please don’t ask me how to fix it with your board.

Make a test please: tell the machine to move 10mm in Z and see whether it moved 20mm. Then you can be sure the steps are off.

1 Like

How far away from the edge were you cutting?

One of my “don’t ask me how I know” moments was when I tried to do too much before installing the struts. When the bit dug into the material, it had enough downward force and enough flex in the gantry towards the middle that I was left without about a 10mm deep gouge in my spoilboard.

Other than that, I would check and make sure your Z movement test is accurate.

GCode looks ok, just cut roughly 3X deeper than you should have.

One thing you can do is run an air cut and check the height of the bit after it is done to see if it drifts down with no pulling force on the bit. Put the Z Probe on top of a piece of 3/4 board or something with enough clearance that -11mm won’t hit the table.

Just remove the last few lines from your GCode file so it stops with the bit in it’s lowest state.

If it goes through all that motion and ends up only -3.5mm from the start height, then that would lead me to believe the flex pulled it down like I saw on mine.

The good news if that is the case, is that you already got yourself a set of full length temporary struts to cut your next set with :slight_smile:

1 Like

You are using an SKR pro aren’t you? Use the SD card to run your files to eliminate any software as the variable. That -4 for the Z axis looks mighty suspicious.

1 Like

Yep, that’s the first thing I will do this evening.

This cut was close to the edge, as I figured there would be less flex there. I don’t remember the exact number but less than 100mm from the edge of the spoil board.

Nice, I’ll try that too.

Roger that, SKR Pro. I will also test this.

Thanks for the ideas! I’ll post results here after testing.

Also… lines 2964, 2965, 2966: there’s 7mm of downward movement in the gcode. What the?

Oh wait, those are absolute, not relative. I think. Unless they’re not absolute because there’s no G90 at the start of the code?

I would assume it’s still absolute, otherwise you’d be going deeper, and deeper, and deeper, and deeper…

Absolute is the default for Marlin, so unless you set G91 somewhere first, you don’t need to have a G90 at the beginning.

I think most 3D Print slicers include it to be safe

Is there a chance that your lead screw thread is mismatched with the firmware settings (1 start, 2 start, 4 start, etc)?

Since we usually have 4 start it would half the distance with a 2 start, not double it, wouldn’t it?

This was one of my hypotheses. I bought a full kit from V1 a couple months ago, so I got whatever leadscrews were shipped with the kit. I think a clear indicator will be the Z axis movement test that I’ll run this evening. I will add that when the Z steppers are powered off, the gantry tends to sink… so I suspect they are 4 start screws.

Notes from tests this evening:

The latest strut’s outside edge was 85mm from the edge of the spoilboard.

The Z axis moves 10mm when I dial a 10mm change on the display in Marlin mode.

Air cut test #1:

  • CNCjs
  • Put shims on top of the cutting surface and probed to the top of the shim stack, height above cutting surface was 21mm
  • Using the same gcode as yesterday with the recommended gcode removed (see below for the end of the file), the bit ended 17.5mm above the cutting surface at the end of the cut


Air cut test #2:

  • SD card in the SKR
  • Same shim stack on the cutting surface, probed to top of shim stack, height above cutting surface was 21mm
  • Same gcode file as air cut test #1
  • Same final Z depth, measured at 17.5mm above the cutting surface at the end of the cut

Other observations/musings:

  • No appreciable difference in cut depth from the last live cut between the Y+ movements and Y- movements
  • I can definitely twist the gantry tubes by hand, which moves the bit by a few mm, but I’m only able to noticeably twist it clockwise when looking at the X min side (moves the bit toward the cutting surface). It strikes me that if the gantry is moving in the Y+ direction, pulling the router bit along with it and theoretically twisting it in the opposite direction, the Y+ cuts ought to be noticeably less deep than the Y- movements. This is not the case (see previous point)
  • The too-deep depth can also be measured in the bolt hole cuts, which would not seem to suggest any bit dragging

So… I’m still stumped. Any ideas out there in idea-land? Will 1/8" hardboard struts reduce the amount of potential twist in the gantry?

I can’t comment on twisting, but I know that once I had my mishap, while trying to figure out what happened, I was able to put 1 finger in the middle of the gantry and and see deflection with not much pressure.

It’s very solid with the struts in place.

It’s like putting drywall on studs or the backing on shelf. Even though those strips are thin, a huge amount of rigidity is gained with them in place.

In your position, since you have verified that the air cut works as expected, and the gcode looks correct, I would be inclined to chalk it up to cutting with and “not quite finished” machine.

I would be more interested to see if after installing the full temporary struts, does it still cut too deep?

That’s kind of where my head is at, too. I’ll move forward with adding the struts and see what happens.

1 Like

2 posts were split to a new topic: Z Depth -pre strut plates-

Was this ever resolved? I’m having same issue :frowning:

This issue did resolve itself on my machine, but not by any one specific thing I can remember doing. Other than the struts, I think the next likeliest culprit was my Estlcam settings, which I went over very carefully.