ALARM: 2 Soft limit alarm

Hi All,

I recently finished building the Lowrider v4 with Jackpot V1 (ordered from v1e).

When I try to home the machine and then move it using manual G-codes, I get a soft limit alarm. After homing Z, I use the following G-codes:

G21
G91
G94
G1 Z-1 F200

And I get a soft limit alarm. The same happens on both axes. I think I might have misconfigured something because this was working fine earlier. I’ve tried using different Z values (e.g., -50), but I keep getting the soft limit alarm. However, I can still move the machine using the web UI (after reboot the jackpot), but these G-codes don’t work.

I made changes in the config to set the X and Y soft limits, and also turned on all hard limits. Nothing else has been changed.

  • Could someone give me some guidance on what the problem could be?
  • Also, when I get this soft limit alarm I can not do anything. I can’t reset it; I have to switch the Jackpot off and on again. Is there a better way to handle this? (this is a general problem, that I can’t use the webui after any alarm, even if I push the Clear Alarm icon/button)

Error message:

config.yaml

board: Jackpot TMC2209
name: LowRider
meta: 10-31-2024 RyanZ
stepping: 
  engine: I2S_STATIC
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 0
  segments: 12

uart1: 
  txd_pin: gpio.0
  rxd_pin: gpio.4
  rts_pin: NO_PIN
  cts_pin: NO_PIN
  baud: 115200
  mode: 8N1
  passthrough_baud: 0
  passthrough_mode: 8E1

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

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

kinematics: 
  Cartesian: 

axes: 
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN
  homing_runs: 2
  x: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 1248.000000
    soft_limits: true
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 3.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.25
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 0
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.2
        direction_pin: I2SO.1
        disable_pin: I2SO.0
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.700000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  y: 
    steps_per_mm: 50.000000
    max_rate_mm_per_min: 9000.000000
    acceleration_mm_per_sec2: 200.000000
    max_travel_mm: 2500.000000
    soft_limits: true
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 3.000000
      feed_mm_per_min: 300.000000
      seek_mm_per_min: 1500.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: gpio.33
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 1
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.5
        direction_pin: I2SO.4
        disable_pin: I2SO.7
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.700000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

    motor1: 
      limit_neg_pin: gpio.35
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.14
        uart_num: 1
        step_pin: I2SO.13
        direction_pin: I2SO.12
        disable_pin: I2SO.15
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.700000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

  z: 
    steps_per_mm: 200.000000
    max_rate_mm_per_min: 1800.000000
    acceleration_mm_per_sec2: 80.000000
    max_travel_mm: 300.000000
    soft_limits: false
    homing: 
      cycle: 1
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 3.000000
      feed_mm_per_min: 200.000000
      seek_mm_per_min: 800.000000
      settle_ms: 500
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.32
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 2
        cs_pin: NO_PIN
        uart_num: 1
        step_pin: I2SO.10
        direction_pin: I2SO.9
        disable_pin: I2SO.8
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.700000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

    motor1: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: gpio.34
      limit_all_pin: NO_PIN
      hard_limits: true
      pulloff_mm: 4.000000
      tmc_2209: 
        addr: 3
        cs_pin: I2SO.19
        uart_num: 1
        step_pin: I2SO.18
        direction_pin: I2SO.17
        disable_pin: I2SO.16
        r_sense_ohms: 0.110000
        run_amps: 0.800000
        hold_amps: 0.700000
        microsteps: 8
        toff_disable: 0
        toff_stealthchop: 5
        use_enable: false
        run_mode: StealthChop
        homing_mode: StealthChop
        homing_amps: 0.800000
        stallguard: 0
        stallguard_debug: false
        toff_coolstep: 3

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
  fault_pin: NO_PIN
  estop_pin: NO_PIN

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

probe: 
  pin: 'gpio.36:low'
  toolsetter_pin: NO_PIN
  check_mode_start: true
  hard_stop: false

macros: 
  startup_line0: 
  startup_line1: 
  Macro0: 
  Macro1: 
  Macro2: 
  Macro3: 
  after_homing: 
  after_reset: 
  after_unlock: 

start: 
  must_home: false
  deactivate_parking: false
  check_limits: true

parking: 
  enable: false
  axis: Z
  target_mpos_mm: -5.000000
  rate_mm_per_min: 800.000000
  pullout_distance_mm: 5.000000
  pullout_rate_mm_per_min: 250.000000

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
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

user_inputs: 
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: true
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 32

Why I turned on hard limits**:** I made a mistake. I homed Z, then I wanted to move it down, but I entered the wrong G-code: G0 Z60. I forgot the minus sign, so it started moving up instead. The part that holds the Z limit switches was not tight, and the whole beam somehow went past them. It made a bad sound. I cut the strut, assembled it, and after that, I decided to turn on the hard limits so it can’t go past those switches. My soft limit problem appeared sometime after this. (Also, I’m worried that the coupler may have come loose or slipped out of place, but verifying this would require fully disassembling the motor, which I haven’t done.)

Thank You For Your Help

In general, I would not use soft or hard limits. You appear to have both enabled which I have never seen before.

I do not use limits on my Lowrider but I do use soft limits on a pen plotter. When using this, you must home all axes before doing anything, otherwise the machine doesn’t know where it is.

This is just the stepper motor skipping steps. It sounds bad but it doesn’t hurt anything.

Depends on what the alarm is. Sometimes I will do a soft reset followed by clearing the alarm. Having soft/hard limits complicates this since you will need to home again.

1 Like

…running into the end of travel tends to necessitate a rehoming, too.

2 Likes

I disabled the hard limits and now it is working. Thank you.