Cuts are deeper than they should be, and I'm stumped

Hello everyone!
I have my lowrider up and running (it cuts!) but I have a strange issue where it seems that I am taking deeper passes than I should when running a program. I’ve attached some pictures to show what’s happening to my spoilboard. I tried to let this program run as long as possible, but it was about to cut all the way through my spoilboard so I stopped it.
When making the first pass, I can see my spindle jerk when entering the material, as if it’s taking too big of a cut. I have a 1/4" spiral carbide bit in the spindle at 24000 RMP and it cut through a 3/8" board in a single pass despite settings in fusion saying that the max downstep should be 1/8".
Before running a program (UGS) I slide paper under the bit until the paper encounters friction, and then reset the zero on the machine. I hit play and it cuts way too deep.
I’m not really certain where to begin looking for a solution. Any advice would be greatly appreciated!

I can’t make out the code with my old eyes but it may be that the machine is trying to lift the tool too fast thereby loosing steps and thinking it is higher than it is, then when it then goes down to cut it digs deeper than it should. Check your Z axis speeds in the code.


I’m not hearing any skipped steps when the machine is running. My Z axis also stays level, and the extra depth is consistent (it cuts deeper everywhere) so I don’t think my motors are skipping.

It would seem that you’re running GRBL. What control board are you using? and which stepper drivers? How many micro-steps? Did you get your Z axis leadscrews from the V1 store?

It looks like you’re set for 400steps/mm on the Z axis. I think this is correct if you’re running the 8mm/revolution leadscrews like Ryan sells and you’re stepper drivers are set for 16 microsteps.

Could you post some of the gcode?

I am running GRBL, with the RAMBo 1.4 board. Stepper drivers and leadscrew are from Ryan’s store. From what I’ve read GRBL doesn’t care about microstepping, and I haven’t seen or changed any settings in that regard. Here’s a chunk of the gcode:

(T1 D=6.35 CR=0 - ZMIN=-3.175 - flat end mill)
G90 G94

(2D Contour3)
S18000 M3
G0 X227.288 Y793.002
G1 Z4.175 F762
G18 G2 X227.923 Z-2.667 I0.635 K0 F1524
G1 X228.558
G17 G2 X229.193 Y792.367 I0 J-0.635
G1 Y747.65
Y744.644 Z6.35
Y735.288 Z-2.667 F762
Y640.493 F1524
Y637.487 Z6.35
Y628.131 Z-2.667 F762
Y580.734 F1524
G3 X232.876 Y577.051 I3.683 J0
G1 X289.039
G3 X292.229 Y578.893 I0 J3.683
G1 X313.197 Y615.212
X314.7 Y617.815 Z6.35
X317.875 Y623.314
X319.378 Y625.917 Z-2.667 F762
X361.316 Y698.556 F1524
X362.819 Y701.159 Z6.35
X365.994 Y706.658
X367.497 Y709.261 Z-2.667 F762
X388.466 Y745.581 F1524
G3 X388.959 Y747.422 I-3.19 J1.841
G1 Y795.047
G3 X385.276 Y798.73 I-3.683 J0
G1 X353.357
X350.351 Z6.35
X343.584 Z5.099 F762
X340.995 Z6.35 F1524
X333.811 Z-2.667 F762
X277.157 F1524
X274.151 Z6.35
X264.795 Z-2.667 F762
X232.876 F1524
G3 X229.193 Y795.047 I0 J-3.683
G1 Y792.367
G2 X228.558 Y791.732 I-0.635 J0
G1 X227.923
G18 G3 X227.288 Z-2.032 I0 K0.635
G1 X220.837 Y798.984
G19 G3 Y799.619 Z-2.667 J0.635 K0
G1 Y800.254
G17 G2 X221.472 Y800.889 I0.635 J0
G1 X249.144
X252.15 Z6.35
X261.506 Z-2.667 F762
X333.811 F1524
X336.817 Z6.35
X346.173 Z-2.667 F762
X418.477 F1524
X421.483 Z6.35
X430.839 Z-2.667 F762
X466.992 F1524
G3 X467.729 Y800.964 I0 J3.683
G1 Z1.362
G3 X468.255 Y801.112 Z-0.217 I-0.737 J3.608 F762
X468.754 Y801.338 Z-1.844 I-1.263 J3.46
X468.99 Y801.478 Z-2.667 I-1.762 J3.234
X470.675 Y804.572 I-1.998 J3.094 F1524
G1 Y838.825
Y841.831 Z6.35
Y851.187 Z-2.667 F762
Y919.692 F1524
Y922.698 Z6.35
Y932.054 Z-2.667 F762
Y1000.559 F1524
Y1003.565 Z6.35
Y1012.921 Z-2.667 F762
Y1081.429 F1524
Y1084.435 Z6.35
Y1093.791 Z-2.667 F762
Y1128.04 F1524
G3 X466.992 Y1131.723 I-3.683 J0
G1 X419.367
G3 X415.684 Y1127.986 I0 J-3.683
G2 X410.761 Y1089.682 I-136.076 J-1.979
X409.927 Y1086.793 Z6.35 I-131.153 J36.325
X407.956 Y1080.757 I-130.318 J39.214
X406.924 Y1077.932 Z-2.667 I-128.347 J45.25 F762
X360.913 Y1016.874 I-127.315 J48.076 F1524
X358.482 Y1015.104 Z6.35 I-81.304 J109.133
X353.222 Y1011.545 I-78.873 J110.903
X350.675 Y1009.946 Z-2.667 I-73.614 J114.462 F762
X315.215 Y994.658 I-71.066 J116.061 F1524
G3 X265.564 Y943.192 I18.237 J-67.277
G1 X212.992
G3 X209.309 Y939.509 I0 J-3.683
G1 Y878.222
Y875.216 Z6.35
Y865.86 Z-2.667 F762
Y804.572 F1524
G3 X212.992 Y800.889 I3.683 J0
G1 X221.472
G2 X222.107 Y800.254 I0 J-0.635
G1 Y799.619
G19 G2 Y798.984 Z-2.032 J0 K0.635
G0 Z5.08
X171.624 Y834.791
G1 Z4.175 F762
X171.619 Y834.786 Z-2.131 F1524
X171.602 Y834.769 Z-2.228
X171.575 Y834.742 Z-2.32
X171.539 Y834.706 Z-2.405
X171.493 Y834.66 Z-2.481
X171.439 Y834.606 Z-2.546
X171.379 Y834.546 Z-2.598
X171.314 Y834.481 Z-2.636
X171.246 Y834.413 Z-2.659
X171.175 Y834.342 Z-2.667
X170.726 Y833.893
G17 G2 X169.828 Y833.893 I-0.449 J0.449
G3 X164.62 Y833.893 I-2.604 J-2.604
G1 X131.947 Y801.221
X129.822 Y799.095 Z6.35
X125.332 Y794.605
X123.206 Y792.48 Z-2.667 F762
X57.86 Y727.133 F1524
X55.735 Y725.008 Z6.35
X51.244 Y720.518
X49.119 Y718.393 Z-2.667 F762
X16.446 Y685.719 F1524
G3 X15.367 Y683.115 I2.604 J-2.604
G1 Y646.963
Y643.957 Z6.35
Y634.601 Z-2.667 F762
Y562.296 F1524
Y559.29 Z6.35
Y549.934 Z-2.667 F762
Y477.629 F1524
Y474.623 Z6.35
Y465.267 Z-2.667 F762
Y392.963 F1524
Y389.957 Z6.35
Y380.601 Z-2.667 F762
Y308.296 F1524
Y305.29 Z6.35
Y295.934 Z-2.667 F762
Y223.629 F1524
Y220.623 Z6.35

It does because that 400 you have set is 16 microsteps micro steps tells it haw far it goes per rotation

Do you know where to find the microstepping settings? I can’t find any information on where that’s located in grbl.

$100 to $104. Steps per mm and at this hour i can not find the equation. Sorry I use a uno cnc shield on 1 machine and a mega ramps on the other I don’t know the Rambo that well

It looks like RAMBo is just x16. I’m having a devil of a time confirming that though.

I take that back, it looks like it’s set with the MCU (whatever that is). I’m going to google this a bit more.

1 Like

Move your router up or down measuring the physical distance. If the electronic measurement is the same as the physical measurement, then this is not a driver setting issue.

1 Like

I’ll confirm this tomorrow (my machine is at work).

Does it look like it climbs up to positive 15 before going 2mm under where you set zero?
And yes, the rambo is a4498 drivers and they max at 16 microsteps. You can test that easily by jogging 10mm, and making sure it moves 10mm


The store says the RAMBO has 1/16th microstepping so I think the steps/mm is correct.

I notice the first two Z axis moves in the gcode have no feed speed specified, and the Z axis limit in the settings is set to 400mm/min. This feed speed is more than twice as fast as Ryan recommends starting with. You might try changing the $112 Z axis maximum rate to 200 or a little less (Ryan recommends starting at 180).

It may be missing steps right at the start when it tries to go to Z15.24. This is what @ttraband was thinking. It doesn’t necessarily make any sound when it skips steps.

1 Like

I’m not certain, but it might. I’ll pay attention to that tomorrow.

I’ll add that to the list of things to look at tomorrow. My gantry is probably on the heavy side, so that makes sense.

I run Marlin, not GRBL, so you can take my observations with a grain of salt. First, your Z movements are way too fast for a ‘standard’ T8-8 lead screw with drivers set at 16 microsteps . This may be handled if you have set more appropriate feedrates limits in firmware. The firmware that V1 ships with its boards and provides on github has a default Z feedrate max of 900 mm/min, and this is too fast. You will lose steps at that speed, especially if cutting at that speed. The g-code above has a Z feedrate for downward motion of 762mm/min which is likely too fast (especially when cutting), but I see place where the Z upward feedrate is 1524. Again this assumes that GRBL g-code operates like Marlin g-code where the last feedrate seen applies to all axes.

The second issue, is that there is nothing in this code that sets the current position at the start of the script to Z=0. On marlin this would mean that if you were electronically at Z=5 when the script was started (even thought the bit was at the home position), then all of the cutting would be 5mm too deep.

The last potential thing I see to look at is the G54. I’m assuming when the machine starts, GRBL is in G53 (global) workspace. I don’t know how the offset for the G54 is set, and if that offset is persistent in any way. Again I’m sure there are GRBL vs. Marlin differences here.

Alright, I blew a fuse and had to wait for new ones to come in, but I finally got to test it.
I reduced the z-axis speed to 180 (are there recommendations for the other axis too?) and made sure that 10mm in the gcode sender was 10mm on the machine. I tried to surface the spoil board and got some stair-stepping (guess I need to figure out how to level the gantry), but it seemed that it worked as expected as far as depth goes.
I did try setting up homing as I finally got my limit switches installed. It didn’t work, but I did notice that if my x-axis is on a side, the gantry will twist. My guess is there’s too much weight on the gantry? I’m trying to figure out of there’s a way to solve that. I’m about ready to just slam my head into my desk and start over.

Hey! I’ve been digging through the config file and trying to learn what I can about settings. It seems that with grbl, it will never go faster than the max feedrates defined in the $$ settings. grbl uses mm/min so I have 7200 for X and Y and 800 for Z. Ryan gave those settings in this post but he may have been talking about the MPCNC, not the Lowrider. Do you know if there are recommended max speed settings for the lowrider?

I’m not certain how grbl treats feed rate in the gcode, so I can’t say anything about that.

With grbl, I position the spindle where zero is and set a workpiece zero. I don’t think there needs to be anything in the gcode to handle that. How I start a job is:

Place spindle in safe space > G28.1 > Move spindle to top of the workpiece (I don’t have the probe working yet) > Zero workspace Z > Increase Z height > move the spindle to edge of workpiece > zero workspace X and Y > start job.

It seems to work OK except for the Z going too low.

I tried flashing Ryan’s Marlin onto my RAMBo and my Z axis was performing much better from what I could tell by jogging the machine (I was having trouble getting a job to run). It seemed like the motors were running cooler as well. What would be going on to make that happen? Could my current be too high and the motors aren’t preforming properly because of that? I’m a bit lost and confused with all this, so I appreciate all the help!

So are you still having trouble with your router going too low? As mentioned before, I don’t own a LowRider and I’ve never used GRBL, so my information comes from the MPCNC experience and reading on the forum.

I just took a look at the latest V1 Marlin firmware for the LowRider. Current to the motors is set for the Rambo board in this line in Configuration_adv.h:

#define DIGIPOT_MOTOR_CURRENT { 138, 138, 138, 138, 138 }

This 138 value is the same as is used on the MPCNC, and sets the drivers to about 0.8A. So you can compare that 0.8A value to whatever value the GRBL is setting the drivers. I know nothing about the GRBL firmware, so I don’t know where to tell you to look for the current settings.

The most prevalent reason I’ve seen for lost Z steps for the LowRider on this form for the Rambo board is that it is wired wrong. Typically both Z steppers are plugged into the two provided Z plug slots on the Rambo board (assuming dual wiring where each stepper has its own driver). The second Z stepper needs to be plugged into the second extruder plug.

Your Rapids still sound too high to me. I’m assuming that a LowRider uses the same lead screw for both Z axes that the MPCNC uses for its Z axis. In his EstlCAM setup section, he recommends 2100mm/min for XY movements, but only 480mm/min for Z.

If you are running Marlin firmware, you can set this limit by running the following g-code once (the change will be presistent):

M203 Z8   ; Limit feedrate to 8mm/s (480mm/min)
M500      ; Save the changes to EEPROM

I cannot help but think we are missing something. It shouldn’t be this hard to figure out what is going on.

1 Like

Woah, that’s actually super helpful! The current settings in my firmware is 135, so I’m going to bump it up a bit and see if that helps.

Since I’m trying to run Dual Endstops (eventually) I have each motor plugged into it’s own driver. So it goes (from left to right) X1 > Y1 > Z > empty > Z2 > Y2.

I’ll try those rapid settings, that may be what I’m missing (I couldn’t find them anywhere!).

I’ll report back tomorrow evening after I’ve tried this stuff. Thanks a bunch @robertbu!