How to Edit [MSG:INFO: Axis X (-817.000,3.000)]

Sorry, I was riding a car (coming home from Christmas vacation) while trying to read along, and I somehow missed this until now.

Homing to X-min and Y-max is indeed doable, albeit, the best way I know to do it, is by doing a logic swap in config, in which the X and Y labels / axes get swapped for each other.

Thus your CAM work can still be done like normal, in the “quadrant 1” area where all your X and Y CAM coordinates are positive, is still on the table, just turned 90 degrees from “standard” LowRider, like this:

Instead of this:

This kind of swap does not require any weird CAM magic or mumbo jumbo. The wide bottom edge of a landscape screen on a laptop or tablet during CAM work corresponds to the “wide” (long) side on the table. I personally have mine set up as “swapped” in this way, and I do prefer it. Obviously it is a departure from the standard plan.

In my mind, I would “see” such a table like this:

1 Like

I think that’s what he has now, if I understand correctly based on his picture.

Just needs to fix the X homing.

Yes. All except for, some bit of of something will be needed to get a usable coordinate space for CAM output.

@NetworkLarry :

I had another thought for how you could do homing to X-min and Y-max, without swapping the X and Y axes with each other (i.e. without rotating the coordinate system). Here’s the idea: for Y axis, edit the value named " mpos_mm – which according to the wiki

mpos_mm – Sets the machine position after homing and limit switch pull-off in millimeters. If you want the machine position to be zero at the limit switch, set this to zero. Keep in mind the homing direction you choose this number.

So I think if you set it to 2270 (or something around that number as shown on your drawing), then when you home to that back left corner, it will home, then do the “pull_off”, and then set the Y axis location value to 2270, effectively setting the Y=0 to be a point at the front left of your table. !! At that point your X,Y nexus for 0,0 will be at the front left side (near left) of your table.

I think the mpos_mm value would be set to positive, but if I’m not understanding it right, then change it to a negative.

PS: also just to reitereate, I’m not 100% certain, but my current understanding of your setup is that your Y value is getting smaller as the machine moves toward the back, which means your Y stepper wires are plugged in backwards, and after you fix that, you’d need to edit your config for Y homing settings, changing positive_direction: false to true.

Nothing is mirrored in that configuration. It’s just rotated 90º right?

So CAM should be normal, I would think, except that his boards have to be rotated also.

Standing at the side, (0, 0) is still his bottom left, so the coordinate space is fine for CAM.

Just that it’s a little more trouble dealing with looking around the X Gantry and router, etc., right?

I think it’s more of a pain than it’s worth to do it that way, but I don’t think it presents any challenges except that the he has to remember to rotate the stock… and support is trickier.

If he has not swapped his X and Y axes, it’s not rotated yet.

According to his previous posts, X is normal, but Y is opposite. Y- is moving away, and Y+ is moving forward, correct?

That means his current configuration is as your picture showed. Homing to rear left.

Which is 90º clockwise from standard, right?

@NetworkLarry

Below is an edited version of your config.yaml file shown in the first post, that seeks to implement the approach I suggested in the quote above.

Also, I noticed that your values for pulloff_mm, at 10, are larger than normal, which may be no issue for you, but since somewhere between 4 to 5 is normal, at 10, you are giving up some cuttable area that you could keep. If you do decide to try this, let me know if it does right for you!

board: Jackpot TMC2209
name: LowRider
meta: 12-22-2024 NetworkLarry
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

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

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: 820.000000
    soft_limits: false
    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: false
      pulloff_mm: 10.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: 2740.000000
    soft_limits: false
    homing: 
      cycle: 2
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 2270.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: false
      pulloff_mm: 10.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: false
      pulloff_mm: 10.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: false
      pulloff_mm: 10.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: false
      pulloff_mm: 10.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: 10.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: true
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 32

Trading + for - will not be the same as swapping X for Y. The X-Y swap is what would rotate it.

oh, yeah, I wasn’t thinking about the X-Y difference in your picture…

Just that he’s currently got it in landscape orientation. 90º clockwise.

Which should cause no CAM problems as it currently is configured

1 Like