Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Position Tolerance Exceeded

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    2
    95
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ash100undefined
      ash100
      last edited by

      Whenever homing the axes of this large custom designed printer, the axes says "Warning: Driver 72.0 warning: position tolerance exceeded". I assume this is because the motors are moving fast when they suddenly stop at a limit switch. How do I fix this warning? Is there a way to fix it without compromising the speed?

      I am using a mainboard 6HC connected to M23CL motors, which then have lead screws/pulleys to actuate a gantry.

      config.g

      ; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.5.10 on Sun Jan 19 2025 10:10:54 GMT-0800 (Pacific Standard Time)
      
      ; General
      G90 ; absolute coordinates
      M83 ; relative extruder moves
      M550 P"5axis" ; set hostname
      G4 S2
      
      ;Drivers
      M569 P70.0 S0 R1; driver 0.0 goes forwards (X axis)
      M569.1 P70.0 T3 R100 I0
      M569 P70.0 D4
      
      ;M569 P71.0 S1 D2 ; driver 0.1 goes forwards (Y axis)
      M569 P71.0 S0 R1
      M569.1 P71.0 T3 R100 I0
      M569 P71.0 D4
      
      ;M569 P72.0 S1 D2 ; driver 0.2 goes forwards (Z axis)
      M569 P72.0 S0 R1
      M569.1 P72.0 T3 R100 I0
      M569 P72.0 D4
      
      ;M569 P73.0 S1 D2 ; driver 0.4 goes forwards (U axis)
      M569 P73.0 S0 R1
      M569.1 P73.0 T3 R100 I0
      M569 P73.0 D4
      
      ;M569 P74.0 S1 D2 ; driver 0.5 goes forwards (V axis)
      M569 P74.0 S0 R1
      M569.1 P74.0 T3 R100 I0
      M569 P74.0 D4
      
      
      ; Axes
      M584 X70.0 Y71.0 Z72.0 U73.0 V74.0 E75.0 ; set axis mapping
      M350 X16 Y16 Z16 U16 V16 I1 ; configure microstepping with interpolation
      M92 X640 Y640 Z1969.230 U800 V27.350 ; configure steps per mm
      M906 X1500 Y1500 Z1500 U1500 V1500 ; set axis driver currents
      M208 X0:1000 Y0:820 Z0:210 U-20:100 V-999:999 ; set minimum and maximum axis limits
      M566 X500 Y500 Z500 U500 V1000 ; set maximum instantaneous speed changes (mm/min)
      M203 X1500 Y1500 Z500 U500 V2000 ; set maximum speeds (mm/min)
      M201 X500 Y500 Z500 U500 V1000 ; set accelerations (mm/s^2)
      
      ; Kinematics
      ;M669 K8 ; configure CoreXYUV kinematics
      
      ; Endstops
      M574 X1 P"!io3.in" S1 ; configure X axis endstop
      M574 Y1 P"!io0.in" S1 ; configure Y axis endstop
      M574 Z2 P"!io7.in" S1 ; configure Z axis endstop
      M574 U0 ; configure U axis endstop
      M574 V0 ; configure V axis endstop
      
      G92 V0 ; set V axis to zero upon startup
      G92 U0 ; set V axis to zero upon startup
      
      ; Extruder
      M350 E16 I1 ; configure microstepping with interpolation
      M906 E900  ; set extruder driver currents
      M92 E2682   ; configure steps per mm
      M566 E120   ; set maximum instantaneous speed changes (mm/min)
      M203 E3600  ; set maximum speeds (mm/min)  
      M201 E250   ; set accelerations (mm/s^2)
      
      ;Nozzle Temperature
      M308 S1 P"75.temp1" Y"thermistor" A"Nozzle" T100000 B4267 C7.06e-8 ; configure sensor #1
      M950 H1 C"75.out0" T1 ; create heater #1 hotend heater
      M143 H1 P0 S275 A0
      M143 H1 P1 S285 A2
      M307 H1 R4.663 K0.549:0.000 D1.95 E1.35 S1.00 B0
      
      
      ; Scanning Z Probe
      M558 P11 C"75.i2c.ldc1612" F36000 T36000
      M308 A"SZP coil" S10 Y"thermistor" P"75.temp2" ; thermistor on coil
      G31 Z2 X302 Y245
      ; M558.2 K0 S13 R142607
      M557 X292:312 Y235:255 P10
      

      homex.g

      ; homex.g
      ; called to home the X axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.5.10 on Sun Jan 19 2025 10:11:00 GMT-0800 (Pacific Standard Time)
      
      ; increase Z
      G90; ABSOLUTE positioning
      G1 H2 Z200 ; move z axis to 5mm from top
      G90 ; absolute positioning
      
      ; home X
      G91 ; relative positioning
      var maxTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm
      G1 H1 X{-var.maxTravel} F5000 ; coarse home in the -X direction
      G1 X5 F6000 ; move back 5mm
      G1 H1 X{-var.maxTravel} F300 ; fine home in the -X direction
      G90 ; absolute positioning
      
      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @ash100
        last edited by

        @ash100 the reason we haven't seen this before is that or recommendation us to home in open loop mode. You can do this by using M569 with D parameter to switch to open loop mode at the start if each homing file, and back to closed loop mode at the end.

        Homing in closed loop mode may be possible with the right mechanics. The reason you get the position error is probably because after the homing switch is triggered, there is a latency of a few milliseconds before the command to stop the motor is received. If you can arrange your homing switch to trigger a small distance (2mm may be enough) before the physical stop is reached, so that the motor can overshoot the homing position slightly without hitting a hard stop, that may avoid the error. If it doesn't then I will need to amend the firmware to ignore position errors immediately after the motor is commanded to stop during homing.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Unless otherwise noted, all forum content is licensed under CC-BY-SA