CoreXY, motor 0 sometimes doesn't hold



  • One of my CoreXY motors isn't holding, but the printer seems to print normally. A few cycles of disabling and enabling the motors seems to fix it. What I mean by not holding is that after I home, I can slide the gantry by hand diagonally at 45deg freely because one motor is free wheeling.


  • administrators

    Which Duet are you using, and which firmware version? Please post your config.g file.



  • @dc42

    Maestro

    Firmware Name:	RepRapFirmware for Duet 2 Maestro
    Firmware Electronics:	Duet Maestro 1.0
    Firmware Version:	2.02(RTOS) (2018-12-24b1)
    Web Interface Version:	1.22.5
    Web Interface by Christian Hammacher
    Licensed under the terms of the GPL v3
    

    config.g

    M929 S1 P"log.txt"
    
    ; CONFIGURATION FILE for Duet Maestro 
    ; K'Tana Nozzle
    
    ; Executed by the firmware on start-up
    
    ; Headers within parenthesis are headings in Duet3D documentation=https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer
    ; Visit https://reprap.org/wiki/G-code for an explanation of G-code commands
    
    ; --- SECTION: GENERAL PREFERENCES ( ) ---
    
    M564 S1 H1 ; Enables Homing Requirement For Motor Activation and set axes limits
    
    ; --- SECTION: Z-PROBE & MESH COMPENSATION ---
    
    M98 Pmachine_zprobe.g ; configure the z probe
    
    M98 Pmachine_bedmesh.g ; configure the bed mesh
    
    G29 S1 ; Load heightmap after power cycle
    
    ; --- SECTION: DRIVES (MOVEMENT SECTION) & ENDSTOPS ---
    
    M667 S1  ; Enable coreXY mode
    ;M569 P0 D2  S0; V175; Drive 0 stealthchop, goes forwards, CoreXY_1
    ;M569 P1 D2  S1; V175; Drive 1 stealthchop, goes forwards, CoreXY_2
    ;M569 P2 D2  S0; V17; Drive 2 stealthchop, goes backwards, Z Moto
    ;M569 P3 D2  S0; V1; Drive 3 stealthchop, goes forward, Left Extruder
    ;M569 P4 D2  S1; V1; Drive 4 stealthchop, goes reverse, Right Extruder
    
    M569 P0 D3 S0 V60; Drive 0 stealthchop, goes forwards, CoreXY_1
    M569 P1 D3 S0 V60; Drive 1 stealthchop, goes forwards, CoreXY_2
    M569 P2 D3 S1 V1; Drive 2 stealthchop, goes backwards, Z Moto
    M569 P3 D3 S0 V1; Drive 3 stealthchop, goes forward, Left Extruder
    M569 P4 D3 S1 V1; Drive 4 stealthchop, goes reverse, Right Extruder
    
    
    M98 Pmachine_endstoptypes.g   ; set endstop types
    M98 Pmachine_steppercurrent.g ; set stepper currents
    M98 Pmachine_stepperspeed.g   ; set stepper speeds
    M98 Pmachine_axisdimension.g  ; configure the axes dimensions
    M98 Pmachine_axissteps.g      ; configure the axes steps per mm
    M98 Pmachine_extruderstep.g   ; configure the extruder steps
    G21 ; Work in millimetres
    G90 ; Set to absolute coordinates...
    M84 S1 ; Set idle timeout
    
    ; --- SECTION: HEATERS, BED & THERMISTOR ---
    ; H0 is bed
    ; H1 is left heater
    ; H2 is right heater
    
    M570 H0 P25 T30                           ; Allow heater to be off by as much as 30C for 25 seconds
    M570 H1 P15 T30                           ; Allow heater to be off by as much as 30C for 15 seconds
    M570 H2 P15 T30                           ; Allow heater to be off by as much as 30C for 15 seconds
    
    ;stock
    M305 P0 T100000 B4138 C0 R2200            ; Set thermistor + ADC parameters for heater 0, For heated Bed thermistor
    
    ;M305 P0 T100000 B5438 C0 R2200
    ;M305 P1 X501 R2200                        ; Define left side extruder PT1000 
    ;M305 P1 T100000 B4725 C7.06e-8                        ; Define left side extruder PT1000 
    M305 P1 T100000 B3650                        ; Define left side extruder PT1000 
    ;M305 P2 X502 R2200                        ; Define right side extruder PT1000 
    :M305 P2 T100000 B4725 C7.06e-8                        ; Define right side extruder PT1000 
    M305 P2 T100000 B3650                       ; Define right side extruder PT1000 
    M307 H0 A73 C548.9 D8.3 S1.00 V23.7 B0  ; Forcing heated bed PID control after power-cycle. Basic bed heating auto-tune
    M307 H1 A296.6 C199.4 D9.1 S1 V23.8 B0      ; Set PID values use M303 auto-tune calibration settings
    M307 H2 A352.8 C93.5 D4.9 S1 V24.1 B0      ; Set PID values use M303 auto-tune calibration settings
    M302 P1                                   ; Allow Cold extrudes
    M98 Pmachine_maxtemp.g                    ; set bed and extruder max temperatures
    
    ; --- SECTION: FANS ( ) ---
    
    M106 P0 S0.0 F100 I0 H-1 L0.3 ;Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off, Minimum fan value 0.3, Speed 100%
    M106 P1 S0 I0 F250 H-1 L0 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off, Minimum fan value 0.3, Speed 100%
    M106 P2 S0 I0 F100 H-1 L0.3 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off, Minimum fan value 0.3, Speed 100%
    
    ; --- SECTION: TOOLS ( ) --- 
    
    ; Comment: Remember! H0 is the heated bed!
    ; Comment: D0 is the first driver after movement (X, Y and Z) drives, which is left extruder
    ; D1 is right extruder
    
    M98 Pmachine_ktana_tools.g ; Define ktana tools
    
    T0 ; Automatic tool select
    
    ; --- SECTION: NETWORKS (PROLOGUE & COMMUNCATIONS SECTION) ---
    M98 Pmachine_access.g ; set machine name and IP
    M586 P0 S1 ; Enable HTTP
    M586 P1 S1 ; Disable FTP
    M586 P2 S1 ; Disable Telnet
    
    ; --- SECTION: MISCELLANEOUS --- 
    
    M501
    

    config-override.g

    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A73.0 C548.9 D8.3 S1.00 V23.7 B0
    M307 H1 A347.4 C115.6 D6.8 S1.00 V25.0 B0
    M307 H2 A352.8 C93.5 D4.9 S1.00 V24.1 B0
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    
    M593 F20
    M572 D0:1 S0.2
    

  • administrators

    My guess is that it's connected with running the motor in stealthChop mode. In that mode, the driver tries to use the minimum current necessary. If you change the load suddenly then that current may be insufficient.

    The driver tunes stealthChop during the initial movements. You might find that you get more consistent behaviour if you change your homing files to make a tiny relative XY movement (at least 1 microstep), pause for a few milliseconds (G4 command), and then perform homing. This is because the driver prefers the motor to be stationary for a short while after the driver is enabled. The delay provided by the current firmware may not always be sufficient.


Log in to reply