Y1 and Y2 moving at different rates

I have a Jackpot board hooked up to my Lowrider 3. When I jog for “10”, the right motor moves along 10mm. The ‘left’ motor moves along 12mm.

This is stock out of the box from v1 engineering, using the fluidic web interface. I haven’t changed the configuration.

Is this a known problem?

It is not. Probably easiest if you posted your fluidnc config.yaml contents to see if there’s anything obvious.

My other suspects would be grubscrews or (less likely) the stepper pulleys aren’t matched.

Your numbers suggest you are running a 16T and a 20T pulley. Please double-check them.

If that is not the case run $ss in the fluidnc terminal and show us the output please.

Nope, As they are shipped they should work perfect, no way I would ship them not working…but accidents do happen so let’s double-check the previous things mentioned.

1 Like

I’ll have to disassemble to check the teeth on the pulleys, so I’ll do the config check first.

I thought it might be grub screw, as I saw that comment here enough times, but that would look more like a slip, rather than a racing ahead. Since the one motor does move ‘10’, and the other one moves more, I’m assuming it’s ‘racing ahead’ somehow, rather than the other one lagging or skipping.

board: Jackpot TMC2209
name: LowRider
meta: 11-29-2023 RyanZ

planner_blocks: 32

stepping:
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0

uart1:
  txd_pin: gpio.0
  rxd_pin: gpio.4
  rts_pin: NO_PIN
  baud: 115200
  mode: 8N1

axes:
  shared_stepper_disable_pin: NO_PIN

  x:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 1220
    soft_limits: false
    homing:
      cycle: 3
      positive_direction: false
      mpos_mm: 0
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #X
    motor0:
      limit_neg_pin: gpio.25:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 0
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.680
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        direction_pin: I2SO.1
        step_pin: I2SO.2
        disable_pin: I2SO.0

  y:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 2440
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1500.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100
    #Y
    motor0:
      limit_neg_pin: gpio.33:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 1
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.680
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7

    #A
    motor1:
      limit_neg_pin: gpio.35:high
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: i2so.14
        r_sense_ohms: 0.110
        run_amps: 0.680
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15

  z:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 1200.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 300.000
    soft_limits: false
    homing:
      cycle: 1
      positive_direction: true
      mpos_mm: 0
      feed_mm_per_min: 300.000
      seek_mm_per_min: 800.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.32:high
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 2
        cs_pin: NO_PIN
        r_sense_ohms: 0.110
        run_amps: 0.680
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8

     #B
    motor1:
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.34:high
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 4.000
      tmc_2209:
        uart_num: 1
        addr: 3
        cs_pin: i2so.19
        r_sense_ohms: 0.110
        run_amps: 0.680
        hold_amps: 0.500
        microsteps: 8
        stallguard: 0
        stallguard_debug: false
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: StealthChop
        homing_mode: StealthChop
        use_enable: false
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16

#  c:
#    steps_per_mm: 80.000
#    max_rate_mm_per_min: 5000.000
#    acceleration_mm_per_sec2: 100.000
#    max_travel_mm: 300.000
#    soft_limits: false
#    homing:
#      cycle: 0
#      positive_direction: true
#      mpos_mm: 150.000
#      feed_mm_per_min: 100.000
#      seek_mm_per_min: 800.000
#      settle_ms: 500
#      seek_scaler: 1.100
#      feed_scaler: 1.100
#
#    motor0:
#      limit_neg_pin: gpio.39:low
#      limit_pos_pin: NO_PIN
#      limit_all_pin: NO_PIN
#      hard_limits: false
#      pulloff_mm: 3.000
#      tmc_2209:
#        uart_num: 1
#        addr: 3
#        cs_pin: i2so.22
#        r_sense_ohms: 0.110
#        run_amps: .1
#        hold_amps: 0.050
#        microsteps: 16
#        stallguard: 0
#        stallguard_debug: false
#        toff_disable: 0
#        toff_stealthchop: 5
#        toff_coolstep: 3
#        run_mode: StealthChop
#        homing_mode: StealthChop
#        use_enable: false
#        step_pin: I2SO.21
#        direction_pin: I2SO.20
#        disable_pin: I2SO.23

i2so:
  bck_pin: gpio.22
  data_pin: gpio.21
  ws_pin: gpio.17

spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18

sdcard:
  cs_pin: gpio.5
  card_detect_pin: NO_PIN
  frequency_hz: 20000000

probe:
  pin: gpio.36:low
  toolsetter_pin: NO_PIN
  check_mode_start: true

start:
  must_home: false

coolant:
  flood_pin: gpio.2
  mist_pin: gpio.16
  delay_ms: 0

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

macros:
  startup_line0:
  startup_line1:
  macro0:
  macro1:
  macro2:
  macro3:

user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: gpio.26
  digital1_pin: gpio.27
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN

#Laser:
#  pwm_hz: 5000
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  tool_num: 0
#  speed_map: 0=0.000% 255=100.000%
#  off_on_alarm: true

# pwm:
#  pwm_hz: 5000
#  direction_pin: gpio.26
#  output_pin: gpio.27
#  enable_pin: NO_PIN
#  disable_with_s0: false
#  s0_with_disable: true
#  spinup_ms: 0
#  spindown_ms: 0
#  tool_num: 0
#  speed_map: 0=0.000% 1000=100.000%
#  off_on_alarm: false

# 5V out gpio.26/27
# VMot out gpoi.2/16
# In's left to right gpoi.25/33/32/35/34/39/36

The following situation that I encountered does not sound likely to be your issue, as a differing number of teeth on the pulleys seems more likely. However, I just thought I would mention it.

I had an unnecessary trailing space in my config.YAML file and it caused one of my Z steppers to move much farther than the other one. Checking my file for the unneeded trailing spaces fixed this. It has to do with how the firmware parses the config file, and apparently unneeded trailing spaces are a no-no.

Yah, I read your commentary on that about a week ago. My first thought was; I should help make that scanner better.

As for this current situation, I didn’t touch the config file. So, if I’m having this problem based on config, I’d expect others to have the same. But, I will check anyway eventually.

I only have 3 pulleys (x,y1,y2), and when I built the thing, I thought they were all the same. Barring the proctology exam of the config coming back clean, I’ll have to take those all apart and inspect.

Since I’m a noob with respect to LowRider builds, I’m sure there’s something I could have done to put it off track, so thanks for all the suggestions.

1 Like

This is sound. The 3 rules of troubleshooting:

  1. Don’t trust anything the last guy did or said they did (even if it was you).
    They couldn’t fix the problem
  2. Try the easiest things first.
  3. It’s most often user error.

Well, I took the thing apart, and sure enough, the pulley on the left has 20 teeth on it instead of 16. I can assume the one on the right has 16, because it’s already moving the expected distance. I didn’t check the x-axis, but now I guess I should.

I seem to remember vaguely counting teeth on a pulley when I first got them, and I must have gotten lucky and counted one that had 16 on it.

This is all from the kit, so Ryan might want to check other pulleys to be doubly sure.

I’ll just order some new pulleys, and move on.

You got a 20T from me?!?! What is your order number?

That is crazy, first time for everything. I am very sorry.

Order #24035. Remember, I was also having challenges with linear rails.
I’m chalking it all up to holiday gremlins.

Sorry, I missed the email. Can I reimburse you for the replacement or should I send a new one?

Nah, I already ordered new stuff. It will waste time and CO2 shipping one more by itself. I’m good. Already installed the new one, and I’ll put the thing back on the rails tomorrow and continue on.

1 Like

I would like to report success. Installing 16T pulley totally fixed the problem (I had 20T pulley on one motor).

In hindsight, I should have diagnosed to that as well, but I’m more electronics and software minded, so my first thought was ‘driver is configured wrong’, but the astute in the crowd here diagnosed it correctly immediately!

Thanks for your support, now on to squaring and crowning.

As an aside, I really like this jackpot board. It’s feeling like I can standardize a few different machines around it.

6 Likes

Blue and brown, I like it.

2 Likes

You’d be surprised how often that happens. Like when you go to the dr and you tell them you have this cough. They ask you what color the phlegm is and immediately prescribe you the right medicine.

If it is off by 20%, it is a 20T pulley. If it is off by 200%, it is the wrong microsteps (used to happen more often with Ramps). If it is off by 4%, you tried to calibrate it and over tuned.

1 Like