LOWRIDER V4 not moving accurate distances on axes

After nearly a year and a half of on-off building this machine, I am so close to getting it to do useful things. But I am having calibration issues with the Jackpot v1.21 controller and am in need of guidance.

It’s homing fine, but I’ve noticed the XYZ distances are not accurate when measured, especially on the Z axis.

Here’s what I’ve tried:

  • $H to home all axes
  • z probe by running G38.2 Z-200 F100
  • setting as z zero position in fluidnc interface (small button Zw:### Zm:### under jog controls)
  • G0 Z10 to move end of bit to 10mm position.
  • Using a small 10mm gauge I 3D printed, I measure the distance

I see that the tip of the bit is around 5mm instead of 10mm. This leads me to believe I’m running the wrong steps/mm with stock settings in config.yaml

According to my part order history, my leadscrews are 8mm T8, 2mm pitch, 4mm lead.

I’ve experimented with setting z/steps mm to double or half the stock value, but then it causes speed issues or stalling steppers.

This is the area of config.yaml I’m tinkering with:

z:
steps_per_mm: 400.000
max_rate_mm_per_min: 1800.000
acceleration_mm_per_sec2: 10.000
max_travel_mm: 300.000
soft_limits: false
homing:
cycle: 1
positive_direction: true
mpos_mm: 3
feed_mm_per_min: 200.000
seek_mm_per_min: 800.000
settle_ms: 500
seek_scaler: 1.100
feed_scaler: 1.100`

I hope there are enough details to go on here to come to a solution. Thanks in advance.

A couple of suggestions:

It’s generally better to measure over longer distances to determine movement accuracy. Try moving closer to the maximum available distance (typically 48" for X and 96" for Y), and measure the actual distance vs. expected distance

If you’re way off in actual vs. expected, there’s only a couple of probable causes.

First is the Grub Screws. Make sure that one of the screws on each motor is resting on the flat part of the motor shaft, and make sure that both screws are tight on each motor. Use Loc-Tite to ensure they don’t work loose over time.

Next check the toothed pulleys to ensure they are the right size. You can get 16T or 20T versions (I can’t remember which is specified off the top of my head). Similarly, there’s different pitch Lead Screws, so if you have the wrong type, that will affect the Z distance.

Adjusting the Steps/mm is sort of a last resort, if you can’t resolve the issue by other means.

Some other notes: I’m strictly working in metric (im in UK)

I’ve specifically switched over from Marlin and an SKR board which had the machine running accurately, but I switched it all over to a Jackpot because I’m told it was ‘easier’. So I’m reluctant to change mechanical aspects of the machine at this point.

I followed these specs when building it. For reference, mechanical parts I’m working with are:

  • 8mm T8 Lead Screw 2mm Pitch 4mm Lead With Nut
  • Belts 10mm GT2 Timing Belt
  • Pulleys 16T 10mm - Bore 5mm
  • Idlers Smooth - 20T 10mm - Bore 5mm
  • Flexible Shafts 5mm x 8mm

Is it possible I’m using the wrong leadscrews? It looks like it could be 4mm instead of 8mm lead. And if so can I workaround this in firmware? I’d really like a firmware solution. I’ve already sunk a bunch of time and money here so I’d like to avoid buying more parts if possible.

If it worked with a SKR, it’s not a hardware issue.

The standard config.yaml should have the correct values (same as the SKR), but if you’ve been modifying it, you may want to start over with a fresh config file.

Metric or Imperial, the advice to measure over the longest distance possible still stands.

Can you fire up the old controller and connect to it to see what your working settings were before the brain transplant? You don’t need to put it in the machine, just connect with USB and your gcode sender terminal to read the configuration. Or get it off the LCD screen if you have one.

The V1 shop lists “145mm Lead Screw and Nut T8 4 start 2mm pitch, 8mm/Rev.” so if yours are 4mm per revolution that explains why the default steps per mm is off. I say go ahead and adjust the steps per mm and see if that gets you sorted out. It’s easy to change back if it turns out not to be the solution. You don’t need to recompile anything, just edit the yaml file.

You may end up having to adjust acceleration and max velocity settings for Z as well with a different lead screw. Get the distance working right then you can experiment with acceleration, Lube everything first, then start with a guaranteed not to skip steps velocity, increase acceleration until you skip steps, then back off 5-10% for a safety margin. Once you have a good acceleration you can repeat the “increase till you skip steps” experiments to get a good max velocity.

1 Like

These specs don’t make sense. Usually you see something like T8 (diameter of the rod. Sometimes it also says 8mm, may this has both) 2mm pitch (the distance between two threads), 4 start (which is the number of independent threads that start at the end.

If you look at the end of the leadscrew, you should see 4 threads starting there and they continue all the way down the screw. Since there are 4x and the spacing between them is 2mm, one full rotation moves the Z axis 8mm (2mm x 4).

If you bought a 2 start leadscrew by accident, then it would only move 4mm per rotation. If that is what happened, then just live with it for now and double the steps per mm in the config file. One possible consequence is that you will have a lower max speed on Z. You could try reducing the max rate to stay safe until you’re machine has earned its keep enough to justify the correct leadscrews.

If you’re not sure, post a picture and we’ll tell you.

1 Like

I’ve got the Z moving pretty accurately now - solution was changing the accelleration settings and steps/mm in config.yaml.

For reference, here’s what worked for me:

  z:
    steps_per_mm: 413.3
    max_rate_mm_per_min: 200.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 200.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 3
      feed_mm_per_min: 200.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

Thanks for your tips, as always they are appreciated.

Now to do the X Y calibration and I can start cutting some stuff…

And just as I had everything configured and working correctly, I was just setting up a cut and I’ve managed to bust one of the Y endstop switches. No spares. At the mercy of shipping now. This machine, my god…