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

    Hotmesh or Hot mess?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    14
    545
    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.
    • Kolbiundefined
      Kolbi
      last edited by

      @mitch, Yes, the name was purposely chosen for that exact joke.

      But, I don't understand what you're trying to do - the following code you ref'd is not mine:

      ; Heat bed to set temp based off current system filament type
      
      if move.extruders[0].filament = "PLA"
      
          M140 S60                                               ; Set PLA Bed Temp to 60C
      
      elif move.extruders[0].filament = "PETG"
      
          M140 S70                                               ; Set PETG Bed Temp to 70C
      
      else
      
          M291 P"Hotmesh requires a filament to be loaded. Please load a filament and re-run hotmesh." R"Hotmesh" S0 T10
      
          M99                                                   ; Abort this macro
      

      This is from my github:

      ; 0:/macros/Maintenance/Hotmesh
      ; Called to perform automatic heated bedmesh compensation
      ; This saves the heightmap to the system's set filament's type directory (0:/filaments/XXXX/heightmap.csv)
      
      if state.status = "processing"                             ; Printer is currently printing!
         M99                                                     ; Abort this macro   
       
      T0                                                         ; Ensure tool is selected
      M703                                                       ; Heat bed to set temp based off current system filament type
      M104 S-273                                                 ; Turn off hotend
      M106 S0                                                    ; Turn part cooling blower off if it is on
      M291 P{"Performing bed heatup per " ^ move.extruders[0].filament ^ " profile. This process will take approximately 6 minutes."} R"Hotmesh" S0 T10
      G28                                                        ; Home
      G1 X105 Y105                                               ; Place nozzle center of bed
       
      ; Give 5 minutes for stabilization
      G91                                                        ; Set to Rel Positioning
      while iterations <=9                                       ; Perform 10 passes
          G1 Z15 F300                                            ; Move Z 15mm up
          G4 S0.5                                                ; Wait .5 seconds
      G1 Z3 F300                                                 ; Raise an additional 3mm
      M116                                                       ; Wait for all temperatures
      M291 P"Bed temperature at setpoint. Please wait 5 minutes for stabilization, Z indicates countdown." R"Hotmesh" S0 T10
      ; Start countdown - use Z as indicator   
      while iterations <=9                                       ; Perform 10 passes
          G4 S30                                                 ; Wait 30 seconds
          G1 Z-15 F300                                           ; Move Z 15mm down
      G90                                                        ; Set to Absolute Positioning
      
      M291 P"Performing homing, gantry alignment, and mesh probing. Please wait." R"Hotmesh" S0 T10
      G32                                                        ; Home and Level gantry
      M400                                                       ; Clear queue
      M558 F50 A4 S-1                                            ; slow z-probe, take 5 probes and yield average
      G29                                                        ; Perfrom bed mesh
      G29 S3 [P{"0:/filaments/" ^ move.extruders[0].filament ^ "/heightmap.csv"}] ; Save heightmap.csv to filament type's directory
      M558 F200 A1                                               ; normal z-probe
      M104 S-273                                                 ; Turn off hotend
      M140 S-273                                                 ; Turn off heatbed
      M291 P"Hotmesh complete. Hotend and Heatbed are turned off. Performing final homing routine. Please wait." R"Hotmesh" S0 T10
       
      G28                                                        ; Home
      M18                                                        ; Free all
      
      mitchundefined 1 Reply Last reply Reply Quote 0
      • mitchundefined
        mitch @Kolbi
        last edited by mitch

        @Kolbi Ah, my bad. sorry, yes let me explain:

        I am approaching the filament management a bit different. Your approach uses the config.g for each filament to set the temps. I have a different approach in place and not ready to convert over to that yet. So instead I just dropped in some if logic for now for the decision.

        I also didn't catch that I was talking to the actual author of the macros. LOL, GREAT! glad I found you. I like your approach and would like to make the tweaks I need to take advantage of it.

        With respect to not setting the datum first. I made the following modification

        Now I am a bit closer but still hovering above the bed about 0.17mm higher than if I perform a reboot and standard G29.

        Screenshot 2020-09-09 at 7.43.57 PM.png

        On line 28 I added a G30 to reset the datum with a single probe point at the center.

        ; 0:/macros/Maintenance/Hotmesh
        ; Called to perform automatic heated bedmesh compensation
        ; This saves the heightmap to the system's set filament's type directory (0:/filaments/XXXX/heightmap.csv)
        
        
        
        M80
        if state.status = "processing"                             ; Printer is currently printing!
           M99                                                     ; Abort this macro   
         
        T0                                                         ; Ensure tool is selected
        
        ; Heat bed to set temp based off current system filament type
        if move.extruders[0].filament = "PLA"
            M140 S60                                               ; Set PLA Bed Temp to 60C
        elif move.extruders[0].filament = "PETG"
            M140 S70                                               ; Set PETG Bed Temp to 70C
        else
            M291 P"Hotmesh requires a filament to be loaded. Please load a filament and re-run hotmesh." R"Hotmesh" S0 T10
            M99                                                   ; Abort this macro
        
        M104 S0                                                    ; Turn off hotend
        M106 S0                                                    ; Turn part cooling blower off if it is on
        
        M291 P{"Performing bed heatup per " ^ move.extruders[0].filament ^ " profile. This process will take approximately 6 minutes."} R"Hotmesh" S0 T10
        G28                                                        ; Home
        M98 P"0:/macros/general/1_Center_Nozzle"                 ; Place nozzle center of bed
        G30 
         
        ; Give 5 minutes for stabilization
        G91                                                        ; Set to Rel Positioning
        while iterations <=9                                       ; Perform 10 passes
            G1 Z15 F300                                            ; Move Z 15mm up
            G4 S0.5                                                ; Wait .5 seconds
        G1 Z3 F300                                                 ; Raise an additional 3mm
        M116                                                       ; Wait for all temperatures
        M291 P"Bed temperature at setpoint. Please wait 5 minutes for stabilization, Z indicates countdown." R"Hotmesh" S0 T10
        ; Start countdown - use Z as indicator   
        while iterations <=9                                       ; Perform 10 passes
            G4 S30                                                 ; Wait 30 seconds
            G1 Z-15 F300                                           ; Move Z 15mm down
        G90                                                        ; Set to Absolute Positioning
        
        M291 P"Performing homing, gantry alignment, and mesh probing. Please wait." R"Hotmesh" S0 T10
        G32                                                        ; Home and Level gantry
        M400                                                       ; Clear queue
        M558 F50 A4 S-1                                            ; slow z-probe, take 5 probes and yield average
        G29                                                        ; Perfrom bed mesh
        G29 S3 [P{"0:/filaments/" ^ move.extruders[0].filament ^ "/heightmap.csv"}] ; Save heightmap.csv to filament type's directory
        M558 F200 A1                                               ; normal z-probe
        M104 S0                                                    ; Turn off hotend
        M140 S0                                                    ; Turn off heatbed
        M291 P"Hotmesh complete. Hotend and Heatbed are turned off. Performing final homing routine. Please wait." R"Hotmesh" S0 T10
        
        G28                                                        ; Home
        M18                                                        ; Free all
        
        Kolbiundefined 1 Reply Last reply Reply Quote 0
        • Kolbiundefined
          Kolbi @mitch
          last edited by

          @mitch No worries, glad you found them helpful.
          What is your normal probing speed? Change the macro's probing speed to match your normal one and see if it makes a difference.

          mitchundefined 1 Reply Last reply Reply Quote 0
          • mitchundefined
            mitch @Kolbi
            last edited by

            @Kolbi

            This is what is in my config.g

            M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 
            

            Not sure how the probe speed would make that much difference. Seems like something else must still be wrong.

            Kolbiundefined 1 Reply Last reply Reply Quote 0
            • Kolbiundefined
              Kolbi @mitch
              last edited by Kolbi

              @mitch
              Line #47 of your above:
              M558 F50 A4 S-1 ; slow z-probe, take 5 probes and yield average

              To prove/try it - either take the M558's out of the macro or change Line #47 to:
              M558 F120 A1

              Also, in your case you shouldn't be using G32 - use G28 (Line #45)

              Something like this:

              ; 0:/macros/Maintenance/Hotmesh
              ; Called to perform automatic heated bedmesh compensation
              
              if state.status = "processing"                             ; Printer is currently printing!
                 M99                                                     ; Abort this macro   
               
              T0                                                         ; Ensure tool is selected
              
              ; Heat bed to set temp based off current system filament type
              if move.extruders[0].filament = "PLA"
                  M140 S60                                               ; Set PLA Bed Temp to 60C
                  M291 P"Performing bed heatup 60c. This process will take approximately 6 minutes." R"Hotmesh" S0 T10
              else 
                  M140 S70                                               ; Set PETG Bed Temp to 70C
                  M291 P"Performing bed heatup 70c. This process will take approximately 6 minutes." R"Hotmesh" S0 T10
              
              G28                                                        ; Home
              G1 X105 Y105                                               ; Place nozzle center of bed
               
              ; Give 5 minutes for stabilization
              G91                                                        ; Set to Rel Positioning
              while iterations <=9                                       ; Perform 10 passes
                  G1 Z15 F300                                            ; Move Z 15mm up
                  G4 S0.5                                                ; Wait .5 seconds
              G1 Z3 F300                                                 ; Raise an additional 3mm
              M116                                                       ; Wait for all temperatures
              M291 P"Bed temperature at setpoint. Please wait 5 minutes for stabilization, Z indicates countdown." R"Hotmesh" S0 T10
              ; Start countdown - use Z as indicator   
              while iterations <=9                                       ; Perform 10 passes
                  G4 S30                                                 ; Wait 30 seconds
                  G1 Z-15 F300                                           ; Move Z 15mm down
              G90                                                        ; Set to Absolute Positioning
              
              M291 P"Performing homing and mesh probing. Please wait." R"Hotmesh" S0 T10
              G28                                                        ; Home 
              M400                                                       ; Clear queue
              G29                                                        ; Perfrom bed mesh
              G29 S3 [P{"0:/filaments/" ^ move.extruders[0].filament ^ "/heightmap.csv"}] ; Save heightmap.csv to filament type's directory
              M104 S-273                                                 ; Turn off hotend
              M140 S-273                                                 ; Turn off heatbed
              M291 P"Hotmesh complete. Hotend and Heatbed are turned off. Performing final homing routine. Please wait." R"Hotmesh" S0 T10
               
              G28                                                        ; Home
              M18                                                        ; Free all
              mitchundefined 1 Reply Last reply Reply Quote 0
              • mitchundefined
                mitch @Kolbi
                last edited by

                @Kolbi I swapped over ot using G28 as you suggested and the results were much better.
                Screenshot 2020-09-09 at 10.02.14 PM.png

                But now you have me thinking maybe I have been probing to fast all along. Perhaps instead I need to slow my config.g M558 down to 50 instead of the 120 I was at before:

                M558 P9 C"zprobe.in+zprobe.mod" H5 F50 T6000
                
                1 Reply Last reply Reply Quote 0
                • Kolbiundefined
                  Kolbi
                  last edited by

                  @mitch, I did shift all my probing to slower speeds. Just make sure that all your probing is done the same to ensure no disparities happen.

                  For example, my homez has two speeds, but does final probing at 50 - like this macro.

                  ; 0:/sys/homez.g
                  ; Home the Z axis
                  
                  M98 P"current-sense-homing.g"                              ; Ensure the current and sensitivity is set for homing routines.
                  
                  ; !!! If using Pinda, comment-out the following two lines
                  M280 P0 S160                                               ; BLTouch, alarm release.
                  G4 P100                                                    ; BLTouch, delay for the release command.
                  
                  G91                                                        ; Set relative positioning.
                  G1 H0 Z3 F6000                                             ; Lift Z axis 3mm.
                  G90                                                        ; Set absolute positioning.
                  
                  G1 X105 Y105 F6000                                         ; Go to the center of the bed for probe point.
                  
                  M558 F1000 A1                                              ; Set probing speed to fast for the first pass.  
                  G30                                                        ; Perform Z probing.
                  G1 H0 Z5 F400                                              ; Lift Z axis to the 5mm position.
                  
                  M558 F50 A5 S-1                                            ; Set probing speed to slow for second pass, take 5 probes and yield the average.
                  G30                                                        ; Perform Z probing.
                  G1 H0 Z5 F400                                              ; Lift Z axis to the 5mm position.
                  
                  M558 F200 A1                                               ; Set normal z-probe speed.  
                  
                  1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt
                    last edited by

                    Hi,

                    I would suggest you ignore all of those files you found. I think "hot mess" is an accurate description.

                    For example, while using M116 to wait for temps to reach their set points is perfectly fine using the Z position as some sort of timer/indicator seems very odd.

                    Why not just use M291 to display messages as to what is actually going on?


                    And before you go to the trouble of handling height maps for different temperatures verify that you actually will benefit from having them.


                    And if you are not currently using the filament handling features of the DWC I suggest you give some more consideration to using them.

                    For example by making using of the config macro for each filament you could handle 2, 3 or more bed temperatures with no change at all to your system macros.


                    Anyway that's just my two cents. My system macros are simple, easily understood and the results I get when printing are most satisfactory and that, after all, is the goal, is it not?

                    Glad to help at any time.

                    Frederick

                    Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                    mitchundefined 1 Reply Last reply Reply Quote 0
                    • Kolbiundefined
                      Kolbi
                      last edited by

                      @fcwilt said in Hotmesh or Hot mess?:

                      For example, while using M116 to wait for temps to reach their set points is perfectly fine using the Z position as some sort of timer/indicator seems very odd.
                      Why not just use M291 to display messages as to what is actually going on?

                      Easy reason why - users can't read the screen from 10+ feet away while doing other things, and why not take advantage of an available indicator. This way, a quick glance over at it and you can easily tell the status. This came from feedback from several people, but we're all mil and like our easy status reads, so maybe we are odd?

                      1 Reply Last reply Reply Quote 0
                      • mitchundefined
                        mitch @fcwilt
                        last edited by

                        @fcwilt appreciate the comment. I am just exploring different macros. I did have to go back to simpler home.g files as these weren't working for me.

                        However, after three comments about me "not using DWC filament handling" please post your filament files. I BELIEVE I AM using DWC filament handling. I just used a quick if statement to test out this macro as the author was using the filament config.g to heat the hot end whereas I am using the load and unload files to do set temps and just using the config.g to store config such as PID for that filament. But I am always open to being enlightened. If you can post your filament files I am curious what it is that I am missing out on.

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