Stalling issue

Hello everyone!

I am having difficulties with my Jackpot Board. I have connected the board to my Shark Pro CNC and my steppers are moving (X, Y, Z) but around 50% of the time, when I do a G21 100unit move, the motor stalls. This happens more often (80% of the time) on my X axis, and occasionally on my Y-axis.

However, when I home the X-axis (the one that stalls on any big move command), it homes without fail.

I have tried swapping the motor drivers (X- and Y-) to see if it is the driver with the issue, but after the switch, the motor stalls are happening at the same rate (often on the X-axis, infrequently on the Y-axis). I have also tried turning down the run and hold amps from 2.0 to 1.0, but this does not change anything either.

I have attached a video of the stalls occurring on my Y-Axis move commands (pending video upload). In the video, several movements are executed successfully, but then the motor starts to stall. I captured the move commands from my laptop window in the video.

I appreciate your time and assistance with what is hopefully a beginner’s error. Please let me know if this post is not submitted to the right part of this forum, or if it is not a Jackpot Board issue.

board: Jackpot TMC2209
name: Shark Pro
meta: 03/07/2024 BeauY

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: 62.99213
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 600
    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
#    motor1:
#      limit_neg_pin: NO_PIN
#      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

    #A
    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: 3
        cs_pin: i2so.14
        r_sense_ohms: 0.110
        run_amps: 1.0
        hold_amps: 1.0
        microsteps: 2
        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:low
        disable_pin: I2SO.15	

  y:
    steps_per_mm: 62.99213
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 600
    soft_limits: false
    homing:
      cycle: 2
      positive_direction: true
      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
#    motor1:
#      limit_neg_pin: NO_PIN
#      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
    
     #B
    motor0:
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.33: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: 1.0
        hold_amps: 1.0
        microsteps: 2
        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:low
        disable_pin: I2SO.16

  z:
    steps_per_mm: 62.99213
    max_rate_mm_per_min: 1200.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 150.0
    soft_limits: false
    homing:
      cycle: 0
      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

#    motor1:
#      limit_neg_pin: NO_PIN
#      limit_pos_pin: NO_PIN
#      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: 2
#        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

     #C
    motor0:
      limit_neg_pin: NO_PIN
      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.0
        hold_amps: 1.0
        microsteps: 2
        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:
  mist_pin: gpio.2
  flood_pin: NO_PIN
  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

relay:
  direction_pin: NO_PIN
  output_pin: gpio.16
  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% 0=100.000% 1=100.000%
  off_on_alarm: false

We don’t use g21 for moves. You need to set a reasonable feedrate as well.
G0 X100 F1200

You need to set this to match your steppers. .68 is very low.
Did you adjust your steps per mm as well?

If you are not using a V1 machine you need to edit all your settings to match your builds parts.

Sorry, I am using the A B and C slots on the Jackpot board. The formatting went away (the ##s turned into bold font) when I posted my config, but I have the motor1 commented out on my config, and I have the RUN and HOLD amps set to 1 on my A (x) B (y) and C (z) motors. The 0.68A was from the github Lowrider3 config file (possibly outdated).

Thank you for the quick reply! You always kill it with the response time.

Here is a video of the stall happening. I was issuing the move commands through the ESP3D webUI

You really need to take a closer look. What pulleys, what steppers, and what speeds.

Why are you using ABC instead of XYZ?

I can’t be of much help because I have no idea what hardware you are using.

When you do move is 100mm actually moving 100mm?

Use the gcode IU showed you. Start slower and work your way up.

There are a lot of questions here.

Cut and paste, then highlight it and select preformatted text.

I managed to figure it out.

My steps per MM was way off, causing me to stall when I jogged at a high speed (you were right). I turned down my microsteps, inspected my leadscrews, fixed my steps per mm, jogged slower (1000) and it works fine now.

I am using A B and C because I tried to desolder the Dupont connectors and solder in JST-PH connectors for my steppers. I failed and could not solder in the JST-PH connectors. So I cut my stepper connectors off and crimped Dupont connectors, so they fit into A B and C fine now. I also ordered some Dupont connectors with latch for my upcoming LR3 build.

After inspecting my leadscrews, I figured out that my steps per mm was way off. I was also microstepping too high (lowering torque) and this compounded the issue. I lowered my microsteps to 1, which brought me into the correct ballpark for the steps per mm (~30).

Now when I command the machine to move 10mm on X, Y, and Z, it moves 10mm. I’m working through homing issues (wrong direction) in my config file now.

Honestly, in hindsight, learning FLUIDNC with nonstandard hardware was a mistake and I made it a lot harder on myself. I wanted to try out the Jackpot Board and Fluidnc before I built my LR3, to get experience with the software (and the jackpot board had everything I needed vs the 6-pack).

I thought that since I run Fluidd on my printers, running it on a CNC would be straightforward. I was a little too optimistic, lol.

Fluid does not work for printers.

Fluid is one of the easiest Firmware to set up. I actually think you made a great choice here. If you had to do this in any other firmware, there is a lot more to worry about then you need to compile and flash. Fluid is by far the easiest.

Is FluidNC not related to the Fluidd front-end for Klipper?

I figured they were related, since Fluidd (for printers) was the interface for controlling Klipper, and Fluidnc is for controlling CNCs. Naming coincidence?

Nope not related in any way.

That explains why I felt FluidNC was so unfamiliar. I’ve almost got it working now, just figuring out SSR control of my router