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

    Simulation time way off

    Scheduled Pinned Locked Moved
    General Discussion
    4
    17
    609
    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.
    • HDavidundefined
      HDavid
      last edited by

      Hi,

      I am on the version 3.1.1 of the firmware and was looking forward to try the simulation feature. Sometime it's on point and other times the print actually take double the estimation.
      Is there anything I could do to fix that ?

      Thanks

      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Can you share a sample of gcode that takes longer than the estimate?

        What Duet board?

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • HDavidundefined
          HDavid
          last edited by

          Sure, I am using a Duet Wifi 2.

          This g-code says 2h44 in simulation but takes more than 4h.

          https://drive.google.com/file/d/1aHfO5HJtm0nRttHD5jVaHcdENjZjgS_9/view?usp=sharing

          1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators
            last edited by

            What architecture printer is it?

            Is it a multi-extrusion printer? Simulation doesn't take account of tool change times.

            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
            • HDavidundefined
              HDavid
              last edited by

              It's a CR-10 v2 no extra tool (cartesian).

              Could it be related to the fact that I am using Pressure Advance or that the speed value requested are mostly never reached due to the size of the model and the acceleration.

              I don't know if that could help but you can find my current configuration below.

              ; Configuration file for Duet WiFi (firmware version 3)
              ; executed by the firmware on start-up
              ;
              ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sat Jul 25 2020 09:49:56 GMT-0400 (Eastern Daylight Time)
              
              ; General preferences
              G90                                            ; send absolute coordinates...
              M83                                            ; ...but relative extruder moves
              M550 P"My Printer"                             ; set printer name
              
              ; Network
              M552 S1                                        ; enable network
              M586 P0 S1                                     ; enable HTTP
              M586 P1 S0                                     ; disable FTP
              M586 P2 S0                                     ; disable Telnet
              
              ; Drives
              M569 P0 S0                                     ; physical drive 0 goes backwards
              M569 P1 S0                                     ; physical drive 1 goes backwards
              M569 P2 S0                                     ; physical drive 2 goes backwards
              M569 P3 S0                                     ; physical drive 3 goes backwards
              M584 X0 Y1 Z2 E3                               ; set drive mapping
              M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
              M92 X80.00 Y80.00 Z400.00 E98.00               ; set steps per mm
              M566 X900.00 Y900.00 Z12.00 E120.00            ; set maximum instantaneous speed changes (mm/min)
              M203 X9000.00 Y9000.00 Z360.00 E3600.00        ; set maximum speeds (mm/min)
              M201 X700.00 Y700.00 Z50.00 E10000.00          ; set accelerations (mm/s^2)
              M906 X900 Y900 Z600 E900 I1                    ; set motor currents (mA) and motor idle factor in per cent
              M84 S1                                         ; Set idle timeout
              
              ; Axis Limits
              M208 X0 Y0 Z0 S1                               ; set axis minima
              M208 X300 Y300 Z400 S0                         ; set axis maxima
              
              ; Endstops
              M574 X1 S1 P"^xstop"                           ; configure active-high endstop for low end on X via pin ^xstop
              M574 Y1 S1 P"^ystop"                           ; configure active-high endstop for low end on Y via pin ^ystop
              M574 Z1 S2                                     ; configure Z-probe endstop for low end on Z
              
              ; Z-Probe
              M950 S0 C"exp.heater3"                         ; create servo pin 0 for BLTouch
              M558 P9 C"^zprobe.in" H3 F120 T9000            ; set Z probe type to bltouch and the dive height + speeds
              G31 P500 X47 Y0 Z1.22                          ; set Z probe trigger value, offset and trigger height
              M557 X50:300 Y15:300 S50                       ; define mesh grid
              
              ; Heaters
              M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
              M950 H0 C"bedheat" T0                          ; create bed heater output on bedheat and map it to sensor 0
              M307 H0 B1 S1.00                               ; enable bang-bang mode for the bed heater and set PWM limit
              M140 H0                                        ; map heated bed to heater 0
              M143 H0 S280                                   ; set temperature limit for heater 0 to 280C
              M308 S1 P"e0temp" Y"thermistor" T100000 B4138  ; configure sensor 1 as thermistor on pin e0temp
              M950 H1 C"e0heat" T1                           ; create nozzle heater output on e0heat and map it to sensor 1
              M307 H1 B0 S1.00                               ; disable bang-bang mode for heater  and set PWM limit
              
              ; Fans
              M950 F0 C"fan0" Q500                           ; create fan 0 on pin fan0 and set its frequency
              M106 P0 S0 H1 T45                              ; set fan 0 value. Thermostatic control is turned on
              M950 F1 C"fan1" Q500                           ; create fan 1 on pin fan1 and set its frequency
              M106 P1 S0 H-1                                 ; set fan 1 value. Thermostatic control is turned off
              
              ; Tools
              M563 P1 S"Hotend" D0 H1 F0:1                   ; define tool 1
              G10 P1 X0 Y0 Z0                                ; set tool 1 axis offsets
              G10 P1 R0 S0                                   ; set initial tool 1 active and standby temperatures to 0C
              
              ; Custom settings are not defined
              
              ; Miscellaneous
              M501                                           ; load saved parameters from non-volatile memory
              T1                                             ; select first tool
              
              
              
              1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by Phaedrux

                I seem to recall @bot posting some similar observations with PA and simulation.

                Here it is: https://forum.duet3d.com/topic/15516/simulated-print-time-longer-with-pa-disabled/2?_=1596047378473

                I notice you are also using a very low E jerk value.

                Z-Bot CoreXY Build | Thingiverse Profile

                botundefined HDavidundefined 2 Replies Last reply Reply Quote 0
                • botundefined
                  bot @Phaedrux
                  last edited by bot

                  Yeah. In my case, it was just that the estimated print time was counter-intuitively lower when pressure advance was enabled, up until a certain point where the estimated time became much higher, as expected.

                  I now have to rely on other methods to get accurate print estimates. I find this website: G-Code Analyser provides very accurate estimates as well as some other helpful information and visualization. (But now I remember that website doesn't support Pressure Advance, so if your extruder limits the speed due to PA, the estimates will not be accurate.)

                  *not actually a robot

                  HDavidundefined 1 Reply Last reply Reply Quote 0
                  • HDavidundefined
                    HDavid @Phaedrux
                    last edited by HDavid

                    @Phaedrux
                    I had the feeling that those jerk values were pretty standard. What would you suggest ?
                    Also, I think it should the board that should give accurate estimation instead of me trying to match its predictions.

                    Phaedruxundefined 1 Reply Last reply Reply Quote 0
                    • HDavidundefined
                      HDavid @bot
                      last edited by

                      @bot
                      Interresting, I will give it a try.

                      1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator @HDavid
                        last edited by

                        @HDavid said in Simulation time way off:

                        I had the feeling that those jerk values were pretty standard. What would you suggest ?

                        120mm/min is only 2mm/s. The extruder, being a purely rotational axis doesn't have a lot of mass to move, so higher jerk and acceleration values are generally possible.

                        Having a low jerk value isn't a problem per se, but it does have the consequence that in a coordinated move, the lowest jerk value will be honored. So when pressure advance is trying to rapidly pull the filament back prior to a retraction in coordination with XY movement, the low jerk value on E means that XY and movement will have to honor the lower limit imposed by the E movement. And hence, slower than requested print speed.

                        Setting a higher E jerk and acceleration allows the XY movement to be unaffected by the Extruder movement during pressure advance. This can also generally improve print quality due to less dwelling at transition points like layer changes or travel moves.

                        You'll have to experiment with higher values to see what works well for you, but I think in general using 3000 for jerk, accel, and retraction speed is a good starting point.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • HDavidundefined
                          HDavid
                          last edited by

                          It did not occur to me the jerk value of E could affect XY. That is good to know. I will try that and see where it leads me.
                          Thank for the tip.

                          Phaedruxundefined 1 Reply Last reply Reply Quote 0
                          • Phaedruxundefined
                            Phaedrux Moderator @HDavid
                            last edited by

                            @HDavid Normally (without PA) it doesn't, because the extruder is slowly and steadily extruding during the XY move and then it all stops, extruder retracts, and then XY travels to the next point to resume. Pressure advance complicates that because it's now altering the extruder speed and even stopping and reversing during the XY movement. And because it's a coordinated move, the slowest axis dictates.

                            Z-Bot CoreXY Build | Thingiverse Profile

                            1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators
                              last edited by

                              • Are you running the simulation under exactly the same conditions as the actual print? In particular, same height map loaded (if you are using one), and same pressure advance? Note, if the print file includes a G28 command, simulation doesn't run that; therefore if you load a height map file in one of your homing files, or set PA or max acceleration or speed, it won't be loaded when you simulate.
                              • When you do the print, does M122 report a lot of hiccups if you run it during or after the print?

                              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
                              • HDavidundefined
                                HDavid
                                last edited by HDavid

                                @dc42 said in Simulation time way off:

                                Are you running the simulation under exactly the same conditions as the actual print?

                                My workflow is: upload g-code -> run simulation -> do the real run.

                                I run the G28 before every print so I guess the loaded height map during simulation is the one from the previous print.
                                My pressure advance setting is set at the beginning of the g-code file, unless I miss something, I would says it is the same between print and simulation.

                                I did not know of M122 before you mentioned it. I read the documentation but I am not sure when to use it and what should I look for in the results.

                                Below the start of a g-code a file that takes double the time:
                                It contains G28, G29 then M572 (PA)

                                ;FLAVOR:RepRap
                                ;TIME:7563
                                ;Filament used: 25.5252m
                                ;Layer height: 0.28
                                ;MINX:117.65
                                ;MINY:67.226
                                ;MINZ:0.2
                                ;MAXX:181.778
                                ;MAXY:232.778
                                ;MAXZ:60
                                ;Generated with Cura_SteamEngine 4.6.1
                                T0
                                M190 S60
                                M104 S200
                                M109 S200
                                M82 ;absolute extrusion mode
                                G90 ; use absolute coordinates
                                M83 ; extruder relative mode
                                G28 ; home all axes
                                ;M104 S120 ; set extruder temp
                                M140 S60 ; set bed temp
                                M190 S60 ; wait for bed temp
                                G29; Auto bed leveling
                                M572 D0 S0.8 ; set pressure advance value
                                G1 Z5 F5000 ; lift nozzle
                                G1 X2 Y10 F3000
                                M109 S200 ; wait for extruder temp
                                G1 Z0.3 F240
                                G92 E0.0
                                G1 Y190 E15.0 F1500.0 ; intro line
                                G1 X2.3 F5000
                                G1 Y10 E30 F1200.0 ; intro line
                                G92 E0.0
                                M83 ;relative extrusion mode
                                G1 F3600 E-9
                                ;LAYER_COUNT:211
                                ;LAYER:0
                                M107 P1
                                G1 F1800 Z1.2
                                G0 X130.784 Y67.25 Z1.2
                                ;TYPE:SKIRT
                                G1 F1800 Z0.2
                                G1 F3600 E9
                                
                                Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                • Phaedruxundefined
                                  Phaedrux Moderator @HDavid
                                  last edited by

                                  @HDavid said in Simulation time way off:

                                  I did not know of M122 before you mentioned it. I read the documentation but I am not sure when to use it and what should I look for in the results.

                                  Look for the word hiccups.

                                  Can you try simulating that file again, but this time load the heightmap and set the pressure advance before simulating it.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  HDavidundefined 1 Reply Last reply Reply Quote 0
                                  • HDavidundefined
                                    HDavid @Phaedrux
                                    last edited by

                                    @Phaedrux
                                    Should I run it at a specific time, like just after a print or it does not matter ?

                                    Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                    • Phaedruxundefined
                                      Phaedrux Moderator @HDavid
                                      last edited by

                                      @HDavid said in Simulation time way off:

                                      @Phaedrux
                                      Should I run it at a specific time, like just after a print or it does not matter ?

                                      After a print is probably best. When you run it it displays all the counters and things and then resets them. So if you run it after a print it will show you everything that happened during that print.

                                      Z-Bot CoreXY Build | Thingiverse Profile

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