Ryobi Z-Axis problem not going up and down the same amount

I am using a Ryobi router and have gotten the up and down motion working, but it’s not working correctly. I unlocked the housing lock, filed and sanded the housing so it would move up and down smoothly, added an elastic band to give downward pressure.

In ground control, when calibrating the Z-Axis, if I tell it to go raise 5mm, it goes up about 10mm. If I then tell it to lower 5mm, it goes down about 15mm.

The motion is smooth in both directions, and the motor runs for the same amount of time in each direction, about 17.5 seconds. However, when it is raising, it makes 4 revolutions and while lowering it makes 5.

I assume I can adjust a setting somewhere that will make the router lift the correct amount, but I don’t understand why it is not raising and lowering by the same (incorrect) amount.

Where can I adjust the setting from what I assume is for the Rigid router to the Ryobi for the Z-Axis, and why is it not at least moving the same distance up and down?

To change how far Z moves click on ‘settings’ in GC and look for ‘Z-Axis pitch’.
The difference in movement depending on the direction is a strange this. I don’t think it’s a lose cable or the encoder loosing steps, however lose encoders are reported, so perhaps it’s worth a check. I would rather assume a mechanical issue like a loose coupler. Perhaps a short video of the up and down move would show something.


Thanks for the response! I’ll change the settings as you suggested. Any idea what it should be for the Ryobi? Or is it better to try to tune it myself?

I had already tried unplugging and replugging the cables several times, and that didn’t make a difference. The coupler is also not loose. Everything is nice and tight.

The motor just moves quicker going down, and slower going up, which I guess makes sense seeing as how there is tension from the elastic pushing it down. What doesn’t make sense is it should know it’s going faster any not run the motor for the same length of time in each direction, but instead run based on the number of steps from the encoder.

I have tried lessening the tension if the elastic as well until it wasn’t pushing the motor down reliably and then increased it until it was just enough to do so. It didn’t have any effect. Same problem.

I’ll get a video of the motion posted tomorrow. I’m not at home at the moment.


I would use the z menu to turn the motor 1 revolution and measure how far the axis travelled.
The motor is quite powerful and should not have issues raising the router.
You are correct that the software should recognize how many turns it made. Only if something mechanical gives in, the motor turns the right amount but the distance targeted is not achieved.

One more option is that the Z-cable is close to the power-cord and electrical interference causes the loss of pulses, but that would not be consistent and show in both directions.


It doesn’t seem to be having any troubles raising the router. I just thought the extra tension would explain why it went a bit slower going up than going down.

I’ll check the power cable if it’s giving interference and post on that tomorrow as well. Thanks.


THIS if the router you are using? to be honest, most routers have some slop in the z axis, so don’t expect it to be very precise even when you have it as good as it can get. This is why there are so many people making their own z axis upgrades. trying to hack the exsisting router is often frustrating and for $50 a new z axis might be worth the cost.


That is the router I am using. This problem isn’t slop in the router’s Z-Axis though. The motor is making a different number of rotations going up or down for the same distance commanded. If I tell it to go up 5mm, it makes a little less than 4 rotations. If I tell it to go down 5mm, it makes 5 and a half rotations.

Honestly, I have been looking at a Z-axis slide for a cnc from AliExpress. But I’d like to try to figure this problem out and see if I can at least get it working decently.

1 Like

Ok, I re-flashed the firmware to the board and that seems to have solved the problem. Thanks for the help.