The Green Machine

You can set must_home to true.

Start (Start Options) | Wiki.js

You can set max travel on each axis and then setup soft limits. I would hold off on that for awhile. In practice, you don’t really do this more than once or twice and even when you do, the motors just skip steps without damaging the machine. Setting up hard/soft limits just seems to add confusion for many. Although, it is helpful if you are requiring homing before motion.

Note that limit switches don’t do anything outside of homing.

2 Likes

that wiki is awesome. thanks.

Do soft limits only apply to gcode? I have set the values in my yaml, but after saving and rebooting - verifying in the GUI/WI I can still jog right past them.

max_travel_mm: 611
soft_limits: true

They apply to gcode and jogging. How did you save the changes? The normal save button “saves” them to the current active config. The save macro actually updates the yaml file. Without that second save, it will be reset on restart.

That macro save calls
$CD=config.yaml
which does a config dump of what is in memory to the config file.

have done it a couple different ways. I have edited the yaml directly, uploaded and restarted.

I have edited through the WI saved and restarted.

I have yelled it it and restarted it.

I bribed it with some fresh grease for its threaded rods and rebooted it.

So far no joy.

When you run $SS, does it show any errors?

Also, share your config.yaml file.

You’ve homed the machine before trying to exceed the soft limits, correct?

1 Like

yeah. crashes are a peave. set homing required. homed. even set the soft limit to something low like 100 and it just cruised right through it.

I would post your config.yaml so that we can put a second set of eyes on it.

lemme run down to the freezer/basement and nab a copy.

config.zip (1.7 KB)

Looks like you’ve only got soft limits enabled for the X axis.

  x:
    steps_per_mm: 50.000
    max_rate_mm_per_min: 9000.000
    acceleration_mm_per_sec2: 200.000
    max_travel_mm: 611
    soft_limits: true

  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

  z:
    steps_per_mm: 200.000
    max_rate_mm_per_min: 900.000
    acceleration_mm_per_sec2: 80.000
    max_travel_mm: 150.000
    soft_limits: false

Correct - started with one to see if I could get it to act right. From what I read in the wiki you could mix and match. Do all 3 axis need to be enabled for it to work?

[MSG:Homed:Z]
[MSG:Homed:XY]
$SS
[MSG:INFO: FluidNC v3.9.9 https://github.com/bdring/FluidNC\]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:config.yaml]
[MSG:INFO: Machine LowRider]
[MSG:INFO: Board Jackpot3 TMC2226]
[MSG:INFO: UART1 Tx:gpio.16 Rx:gpio.4 RTS:NO_PIN Baud:115200]
[MSG:INFO: I2SO BCK:gpio.22 WS:gpio.17 DATA:gpio.21Min Pulse:2us]
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN freq:20000000]
[MSG:INFO: Stepping:I2S_STATIC Pulse:2us Dsbl Delay:0us Dir Delay:1us Idle Delay:255ms]
[MSG:INFO: User Digital Output: 0 on Pin:gpio.26]
[MSG:INFO: User Digital Output: 1 on Pin:gpio.27]
[MSG:INFO: User Digital Output: 2 on Pin:gpio.0]
[MSG:INFO: User Digital Output: 3 on Pin:gpio.2]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (3.000,614.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 CS:NO_PIN Step:I2SO.2 Dir:I2SO.1 Disable:I2SO.0 R:0.110]
[MSG:INFO: Neg Limit gpio.25]
[MSG:INFO: Axis Y (3.000,2443.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:1 CS:NO_PIN Step:I2SO.5 Dir:I2SO.4 Disable:I2SO.7 R:0.110]
[MSG:INFO: Neg Limit gpio.33]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.14 Step:I2SO.13 Dir:I2SO.12 Disable:I2SO.15 R:0.110]
[MSG:INFO: Neg Limit gpio.35]
[MSG:INFO: Axis Z (-147.000,3.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:2 CS:NO_PIN Step:I2SO.10 Dir:I2SO.9 Disable:I2SO.8 R:0.110]
[MSG:INFO: Pos Limit gpio.32]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:3 CS:I2SO.19 Step:I2SO.18 Dir:I2SO.17 Disable:I2SO.16 R:0.110]
[MSG:INFO: Pos Limit gpio.34]
[MSG:INFO: X Axis driver test passed]
[MSG:INFO: Y Axis driver test passed]
[MSG:INFO: Y2 Axis driver test passed]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Connecting to STA SSID:Connecting…]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 10.0.0.120]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/\]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Probe gpio.36:low]

My understanding, too, is that it should work with a single axis.

I’ve only got 3 days of experience using FluidNC, so without trying it on hardware (and I’m on the way out the door) my only other thought is to confirm that it’s not just moving to the max_travel_mm position. That is, when it exceeds the soft limit distance confirm that the controller reports a position in excess of the soft limit (in case there’s some issue with your stepper driver microstepping causing it to physically move further than the controller expects).

i’m going based off the reported position in the web UI. my travel is 611mm I have set the max travel to 100 and I can go 500 past that. would have to be one hell of a mismatch.

So part of this ended up being half - that the pulloff exists outside the work area so your endpoint needs to be offset by whatever your pulloff is. The other half - and I don’t know if this is normal - when I update settings. Pull off / travel / etc… It seems that I have to update them in both the web UI (save restart) and then in the config.yaml (save restart) for the change to become active. Is this normal? Hopefully i’m just missing some very simple step.

1 Like

After you update in the webui and save, before you restart go back to the main screen and run the save macro. Then after that restart the board. That should get you going with just one restart

2 Likes

save macro just a button on the main screen?

3 Likes

Yes sir. Should say SAVE. You can also run $CD=config.yaml in the terminal window if you dont see the macro for it

2 Likes