Z-Homing in 2.02 vs 2.05



  • Hi,
    I have two printers powered by DuetWifi. One is a custom made Kossel (delta) and the other is a big core-xy. I've been running 2.02 on both for a long time period, more than a year. I recently updated the delta to 2.05. It worked like a charm. I liked the new web interface so decided after a week or so that I also will update the Core-xy to the same FW package.

    After the update the Core-xy would not home the Z-axis correctly. I'm using the Escher IR-sensor and the Z-plane is driven by two separate motors to accomodate leadscrew adjustment. The Z-homing procedure gives an error message that the sensor was not triggered and the Z-plane ends up 3-4 mm away from the nozzle. I didnt't investigate as i were short of time. I just downgraded to 2.03 and the Core-xy was now behaving correct again.

    Has the homing G-codes or their parameters behaviour changed in between versions?

    Here are the relevant code from config.g that relates to the homing/sensor part:

    ; Mode and axis travel
    M667 S1 				; Select CoreXY mode
    M208 X0 Y-10 Z-0.6 S1 			; Set axis minima
    M208 X325 Y325 Z380 S0 			; Set axis maxima
    
    ; Endstops, Z-probe and bed mesh grid
    M574 X1 Y1 S0 				; Set active low endstop switches on X and Y
    M574 Z1 S2 				; Set active high Z-probe as endstop Z
    M591 D0 P2 C3 S1			; Filament sensor enable Extruder 0 - E0 endst. input, normal low OK
    M558 P1 H2.5 A2 R0.35 S0.02 F140 T8000 	; Set Z probe type to IR sensor, dive height, recov time, tolerance, dive speed,  and # of probings/point
    G31 P500 X0 Y15 Z2.77 			; Set Z probe trigger value, X/Y offset and trigger height
    
    

    Best regards /Thom


  • Moderator

    Can you post the homeall from your corexy?



  • Sure thing. Her it is.

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Dec 14 2017 23:00:02 GMT+0100 (Västeuropa, normaltid)
    G91                     ; relative positioning
    ; X/Y -axes
    G1 S2 Z3 F8000          ; lift Z relative to current position
    G1 S1 X-340 Y-340 F1800 ; move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X-340             ; home X axis
    G1 S1 Y-340             ; home Y axis
    G1 S2 X5 Y0 F3000       ; go back a few mm X5 Y5 
    G1 S1 X-340 F360        ; move slowly to X axis endstop once more (second pass)
    G1 S1 Y-340             ; then move slowly to Y axis endstop
    G1 S2 X10 Y10 F3000	; Move inside bed - X only moves to X=10
    G1 S2 X20 Y-20 F3000    ; Move inside bed - Y only moves to Y=11
    ; Z-axis
    G1 S1 Z-400 F2000	; Move fast towards sensor and stop when hit
    G1 S2 Z2 F2000		; Back up a bit
    G90			; back to absolute mode
    G30 			; lower head, stop when probe triggered and set Z to trigger height (z set to 0)
    ; Set home position and park hotend
    G92 X0 Y0		; set new X, Y zero position
    G1 Z1 F400		; Park the hotend a mm above bed
    
    

  • Moderator

    It's the S2 commands you're using. Normally they are to allow movement of an axis that hasn't been homed, such as to raise the Z axis for clearance, but you're using it for X and Y movements even after they have been homed once. On a corexy the S2 means move an individual motor.

    Also, in newer firmwares, the G1 S parameter has been set aside for laser control (because all the laser software generates S values for laser power) so for homing moves you need to use H now.

    See: https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

    See the example homeall.g for CoreXY here: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_homeall_g_file

    G91 ; relative mode
    G1 S1 X-240 Y-240 F3000 ; coarse home X or Y
    G1 S1 X-240 ; coarse home X
    G1 S1 Y-240 ; coarse home Y
    G1 X4 Y4 F600 ; move away from the endstops
    G1 S1 X-10 ; fine home X
    G1 S1 Y-10 ; fine home Y
    ''' Z homing section follows'''
    


  • For completeness, I have a macro called by config.g on its last line to make fine tuning of some parameters. The reason for putting them there is to change and run them separately conviniently without the need for rebooting the Duet. It adjusts the Z trigger height by a few hundreths of mm.

    ; Extra Configuration file for minor adjustments
    ; without the need to reboot.
    ; executed by config.g on start-up
    ;
    
    ; Probe and mesh
    G31 P500 X0 Y15 Z2.68 			; Set Z probe trigger value, X/Y offset and trigger height
    M557 X0:285 Y6:291 P7:7 		; Define mesh grid
    
    ; Motor params
    M92 X160 Y160 Z800 E855			; Set steps per mm
    M566 X200 Y200 Z100 E300 		; Set maximum instantaneous speed changes (mm/min)
    ; M203 X9000 Y9000 Z700 E6000	 	; Set maximum speeds (mm/min)
    ; M201 X2000 Y2000 Z150 E2000 		; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z650 E1200 I30	 	; Set motor currents (mA) and motor idle factor in per cent
    
    M99 	; Jump back to caller
    ; end
    
    


  • @Phaedrux said in Z-Homing in 2.02 vs 2.05:

    It's the S2 commands you're using. Normally they are to allow movement of an axis that hasn't been homed, such as to raise the Z axis for clearance, but you're using it for X and Y movements even after they have been homed once. On a corexy the S2 means move an individual motor.

    Also, in newer firmwares, the G1 S parameter has been set aside for laser control (because all the laser software generates S values for laser power) so for homing moves you need to use H now.

    See: https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

    See the example homeall.g for CoreXY here: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_homeall_g_file

    G91 ; relative mode
    G1 S1 X-240 Y-240 F3000 ; coarse home X or Y
    G1 S1 X-240 ; coarse home X
    G1 S1 Y-240 ; coarse home Y
    G1 X4 Y4 F600 ; move away from the endstops
    G1 S1 X-10 ; fine home X
    G1 S1 Y-10 ; fine home Y
    ''' Z homing section follows'''
    

    OK, thanks. I'll look into it.

    Brgds /Thom



  • Found it. It was the dive height (H2.5) in M558, config.sys

    M558 P1 H2.5 A2 R0.5 S0.02 F140 T8000 	; Set Z probe type to IR sensor, dive height........
    

    This wasn't big enough. Strange however, previously, in 2.03 this was not a problem, even as the trigger height is 2.77 mm. Increased the value to 3.5 mm and now it works as it should.


Log in to reply