This is my second/back to back E-stop trying to initially run a g-code sample (router off). This happens when the sled is moving to the right (opposite the error axis) on the work surface. It seems to happen in the same spot on the work surface…the point at significant belt angle diversion from the tensioning/non-tensioning side of the sled.
Any thoughts?
4.1/FW 1.05
Clipped Encoders
Manual calibration
8x10 horizontal wood frame
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.037mm Counter: 1]
[MSG:WARN: Previous error was 15.037mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.025mm Counter: 1]
[MSG:WARN: Previous error was 15.025mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.075mm Counter: 2]
[MSG:WARN: Previous error was 15.075mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.127mm Counter: 3]
[MSG:WARN: Previous error was 15.127mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.014mm Counter: 4]
[MSG:WARN: Previous error was 15.014mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.074mm Counter: 5]
[MSG:WARN: Previous error was 15.074mm]
[MSG:WARN: Position error on Bottom Left axis exceeded 15mm while running. Error is 15.116mm Counter: 6]
[MSG:WARN: Previous error was 15.116mm]
[MSG:ERR: Emergency stop! Stopping all motors]
1 Like
bar
May 7, 2025, 7:40pm
2
Does it happen every time in the same spot? It could be related to this bug:
opened 11:31PM - 30 Mar 25 UTC
### Controller Board
1.09 JST-XH Board
### Machine Description
Stock Maslow 4… .1
### Input Circuits
```yaml
```
### Configuration file
```yaml
board: Maslow
name: Maslow S3 Board
meta:
Maslow_vertical: false
Maslow_calibration_grid_width_mm_X: 1000.000000
Maslow_calibration_grid_height_mm_Y: 700.000000
Maslow_calibration_grid_size: 7
Maslow_tlX: 135.899994
Maslow_tlY: 3115.699951
Maslow_trX: 4404.000000
Maslow_trY: 3106.300049
Maslow_blX: 0.000000
Maslow_blY: 0.000000
Maslow_brX: 4428.100098
Maslow_brY: 0.000000
Maslow_tlZ: 100.000000
Maslow_trZ: 56.000000
Maslow_blZ: 34.000000
Maslow_brZ: 78.000000
Maslow_Retract_Current_Threshold: 900
Maslow_Calibration_Current_Threshold: 900
Maslow_Acceptable_Calibration_Threshold: 0.450000
Maslow_Extend_Dist: 2725.000000
Maslow_beltEndExtension: 30.000000
Maslow_armLength: 123.400002
stepping:
engine: Timed
idle_ms: 240
pulse_us: 4
dir_delay_us: 0
disable_delay_us: 0
segments: 12
uart1:
txd_pin: gpio.1
rxd_pin: gpio.2
rts_pin: NO_PIN
cts_pin: NO_PIN
baud: 115200
mode: 8N1
spi:
miso_pin: gpio.13
mosi_pin: gpio.11
sck_pin: gpio.12
sdcard:
cs_pin: gpio.10
card_detect_pin: NO_PIN
frequency_hz: 8000000
kinematics:
Cartesian:
axes:
shared_stepper_disable_pin: NO_PIN
shared_stepper_reset_pin: NO_PIN
x:
steps_per_mm: 80.000000
max_rate_mm_per_min: 2000.000000
acceleration_mm_per_sec2: 25.000000
max_travel_mm: 2438.399902
soft_limits: false
homing:
cycle: -1
allow_single_axis: true
positive_direction: true
mpos_mm: 0.000000
feed_mm_per_min: 50.000000
seek_mm_per_min: 200.000000
settle_ms: 250
seek_scaler: 1.100000
feed_scaler: 1.100000
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000000
null_motor:
y:
steps_per_mm: 80.000000
max_rate_mm_per_min: 2000.000000
acceleration_mm_per_sec2: 25.000000
max_travel_mm: 1219.199951
soft_limits: false
homing:
cycle: -1
allow_single_axis: true
positive_direction: true
mpos_mm: 0.000000
feed_mm_per_min: 50.000000
seek_mm_per_min: 200.000000
settle_ms: 250
seek_scaler: 1.100000
feed_scaler: 1.100000
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000000
null_motor:
z:
steps_per_mm: 100.000000
max_rate_mm_per_min: 400.000000
acceleration_mm_per_sec2: 10.000000
max_travel_mm: 100.000000
soft_limits: false
homing:
cycle: -1
allow_single_axis: true
positive_direction: true
mpos_mm: 0.000000
feed_mm_per_min: 50.000000
seek_mm_per_min: 200.000000
settle_ms: 250
seek_scaler: 1.100000
feed_scaler: 1.100000
motor0:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000000
tmc_2209:
uart_num: 1
step_pin: gpio.15
direction_pin: gpio.16
disable_pin: NO_PIN
r_sense_ohms: 0.110000
run_amps: 1.000000
hold_amps: 0.500000
microsteps: 1
toff_disable: 0
toff_stealthchop: 5
use_enable: true
addr: 0
run_mode: StealthChop
homing_mode: StealthChop
stallguard: 0
stallguard_debug: false
toff_coolstep: 3
motor1:
limit_neg_pin: NO_PIN
limit_pos_pin: NO_PIN
limit_all_pin: NO_PIN
hard_limits: false
pulloff_mm: 1.000000
tmc_2209:
uart_num: 1
step_pin: gpio.46
direction_pin: gpio.38
disable_pin: NO_PIN
r_sense_ohms: 0.110000
run_amps: 1.000000
hold_amps: 0.500000
microsteps: 1
toff_disable: 0
toff_stealthchop: 5
use_enable: true
addr: 1
run_mode: StealthChop
homing_mode: StealthChop
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
coolant:
flood_pin: NO_PIN
mist_pin: NO_PIN
delay_ms: 0
probe:
pin: NO_PIN
check_mode_start: true
macros:
startup_line0:
startup_line1:
macro0:
macro1:
macro2:
macro3:
start:
must_home: true
deactivate_parking: false
check_limits: false
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: 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
NoSpindle:
arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 16
```
### Startup Messages
```text
Normal
```
### User Interface Software
WebUI
### What happened?
There is a bug in the kinematics code which is resulting in the machine behaving erratically when running certain gcode files.
There may be multiple bugs which result in similar behavior because some have been reported in the forums which can be fixed by moving the home position. In this case moving the home position didn't help, but changing the anchor point locations slightly (but re-running calibration) did fix the issue.
The bug is that just before the word night finishes in this file (change extension to .nc) the machine will crash with the 15mm position error.
[Night Cap3.txt](https://github.com/user-attachments/files/19527944/Night.Cap3.txt)
It is VERY repeatable (~15x in a row in the same spot). After pretty extensive testing of hardware and software it appears that the issue is related to the kinematics system. Moving the anchor point locations fixes the issue.
Initially the issue appeared with the home position defined like this:

But changing that doesn't prevent the issue.
Slightly adjusting the anchor point locations fixes it. The kinematics math needs to be investigated.
Potentially there is something in the floating point math which gets very large and results in significant floating point calculation errors. This results in the machine target position jumping around and the machine thinking that it is off target.
### Other Information
_No response_
I’m not sure what causes that yet, but for me the solution was either changing the gcode file or running calibration again would fix it.
I think that there is something funky happening in the math, but I’m not sure what yet