Firmware 2.02RC5 now available


  • administrators

    @frafa said in Firmware 2.02RC5 now available:

    Error: G1/G2/G3: intermediate position outside machine limits

    Are you certain that X0 Y0 is accessible in a straight line from the initial position? What happens if you use G0 instead of G1?

    This is the homeall.g file on my SCARA:

    ; Home All file for Robotdigg SCARA arm printer
    M561			; cancel bed compensation
    G91
    
    G1 S2 Z28 F1000		; raise Z to keep nozzle clear of base frame
    
    G1 S1 X200 Y200 F1000	; home proximal and distal arms
    G1 S2 X-5 Y-5 F1000	; back off
    G1 S1 X10 Y10 F200	; repeat the homing more slowly
    
    G90
    G1 X-75 Y75 F3000	; move to a position that correspond to one of the M557 grid points
    G30			; home Z
    G1 Z28 F1000		; move to safe height again
    
    G29 S1			; load height map
    

  • administrators

    @dc42 said in Firmware 2.02RC5 now available:

    @giostark said in Firmware 2.02RC5 now available:

    If I use the microstep 0.05 from the WC by pressing the Z-Baby stepping button, before or after a manual extrusion always from the WC ,the printer replicate the same extrusion as an other manual input (see picture ) .

    Thanks for reporting this, it's on my list to investigate.

    I confirm this issue. It will be fixed in 2.02RC6.



  • Installed and working on a Larg-ish delta (600mm x 600mm). No issues found so far. Have done a couple of prints, one of them about six hours.

    And... this did clean up the HTTP line ends (reported in a separate thread, now marked resolved).



  • Some odd behaviour during pause & resume:
    I have this in my resume.g:

    G1 R1 X0 Y0 Z3 F6000     ; return to point previously paused at (but above it)
    G1 R1 X0 Y0 Z0 F180      ; return to point previously paused at (lower nozzle)
    

    G1 R1 X0 Y0 Z3 actually moves to X0 and Y0 - instead of the "last saved point".
    Then it move 3mm down.
    Then it seems to continue to the correct "last saved point" location (not sure if this is still from with resume.g or already the next commanded move from my print code).
    Now it obviously crashes because the nozzle is too low.

    This is repeatable. Print something for a few minutes. Pause. (I usually do a filament change or clear a heat-creep and command some manual extrusion to prime the nozzle). The Resume. Then crash (if I'm not quick enough with the E-stop).

    I might have tweaked my config - but I don't see anything obvious in my version-controlled config files...
    @dc42 Should G0 R1 X0 Y0 behave the same as G1 R1 X0 Y0?

    edit: I just flashed RC4 again - and the problem is gone. So this is a regression in RC5.



  • @David

    I have exactly the same problems as with version 2.02RC3
    https://forum.duet3d.com/topic/7316/firmware-2-02-release-candidate-3-now-available/70

    tested with your homing.all file adapted to my config, the same errors ...

    Downgrade 1.21RC3 waiting ...


  • administrators

    @resam said in Firmware 2.02RC5 now available:

    Some odd behaviour during pause & resume:
    I have this in my resume.g:

    G1 R1 X0 Y0 Z3 F6000     ; return to point previously paused at (but above it)
    G1 R1 X0 Y0 Z0 F180      ; return to point previously paused at (lower nozzle)
    

    G1 R1 X0 Y0 Z3 actually moves to X0 and Y0 - instead of the "last saved point".
    Then it move 3mm down.
    Then it seems to continue to the correct "last saved point" location (not sure if this is still from with resume.g or already the next commanded move from my print code).
    Now it obviously crashes because the nozzle is too low.

    This is repeatable. Print something for a few minutes. Pause. (I usually do a filament change or clear a heat-creep and command some manual extrusion to prime the nozzle). The Resume. Then crash (if I'm not quick enough with the E-stop).

    I might have tweaked my config - but I don't see anything obvious in my version-controlled config files...
    @dc42 Should G0 R1 X0 Y0 behave the same as G1 R1 X0 Y0?

    edit: I just flashed RC4 again - and the problem is gone. So this is a regression in RC5.

    Strange, nobody else has reported this and I have similar lines in resume.g. I will test it again.

    RRF restores the last print position automatically immediately before resuming. Using G1 R1 commands is optional, and allows you to control how it is done. G0 R1 should behave the same as G1 R1 except that on some machines (e.g. SCARA) the movement may not be linear.



  • @dc42 I have a corexy. With RC4 it works as expected. RC5 moves to the wrong position.

    I suspect the G53&G54 changes might have introduced a bug?


  • administrators

    @resam said in Firmware 2.02RC5 now available:

    @dc42 I have a corexy. With RC4 it works as expected. RC5 moves to the wrong position.

    I suspect the G53&G54 changes might have introduced a bug?

    Were you using workplace coordinate offsets when this happened?



  • @dc42 said in Firmware 2.02RC5 now available:

    Were you using workplace coordinate offsets when this happened?

    No - I'm running in a simple plain FFF mode as 3D printer.
    I do not have any G53 or G54 codes in my sys/ or macros/ files.


  • administrators

    @resam said in Firmware 2.02RC5 now available:

    @dc42 said in Firmware 2.02RC5 now available:

    Were you using workplace coordinate offsets when this happened?

    No - I'm running in a simple plain FFF mode as 3D printer.
    I do not have any G53 or G54 codes in my sys/ or macros/ files.

    Thanks. Are you using any G10 tool offsets?

    EDIT: or M206 offsets?



  • @dc42 said in Firmware 2.02RC5 now available:

    Thanks. Are you using any G10 tool offsets?

    The only G10's I have are hotend temperature and retract commands:
    G10 10 P0 S0 R0, G10 S175 and similar.

    EDIT: or M206 offsets?

    No.

    I do have a M208 with a negative Y minima - which I use as a pause position - maybe this is causing a weird edge case ("out of workspace"?)

    My pause.g:

    M83                      ; relative extruder moves
    G1 E-2 F1200             ; retract
    G91                      ; relative moves
    G1 Z3                    ; raise nozzle
    G90                      ; absolute moves
    G0 X230 Y-5 F6000        ; move head out of the way of the print and clear nozzle
    M106 S0                  ; fan off
    

    My resume.g:

    G0 R1 X0 Y0 Z3 F6000     ; return to point previously paused at (but above it)
    G1 R1 X0 Y0 Z0 F180      ; return to point previously paused at (lower nozzle)
    M83                      ; relative extruder moves
    G1 E2 F1200              ; undo the retraction
    M106 R1                  ; restore fan speed
    T R1                     ; restore tool selection
    

    I based these scripts on https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Pause_resume_and_cancel_files - but it seems some of it is redundant now because RRF already does the same steps before/after calling resume.g


  • administrators

    Even though the G0 R1 and G1 R1 lines are not strictly needed, they should still work, at least if you are not using workplace coordinate offsets or tool offsets. As you are not using either of those, I don't know why they are not working properly. The negative Y coordinate is OK. I tested pause/resume in 2.02RC5 using this resume.g file:

    ; Resume macro file
    G1 R1 X0 Y0 Z2 F5000 ; move to 2mm above resume point
    G1 R1 X0 Y0 Z0 ; lower nozzle to resume point
    M83 ; relative extruder moves
    G1 E4 F2500 ; undo the retraction



  • I flashed RC5 again - the bug is repeatable.

    I added beeps to my resume.g to check when the faulty moves are made:
    The G1 R1 ... commands in resume.g are not correctly executed. The head seems to be moved to (0,0) in absolute coordinates (front left corner).

    The following similar moves in the firmware seem to be correct.

    With RC4 this works as expected.
    So this bug seems to happen somewhere during/before the execution of resume.g, because once we enter the resuming_1 state, it behaves correctly.
    HandleMCode for case 24 is pretty simple - so I suspect DoFileMacro again...



  • @dc42 I think I got a reasonable outline of what is happening:

    When we call resume.g, DoFileMacro sets useMachineCoordinatesSticky = true.
    https://github.com/dc42/RepRapFirmware/commit/6e457735157a8cb452cc244f866fb1c083c7b48b#diff-4982d99e6381f0b210c46336de3818d4R123 introduced a UsingG54() which now also becomes true.
    https://github.com/dc42/RepRapFirmware/commit/6e457735157a8cb452cc244f866fb1c083c7b48b#diff-6418fd0d517411c266a27fb33b10ad76R2523 now uses UsingG54(), therefore we enter the first if-block, instead of the block for handling a resume-point.


  • administrators

    @resam, thanks for your analysis, that looks like the explanation. The odd thing is that I ran pause/resume tests on my delta, and I didn't see a problem.

    I'll fix this and run tests on multiple printers. Also I'll rename UsingG54, it's related to to G53 not G54.


  • administrators

    @frafa said in Firmware 2.02RC5 now available:

    @David

    I have exactly the same problems as with version 2.02RC3
    https://forum.duet3d.com/topic/7316/firmware-2-02-release-candidate-3-now-available/70

    tested with your homing.all file adapted to my config, the same errors ...

    Downgrade 1.21RC3 waiting ...

    Please can you try again, but this time:

    1. Verify that firmware 2.02RC5 is definitely installed (send M115 to check)
    2. Check that you don't have a deployprobe.g or retractprobe.g file in /sys on the SD card, unless you are using BLTouch
    3. If the problem still occurs, send the commands in your homing file one by one to establish which command is failing.

    My SCARA is working fine on 2.02RC5 with just G30 for Z homing, provided that I home prox+distal first. I am using an IR sensor, so I don't have deployprobe.g or retractprobe.g files.



  • @dc42 said in Firmware 2.02RC5 now available:

    @resam, thanks for your analysis, that looks like the explanation. The odd thing is that I ran pause/resume tests on my delta, and I didn't see a problem.

    I believe that I've encountered this same issue a few times. My resume.g is identical the one posted by @resam , though mine also contains a M906 to reset the idle current for the stepper motors (I set the idle current to 100% in my filament-change.g)

    In my case, the nozzle crashing against the print has, I believe, caused physical damage when the part fan duct was shoved against the side of the print, and pressed hard against the wires from my heater and Pt1000 thermistor. (Apparently, smashing the side of a PT1000 where the wires come out can be bad for the PT1000.)

    Note: I'm not trying to make any claim for the destroyed thermistor. I completely recognize that I'm using RC firmware and that's one of the risks I take. On the other hand, I'm hoping that @dc42 can get a fix for this particular issue out more quickly considering that it can cause physical damage.



  • I also have a problem with 2.02RC5. As you can see I have 2 tools defined, and for one of them I have Z offset.
    When I try homing T1 Duet ignores Z offset (I go to 0 on end). 2.02RC4 works as intended.

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jul 16 2018 21:02:33 GMT+0200 (Central Europe Daylight Time)
    
    ; General preferences
    G90                                 		; Send absolute coordinates...
    M83                                 		; ...but relative extruder moves
    
    ; Network
    M586 P0 S1                          		; Enable HTTP
    M586 P1 S0                          		; Disable FTP
    M586 P2 S0                          		; Disable Telnet
    
    ; Drives
    M569 P0 S1                          		; Drive 0 goes forwards
    M569 P1 S0                          		; Drive 1 goes backwards
    M569 P2 S1                          		; Drive 2 goes forwards
    M569 P3 S0                          		; Drive 3 goes backwards
    M350 X16 Y16 Z16 E16 I1             		; Configure microstepping with interpolation
    M92 X160 Y160 Z8000 E835            		; Set steps per mm (at default 16x microstepping)
    M566 X900 Y900 Z24 E1200           		; Set maximum instantaneous speed changes (i.e. jerk) (mm/min)
    M203 X12000 Y12000 Z180 E1200       		; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z250 E1000         		; Set accelerations (mm/s^2)
    M906 X2400 Y2400 Z2400 E2400 I30    		; Set motor currents (mA) and motor idle factor in per cent
    M913 X70 Y70 Z70				; set X Y Z motors to 70% of their normal current
    M913 E70:70					; set extruders 0 and 1 to 70% of their normal current
    M84 S30                             		; Set idle timeout
    
    ; Axis Limits
    M208 X-13 Y-12 Z0 S1                		; Set axis minima
    M208 X220 Y220 Z200 S0              		; Set axis maxima
    
    ; Endstops
    M574 X1 Y1 Z1 S0                    		; Set active low endstops
    
    ; Heaters
    M305 P0 T100000 B4138 R4700              ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                             ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 R4700              ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                             ; Set temperature limit for heater 1 to 280C
    
    ; Fans
    M106 P0 S0 H-1              		; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 H1 T45           		; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 H1 T45           		; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1                       		; 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
    M563 P1 D0 H1                       		; Define tool 1
    G10 P1 X0 Y0 Z-8.4                  		; Set tool 1 axis offsets
    G10 P1 R0 S0                        		; Set initial tool 1 active and standby temperatures to 0C
    
    ; Automatic saving after power loss is not enabled
    
    ; Custom settings are not configured
    
    ; Miscellaneous
    M501                                		; Load saved parameters from non-volatile memory
    T0                             			; Select first tool
    
    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Jul 16 2018 21:02:33 GMT+0200 (Central Europe Daylight Time)
    G91                     ; relative positioning
    G1 Z5 F6000 S2          ; lift Z relative to current position
    G1 S1 X-238 Y-225 F3600 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 X5 Y5 F6000          ; go back a few mm
    G1 S1 X-238 Y-225 F720  ; move slowly to X and Y axis endstops once more (second pass)
    G1 S1 Z-200 F1800  ; move slowly to X and Y axis endstops once more (second pass)
    G1 Z5 F6000
    G1 S1 Z-200 F360
    G1 Z8  
    G90                     ; absolute positioning
    G1 X0 Y0 Z0
    ;G1 X15 Y15 F6000        ; go to first bed probe point and home Z
    ;G30                     ; home Z by probing the bed
    ;G1 Z5 F100 S2          ; uncomment this line to lift the nozzle after homing
    


  • Hi David,

    For memory, works perfect on firmware 1.21RC3 ...

    My M669 config...
    M669 K4 P200 D200 A-116:175 B-175:140 1:0:0 S100 T0.1 X64.2 Y-150.0; set SCARA kinematics parameters ok S200

    M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.02RC5(RTOS) ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2018-11-28b1

    Removed:
    deployprobe.g (exist, but empty file)
    retractprobe.g (exist, but empty file)

    Homing test without move (G1 S2 X1 Y-1) before G30 return Error on G30 (x/y home ok):

    17:33:43 M120 G91 G1 Z-0.05 F6000 M121 Error: G0/G1: insufficient axes homed 17:33:33 G28 Error: Z probe was not triggered during probing move Error: G0/G1: insufficient axes homed

    Second test Add move on homall.g before G30:
    ;Home Z ir-probe
    G91
    G1 S2 X1 Y-1 ;Add test ...
    G90 ; absolute movement
    G30 ; Single Z-Probe

    Homing OK
    But after homnig absolute movement return error
    possible move just on relative movement ...
    Move on G90 impossible ...

    Error:
    18:00:19 G1 X10 Y10 F500 Error: G1/G2/G3: intermediate position outside machine limits 17:59:57 G90

    Print test ok but impossible to put it in the right place because no absolute movements ...

    My homeall.g

    M18 ; Disable all stepper motors (pour desactiver le second bras IMPORTANT !)
    G91                ; relative movement
    G1 S2 Z4 F250         ; ensure head is clear of the bed
    
    ;Move by security to the case or already home!
    G1 S2 X5
    G1 S2 Y-5
    
    ; Home proximal joint
    G91
    G1 S1 X-200 F2000  ; move proximal joint clockwise by up to 200 degrees until the endstop switch is triggered
    G1 S2 X5          ; move proximal joint anticlockwise by 10 degrees
    G1 S1 X-20 F300    ; move proximal joint slowly to the endstop switch again
    G90                ; absolute movement
    ; Home distal joint
    G91                ; relative movement
    G1 S1 Y200 F2000   ; move distal joint clockwise by up to 200 degrees until the endstop switch is triggered
    G1 S2 Y-5         ; move distal joint anticlockwise by 10 degrees
    G1 S1 Y20 F300     ; move distal joint slowly to the endstop switch again
    G90                ; absolute movement
    
    ;Home Z ir-probe
    G91
    G1 S2 X1 Y-1     ;Add test ...
    G90                ; absolute movement
    G30 ; Single Z-Probe
    

  • administrators

    @garyd9 said in Firmware 2.02RC5 now available:

    @dc42 said in Firmware 2.02RC5 now available:

    @resam, thanks for your analysis, that looks like the explanation. The odd thing is that I ran pause/resume tests on my delta, and I didn't see a problem.

    I believe that I've encountered this same issue a few times. My resume.g is identical the one posted by @resam , though mine also contains a M906 to reset the idle current for the stepper motors (I set the idle current to 100% in my filament-change.g)

    In my case, the nozzle crashing against the print has, I believe, caused physical damage when the part fan duct was shoved against the side of the print, and pressed hard against the wires from my heater and Pt1000 thermistor. (Apparently, smashing the side of a PT1000 where the wires come out can be bad for the PT1000.)

    Note: I'm not trying to make any claim for the destroyed thermistor. I completely recognize that I'm using RC firmware and that's one of the risks I take. On the other hand, I'm hoping that @dc42 can get a fix for this particular issue out more quickly considering that it can cause physical damage.

    I'm sorry it may have caused damage. I've added a warning in the what's new file and also on the release page for 2.02RC5. I've already implemented a fix in the RC6 source.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.