Z-axis is pulled down into MDF


When I try to machine 15mm MDF, I set the depth of cut to 2mm. The first 2mm works fine. But then just after lowering the Z to -4mm and starting the second “round”, the whole Z axis plunges down way further. It cut through the 15mm MDF and into the spoilboard, until the bit reached it’s maximum cutting depth of 19mm and got stuck.

I used this cutter :https://www.freesjes.nl/nl/hss-frezen-lange-uitvoering/2-snijders/hss-frees-3-0-mm-2f/a-1681-10000178. It’s a 3mm, 2 flute, HSS upcut bit. My router is a Makita clone (a Katsu router), which I used at around 30,000 RPM.

I suspect that while plunging from -2mm to -4mm, the cutter catches on the wood and “screws” itself in, overwhelming the Z axis stepper. Does that make sense?

I did not have this problem when I used a straight edge cutter (it does not have a upcut nor a downcut "spiral). However, that bit is only 14mm so I can’t cut all the way through the 15mm MDF.

Btw, the gcode and the machine itself are completely fine. I’ve made a great crown test, and have successfully cut MDF using the same feeds and speeds, but with the straight cutter.

Any help would be appreciated, thanks,


Are your drivers set up for the right current? What speed are you going?

I use TMC2209 drivers on a SKR Pro 1.1 board, with the current set to 800 mA. This setting should be multiplied with 1.414 to get peak current according to Marlin. My steppers are rated for 1.2A. (Now that I think about it I am not sure whether that means I should stick to the 800 mA settings in Marlin or whether I can safely increase it to 1200 mA.)

At first I was using stealthChop, but the steppers started to skip steps in the X and Y direction (at 4mm depth of cut). I switched to spreadCycle and the steppers no longer skip steps in the X and Y direction.

My feed rate is 8 mm/s (XY direction), and I tried both 3 mm/s and 1 mm/s Z plunge rate (both had the same problem). I tried both 2mm and 4mm depth of cut.

Those settings should be fine. I think the rambo setting is 900mA. Is your router very large? Is you Z motor big enough (enough torque)?

The conduit tubes are 1000mm x 750mm, so that’s pretty big. I did use 25mm O.D. (2mm thick) stainless steel tubes and they are very rigid. I don’t think that affects my problem, since my current problem only happens in the Z direction.

My Z axis travel is only around 70mm (the legs are 80mm of the same stainless steel tubes). The Z stepper is a 4.2 kg-cm NEMA 17 stepper, the usual size. I used the standard T8x8 rod. I have microstepping set to 1/32, which is interpolated to 1/256 by the TMC driver.

I also have a carbide single flute 1/8" cutter, but I’m hesitant to try it because I think it will break if the same problem occurs. The tip is shaped differently than the HSS cutter though. The HSS cutter that is causing the problem has 2 flutes and looks pretty “flat” on the bottom (there is a horizontal sharp edge connecting the ends of both flutes), while the carbide single flute has a sharp “triangle”-like shape pointing down. I think that would be less likely to “screw” itself into the wood.

Just to be clear, the gcode says “go from Z-2 to Z-4, then stay at Z-4 and go to some other X/Y coordinate”. What happens is that the Z axis moves to -4, then I hear a lot of noise as if a stepper is skipping steps (I think the Z axis is forced down a lot more and the stepper cannot prevent it). The Z axis ends up at -20 or so, while Marlin still thinks it is at -4. Then Marlin starts moving in the X/Y direction, with an actual depth of cut of 18mm and with the shank of the cutter rubbing against the MDF at 30,000 RPM. Steppers then start skipping steps because of the 18mm DOC and wood starts to get black because of the shank rubbing against the wood. Not good… :slight_smile:

BTW, I really appreciate you’re trying to help me out!

That is a little small. 4.2kh-cm is about 60oz-in. Ryan’s steppers are about 80oz-in.

The only way I could think this might be a problem is if the downward force bends the tubes, which grabs more material, until it skips steps.

I would think this affect would be smaller near the corner.

So 800 steps/mm?

Since it’s skipping when moving in XY and not when plunging, I think it’s the side geometry that matters. Milling or cnc bits aren’t the same as drill bits. Trying the other bit might be a good idea. A downcut bit would also put the load in the other direction, fighting gravity, so a lot less likely to skip.

That’s what I was thinking. Thanks for the clarification though. The Z stepper shouldn’t be skipping. It has the most load, because of the huge motor it has to lift. But it also has the most torque because of the leadscrew.

With 32nd stepping you need to make sure you obey max speeds, I am not sure how interpolation figures in but try plunging and rapids set to 3mm/s and see if you have any issues.

Feel free to link your gcode so we can check it for obvious errors.

I’m not an experinced in MPCNC, but i did try a few engavings with my new build just to learn the flow.

I did encouter this issue and my problem was that the z connector to my rambo 1.4 board wasn’t pushed to the end of the slot on one side, after i pushed it to the end the z worked as expected.

1 Like

The first time it happened was very close to a corner actually, roughly at X=50mm, Y=10mm.

Yes, and 800 is the value in my config. I’ve double checked that the Z axis actually moves the distance that I tell it to move.

A downcut bit is a good idea! In the mean time I bought a straight edge bit at a local hardware store. The same type as the one I used successfully before, only longer so I can cut through the 15mm MDF. At least now I can get my project done in the next few days.

Since I’m using a 32 bit 168 MHz board I was hoping this wouldn’t be a problem. It’s not missing steps when the side forces are small. I will also try 1/16 stepping though.

That might just be my problem! I’m using jumper wires/dupont connectors to connect the steppers to the board, because I don’t have the right connectors. I actually had issues with that before, where one or two wires were (too) loose. Because everything seemed to be working when there is no side force I didn’t think of it. First thing tomorrow I’m going to make absolutely sure the steppers are connected properly and try again!

TMC drivers know when there is an open loop on a coil. If you have TMC_DEBUG enabled you can send M122 and get the report. There is a row for ola and olb. Those are open loop coil a and b. If there are any x’s, then you’ve got wiring problems. It’s most useful after the problem. If the problem is intermittent, it won’t show up at startup.


1 Like

I have made little bit of progress today. It turns out there is a HOLD_MULTIPLIER setting for TMC drivers, which is set to 0.5 by default, which means that a stepper only gets 50% of the current when it’s not moving.

After setting it to 1.0 (100% current at all times), the Z stepper’s holding torque is a lot higher. At 50% I could relatively easily move the Z axis by rotating the T8 rod with my index finger and thumb. At 100%, that’s still possible, but only just. I also hooked up the Z axis to an old RAMPS with DRV8825 drivers set to 800 mA, and the torque felt comparable. If anything, the holding torque of the TMC driver was even a little higher.

I also tried to hold the router in my hands, and let it plunge slowly into some MDF. I felt zero force pulling the router down. It’s not grabbing the material and “screwing” into it at all. I did feel that more than 2mm or so depth of cut requires quite large sideways force, so I will avoid that in the future. But, along the Z axis there was no additional force at all.

So, hopeful, I tried to cut a part again. And it failed. :frowning: It only went from -2 to -10mm this time, instead of -20mm. It was still cutting fine in the X/Y direction with an effective 8mm DOC, but I killed it anyway. After powering up again, I saw that M122 ‘ola’ had a star, so I think I still have an (intermittent) connection issue. I ordered the right connector, but I have to wait until tomorrow for them. If that doesn’t fix it then I’m going back to my trusty RAMPS. I already spent enough time trying to get sensorless homing to work more or less ok…

Thanks for the help so far though!


I finally figured it out! The TMC2209 drivers were the cause! I replaced them with DRV8825 drivers (still using the SKR Pro 1.1 board) and everything finally works as it should.

I redid the wiring for Z axis, and used the proper JST connectors for the X and Y steppers as well. This did not solve the problem. And by the way, the TMC2209 datasheet says that ola / olb open loop detection only works during slow movement, not when a stepper is not moving. That might explain the spurious ‘*’ for ola and olb when I used M122.

During a test cut this morning with the TMC2209 steppers, the Z axis plunged too deep again. But after that the router should have moved diagonally, but it only moved along the X axis. The Y stepper should have been moving, but wasn’t.

I now think that the TMC2209 drivers just stop working at all sometimes. They just completely disable the stepper. That would explain the Z plunging too deep and also the Y stepper not working. The DRV8825 drivers do not have this issue. I have not tried to find the root cause of the TMC’s not working, but frankly, I have spent enough time on it and have given up on the TMC2209’s.

Btw, I have these TMC2209 drivers: https://www.biqu.equipment/products/bigtreetech-tmc2209-stepper-motor-driver-for-3d-printer-board-vs-tmc2208. They are quite cheap, so that might explain why I’m having issues with them…

1 Like