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

    Multiple X homes produce cumulative error

    Scheduled Pinned Locked Moved
    Duet Web Control
    2
    4
    202
    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.
    • jasbeckettundefined
      jasbeckett
      last edited by droftarts

      I am experiencing a very weird issue when homing X. Every time I home X after the initial home 3.9 mm is being added to the new ending X coordinate. Resulting in a cumulative error after multiple homing sequences such as with bed leveling. Y and Z home normally and have a repeatable ending coordinate as expected. Setup , diagnostics and config files are below. Any suggestions are appreciated.

      setup is a Duet3 MB6HC with a revision 1.2 toolboard in an SBC setup with an RPI 4

      Stable releases
      DWC version 3.4.0
      DSF veersion 3.4.0
      RRF firmware version 3.4.0

      Diagnostics:

      M122
      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (SBC mode)
      Board ID: 08DJM-956BA-NA3TN-6J1D6-3SJ6L-TV86U
      Used output buffers: 1 of 40 (21 max)
      === RTOS ===
      Static ram: 151000
      Dynamic ram: 66092 of which 100 recycled
      Never used RAM 133408, free system stack 129 words
      Tasks: SBC(ready,0.6%,466) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,269) CanReceiv(notifyWait,0.0%,772) CanSender(notifyWait,0.0%,356) CanClock(delaying,0.0%,339) TMC(notifyWait,8.0%,58) MAIN(running,91.2%,923) IDLE(ready,0.2%,30), total 100.0%
      Owned mutexes: HTTP(MAIN)
      === Platform ===
      Last reset 00:13:39 ago, cause: power up
      Last software reset at 2022-05-25 13:30, reason: User, GCodes spinning, available RAM 132976, slot 0
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0043c000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
      Error status: 0x00
      Aux0 errors 0,0,0
      Step timer max interval 135
      MCU temperature: min 32.5, current 34.6, max 43.5
      Supply voltage: min 24.0, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
      12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
      Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min 0, mspos 8, reads 42318, writes 11 timeouts 0
      Driver 1: standstill, SG min 0, mspos 860, reads 42302, writes 27 timeouts 0
      Driver 2: standstill, SG min 0, mspos 1020, reads 42302, writes 27 timeouts 0
      Driver 3: standstill, SG min 0, mspos 280, reads 42302, writes 27 timeouts 0
      Driver 4: standstill, SG min 0, mspos 280, reads 42302, writes 27 timeouts 0
      Driver 5: standstill, SG min 0, mspos 280, reads 42303, writes 27 timeouts 0
      Date/time: 2022-05-25 21:37:25
      Slowest loop: 62.14ms; fastest: 0.03ms
      === Storage ===
      Free file entries: 10
      SD card 0 not detected, interface speed: 37.5MBytes/sec
      SD card longest read time 0.0ms, write time 0.0ms, max retries 0
      === Move ===
      DMs created 125, segments created 3, maxWait 188953ms, bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves 135, completed 135, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === AuxDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      Heater 1 is on, I-accum = 0.0
      === GCodes ===
      Segments left: 0
      Movement lock held by null
      HTTP* is doing "M122" in state(s) 0
      Telnet is idle in state(s) 0
      File is idle in state(s) 0
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger* is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      Code queue is empty
      === CAN ===
      Messages queued 7358, received 16324, lost 0, boc 0
      Longest wait 3ms for reply type 6026, peak Tx sync delay 88, free buffers 50 (min 49), ts 4098/4097/0
      Tx timeouts 0,0,0,0,0,0
      === SBC interface ===
      Transfer state: 4, failed transfers: 0, checksum errors: 0
      RX/TX seq numbers: 32058/32058
      SPI underruns 0, overruns 0
      State: 5, disconnects: 0, timeouts: 0, IAP RAM available 0x2b880
      Buffer RX/TX: 0/0-0, open files: 0
      === Duet Control Server ===
      Duet Control Server v3.4.0
      Code buffer space: 4096
      Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
      Full transfers per second: 26.30, max time between full transfers: 54.8ms, max pin wait times: 43.5ms/10.0ms
      Codes per second: 0.28
      Maximum length of RX/TX data transfers: 5660/924
      

      Config.g

      Configuration file for Duet 3 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jul 11 2020 20:25:37 GMT-0500 (Central Daylight Time)
      
      ; ================ General preferences=================
      M80 c"pson"	     								   ; Turns on the ATX power supply
      G90                                                ; send absolute coordinates...
      M83                                                ; ...but relative extruder moves
      M669 K1                                            ; select CoreXY mode
      
      ; ===================== Network========================
      ;M550 P"BLV CUBE"                                  ; Set machine name-Now set through RPI
      ;M552 S1                                           ; Enable network
      ;M587 S"NETWORK_NAME" P"PASSWORD"	           	   ; Configure access point. You can delete this line once connected
      ;M552 P###.###.###.###							   ; IP Address
      ;M553 P###.###.###.###							   ; Subnet Mask
      ;M554 P###.###.###.###							   ; Default Gateway
      M586 P0 S1                                         ; Enable HTTP
      M586 P1 S0                                         ; Disable FTP
      M586 P2 S0                                         ; Disable Telnet
      
      ; ======================Drives=========================
      M569 P0.0 S1                                       ; physical drive 0.0 goes forwards D3 = STEALTHCHOP 2 ENABLED
      M569 P0.1 S1                                         ; physical drive 0.1 goes forwards
      M569 P0.2 S1                                          ; physical drive 0.2 goes forwards
      M569 P0.3 S1                                          ; physical drive 0.3 goes forwards
      M569 P0.4 S1                                         ; physical drive 0.4 goes forwards
      M569 P0.5 S1                                         ; physical drive 0.5 goes forwards
      M569 P20.0 S1                                      ; physical drive Toolboard 20.0 goes forwards
      
      ; ===============Stealthchop tunning===================
      ;M915 P0.0 T150                                       ;not working 
      ;M915 P0.1 T150
      ;M915 P0.2 T150
      ;M915 P0.3 T150
      ;M915 P0.4 T150
      ;M915 P0.5 T150
      
      ; ==============Independent Z Leveling=================
      M671 X-16:345:345 Y168:284:44 S10	   			   ; leadscrew pivot point: Front left -36:157, Right Rear 345:301, and Right Front 346:17
      
      ; =================Drive Settings======================
      M584 X0.1 Y0.2 Z0.3:0.4:0.5 E20.0                  ; set drive mapping Z3=Left Front, Z4= Right Rear, Z5=Right Front
      M350 X32 Y32 Z16 E16 I1                            ; configure microstepping with interpolation
      M92 X200.00 Y200.00 Z800.00 E1272.8               ; set steps per mm
      M566 X600.00 Y600.00 Z24 E240.00                   ; set maximum instantaneous speed changes (mm/min)
      M203 X12000.00 Y12000.00 Z800.00 E1200.00          ; Set maximum speeds (mm/min) mm per minute/60=mm per second
      M201 X2500 Y2500 Z100 E800			   			   ; Set accelerations (mm/s^2) changed from 3000 for X and Y
      M906 X1600 Y1600 Z1600 E800 I30                    ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30                                           ; Disable motor idle current reduction
      
      ; ================Axis Limits==========================
      M208 X-4.1 Y0 Z0 S1                                ; set axis minima
      M208 X330 Y296.7 Z340 S0                            ; set axis maxima
      
      ; =================Endstops============================
      M574 X1 S1 P"20.io1.in"                            ; configure active-high endstop for X Min
      M574 Y2 S1 P"0.io2.in"                             ; configure active-high endstop for high end on Y via pin i02.in
      M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
      
      ; =================Z-Probe=============================
      M950 S0 C"20.io0.out"                              ; create servo pin 0 for BLTouch
      M558 P9 C"^20.io0.in" H5 F3000 T12000       ; set Z probe type to bltouch and the dive height + speeds
      G31 P100 X-25 Y0 Z3.39                ; set Z probe trigger value, offset and trigger height
      M557 X20:300 Y20:300 P10:9                           ; define mesh grid
      
      ; ================Heaters==============================
      M308 S0 P"0.temp0" Y"thermistor" A"Bed Temp" T100000 B3950    ; configure sensor 0 as thermistor on pin temp0
      M308 S1 P"20.temp0" Y"thermistor" A"Extruder Temp" T100000 B4725 C0.0000000706     ; configure sensor 1 as thermistor on pin 20.temp0
      M950 H0 C"0.out0" Q10 T0                           ; create bed heater output on out0 and map it to sensor 0
      M950 H1 C"20.out0" T1                              ; create nozzle heater (Hot End E-0) output on 20.out0 and map it to Temp sensor 1 
      M307 H0 R0.830 C367.1 D3.29 S1.00                  ; Set PID for bed heater
      M140 H0                                            ; map heated bed to heater 0
      M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
      M307 H1 R2.803 C133.7:129.2 D4.07 S1.00 V24.5	   ; Set PID for Hotend .4mm nozzle 235 C
      M143 H1 S285                         			   ; Set temperature limit for heater 1 to 285C
      M308 S2 P"mcu-temp" Y"mcu-temp" A"Duet Board"      ; Configure MCU sensor
      
      ; ==================Fans===============================
      M950 F0 C"20.out1" Q100                            ; create fan 0 on pin 20.out1 and set its frequency
      M106 P0 C"Layer Fan" S0 H-1                        ; set fan 0 value. Thermostatic control is turned off
      M950 F2 C"!0.out6" Q25000                          ; create fan 2 on pin out6 and set its frequency
      M106 P2 C"MB Fan" T30:45 H2                        ; set fan 2 value. Thermostatic control is turned on
      M950 F1 C"20.out2" Q500                            ; create fan 1 (hot end fan) on pin 20.out2 and set its frequency
      M106 P1 S255 H1 T30                                ; set fan 1 value. Thermostatic control is turned on
      
      ; =================Tools================================
      M563 P0 S"Extruder 1" D0 H1 F0                     ; define tool 0
      G10 P0 X0 Y0 Z0                                    ; set tool 0 axis offsets
      G10 P0 R0 S0                                       ; set initial tool 0 active and standby temperatures to 0C
      
      ; ==============pressure Advance========================
      ;M572 D0 S0.026                                     ; Set pressure advance to offset elasticity
      
      ; ====Dynamic Acceleration Adjustment and Non-linear====
      M592 D0 A0.015 B0.0012 L0.2
      ;M593 P"daa" F42.1 
      
      ; ==========Accelerometer Settings======================
      M955 P20.0 I10                                     ; specify orientation of accelerometer on Toolboard 1LC with CAN address 20
      
      ; ===========Custom settings are not defined============
      ;M564 H0                                   	       ; Let the Jog buttons work blv: added to allow jog buttons
      
      ; ==================Miscellaneous=======================
      M575 P1 S1 B57600                                  ; enable support for PanelDue
      ;M575 P2 S1 B57600                      		   ; enable support for BLV NeoPixels
      M911 S22 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-3 F1000" ; set voltage thresholds and actions to run on power loss
      M912 P0 S-10.62                                    ; mcu calibration temperature offset
      T0                                                 ; select first tool
      
      ; ====================== Duet 3 (ID#0) ====================
      ;0.out0 		- NC
      ;0.out1 		- Bed heater
      ;0.out2 		- Hot end
      ;0.out3 		- NC
      ;0.out4 		- NC
      ;0.out5 		- NC
      ;0.out6 		- NC
      ;0.out7 		- Water cooling radiator fan
      ;0.out8 		- NC
      ;0.out9 		- NC
      ;0.out4.tach 	- NC
      ;0.out5.tach 	- NC
      ;0.out6.tach 	- NC
      ;0.io0.in 		- PanelDue TX
      ;0.io1.in 		- BLV Arudino TX
      ;0.io2.in 		- NC
      ;0.io3.in 		- Y Endstop 
      ;0.io4.in 		- GPIO pin for on trigger
      ;0.io5.in		- NC
      ;0.io6.in 		- NC
      ;0.io7.in 		- emergency stop switch
      ;0.io8.in 		- Off button C
      ;0.io0.out 		- PanelDue RX
      ;0.io1.out 		- BLV Arduino RX
      ;0.io2.out 		- NC
      ;0.io3.out 		- NC
      ;0.io4.out 		- NC
      ;0.io5.out 		- NC
      ;0.io6.out 		- NC
      ;0.io7.out 		- NC
      ;0.io8.out 		- NC
      ;0.pson			- Power on 5v relay wired for SBC always on and Duet 3 in standby
      ;0.spi.cs0 		- NC
      ;0.spi.cs1 		- NC - this can be your PT100 board
      ;0.spi.cs2 		- NC
      ;0.spi.cs3 		- NC
      ;0.temp0 		- Bed heater
      ;0.temp1 		- NC
      ;0.temp2 		- NC
      ;0.temp3 		- NC
      ;0.mcu-temp 	- Virtual Temp Sensor
      
      ; ================ Toolboard 1 (CAN ID#20) ================
      ; 20.out0		- NC due to bug in RRF3.3
      ; 20.out1		- Layer Fan 1
      ; 20.out2		- Layer Fan 2
      ; 20.out2_tach0	- NC
      ; 20.out1_tach0	- NC
      ; 20.io0.in		- BLTouch Signal pin
      ; 20.io1.in		- X min active low endstop switch
      ; 20.io2.in		- Reserved for filament monitor
      ; 20.io0.out	- BLTouch Servo pin
      ; 20.temp0		- Extruder Thermistor
      ; 20.temp1		- NC
      ; 20.button0	- NC
      ; 20.button1	- NC
      ; 20.CAH_H		- Duet CAN1_H
      ; 20.CAH_L		- Duet CAN1_L
      

      bed.g

      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jul 11 2020 20:25:37 GMT-0500 (Central Daylight Time)
      M291 P"Leveling Axis, leveling bed" R"Probing.." S1 T2
      M561               					; clear any bed transform
      G29 S2                              ; clear bed height map
      G90 								; absolute positioning 
      G1 Z10 H0							; Making sure we're not going to hit the side of glass
      G91
      G28									; home all axis bb
      M400								; Wait for move to finish
      G30 P0 X40 Y166 Z-99999			    ; Probe near left lead screw position 
      G30 P1 X305 Y283 Z-99999			; Probe near right rear lead screw position 
      G30 P2 X305 Y45 Z-99999 S3 			; Probe near right front lead screw position 
      G28
      G30 P0 X40 Y166 Z-99999			    ; Probe near left lead screw position 
      G30 P1 X305 Y283 Z-99999			; Probe near right rear lead screw position 
      G30 P2 X305 Y45 Z-99999 S3 			; Probe near right front lead screw position 
      G28
      G30 P0 X40 Y166 Z-99999			    ; Probe near left lead screw position 
      G30 P1 X305 Y283 Z-99999			; Probe near right rear lead screw position 
      G30 P2 X305 Y45 Z-99999 S3 			; Probe near right front lead screw position 
      G28
      M291 P"Leveling finished !" R"Probing.." S1 T2
      

      homeall.g

      ; called to home all axes
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jul 11 2020 20:25:38 GMT-0500 (Central Daylight Time)
      M17                    ; Power steppers for Stealthchop auto tune
      G4 P200				   ; Pause 200ms
      G91                    ; relative positioning
      M98 P"homex.g"         ; Home X                    
      G4 P200				   ; Pause 200ms
      M98 P"homey.g"         ; Home Y                    
      G4 P200				   ; Pause 200ms
      M98 P"homez.g"         ; Home Z
      G90                    ; absolute positioning
      

      Homex.g

      ; called to home the X axis
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jul 11 2020 20:25:38 GMT-0500 (Central Daylight Time)
      G91                  ; relative positioning
      G1 H2 Z3 F2000       ; Drop Z 3mm
      G1 H2 X5 Y5 F8000   ; move X away a little so the switch is not pressed
      G1 H1 X-400 F8000    ; move left 400mm, stopping at the endstop
      G1 X5 F5000          ; move away for second pass
      G4 P500              ; wait 500msec
      G1 H3 X-300 F300     ; (second pass)
      G1 X15 F5000         ; move away from end
      G1 H2 Z-3 F2000      ; Raise z back
      G90                  ; back to absolute positioning
      G4 P100              ; wait 400ms
      
      droftartsundefined 2 Replies Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @jasbeckett
        last edited by

        @jasbeckett code tags added for readability.

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        1 Reply Last reply Reply Quote 0
        • droftartsundefined
          droftarts administrators @jasbeckett
          last edited by droftarts

          @jasbeckett in homex.g you have

          G1 H3 X-300 F300     ; (second pass)
          
          

          Homing moves should be H1. H3 is most likely the issue:

          H3: terminate the move when the endstop switch is triggered and set the axis limit to the current position, overriding the value that was set by M208.

          Ian

          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

          jasbeckettundefined 1 Reply Last reply Reply Quote 1
          • jasbeckettundefined
            jasbeckett @droftarts
            last edited by

            @droftarts Thanks for the keen eye. This behavior didn’t start until I just updated to 3.4.0. I will update my homing files and see if that fixes the issue.

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