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

    Bed mesh at different temps

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    5
    188
    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.
    • aceranicundefined
      aceranic
      last edited by

      Bed mesh/height changes at different temperatures, ie. 50, 70, 100 for different materials.
      For each temp that I use I saved mesh under different name, ie. heightmap50.csv.

      Can I call different heightmap from start gcode in Orca based on the filament in use?

      So normall call is G29 S1 and will call heightmap.csv and G29 S1 P"heightmap50.csv" would call for 50degC.

      Does this make sense to use?

      jay_s_ukundefined CabalSoulundefined 2 Replies Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @aceranic
        last edited by jay_s_uk

        @aceranic you can easily do this
        I use a custom start macro thats called by the slicer
        this is that i have in orcaslicer

        M98 P"start_print.g" A[bed_temperature_initial_layer_single] B"[filament_type]" C[nozzle_temperature_initial_layer] D[nozzle_diameter] 
        

        You could then have, in start_print.g

        if param.B = "ABS" 
        	G29 S1 P"heightmap50.csv" 
        

        and so on.
        My example start_print.g is here https://github.com/TeamGloomy/Troodon-V2/blob/improved/Config/sys/start_print.g

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        1 Reply Last reply Reply Quote 1
        • danzaywerundefined
          danzaywer
          last edited by danzaywer

          I use a similar approach, I scan at varous temp and with different plate(steel and glass),with a complex bed.g called by G32.
          I put this control in homez.g and do it after bed temp settled .
          in orca start I have M190 followed by G28.

          ....
          if {fileexists(floor(heat.heaters[0].active)^var.plate^".csv")}
          	var map={(floor(heat.heaters[0].active)^var.plate^".csv")}
          	if var.verbose 
          		echo "load "^var.map;
          	G29 S1 P{var.map};
          else ;
          	if var.verbose 
          		echo "no file .csv! load heightmap.csv"
          	G29 S1;
          
          1 Reply Last reply Reply Quote 0
          • aceranicundefined
            aceranic
            last edited by aceranic

            Isnt it easier, in Orca, to add for each material in Start Gcode a line to call a specific saved map?

            1 Reply Last reply Reply Quote 0
            • CabalSoulundefined
              CabalSoul @aceranic
              last edited by

              @aceranic

              I'm loading the PID values of the Nozzle and Bed, the Bedmeshing depending on Temperature and Bed Type on Print Start automatically.
              It my seem like overkill but i prefer to automate as much as possible. My meshing seems consistent and varies just with Temperature. So ican mesh with higher resolution and start my prints faster.

              I'm using Orca slicer to send Bed Temperature and Print temperature to my macro called PrintSetup that is poart of my start code

              Start Code

              M190 S{first_layer_bed_temperature[0]-5};
              M104 S[nozzle_temperature_initial_layer] ; Wait initial layer temp	
              M109 S[nozzle_temperature_initial_layer] ; Wait for Bed Temp
              
              M98 P"/macros/PrintSetup" B[bed_temperature] H[first_layer_temperature];
              
              

              This Macro loads the coresponding Mesh for the defined Bedplate, and with the temperatures it also loads the right PId tune information. You can also define Offsets if your Probe has drift wiht different Temperature.

              ; 0=Bambulab Square BS
              ; 1=Textured Round  TR
              ; 2=Smooth Round    SR
              var BED_Type = 0    ;define Bed plate Type
              var BED_T = {param.B};
              var EXT_T = {param.H};
              var Probe_height = 0.36   ; determined wiht G30-S1 after manually leveling wiht paper 
              
              
              
              ;Pinda Bed Levelsensor
              M558 P5 C"^exp.e2stop" H2 F460 T9000 A3 K0
              G31  P500 X0 Y-31 Z{var.Probe_height}  
              	
              M106 P2 S30
              M703
              T0
              
              
              if var.BED_T < 65
              	M307 H0 R0.383 K0.618:0.000 D1.11 E1.35 S1.00 B0		;BED PID 58 !!
              	G31 Z{var.Probe_height + 0}	                            ;Pinda  - is higher, + is lower
              	G28														;Home
              	G1 X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS60.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR60.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR60.csv"							
              	
              
              elif var.BED_T < 75
              	M307 H0 R0.367 K0.732:0.000 D0.98 E1.35 S1.00 B0        ;PID 70°C
              	G31 Z{var.Probe_height + 0}	                           	;Pinda - is higher, + is lower
              	G28														;Home
              	G1  X0 Y0 Z5 F6000										;move to Probe location
              	G30														;Probe
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS70.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR70.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR70.csv"	
              
              
              elif var.BED_T < 85
              	M307 H0 R0.367 K0.732:0.000 D0.98 E1.35 S1.00 B0        ;PID 70°C make one for 80
              	G31 Z{var.Probe_height + 0}	                          	;Pinda - is higher, + is lower
              	G28														;Home
              	G1  X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS80.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR80.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR80.csv"	
              	
              elif var.BED_T < 95
              	M307 H0 R0.333 K0.400:0.000 D0.87 E1.35 S1.00 B0		;85°C
              	G31 Z{var.Probe_height + 0}	                         	;Pinda - is higher, + is lower
              	G28														;Home
              	G1  X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe	
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS90.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR90.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR90.csv"	
              	
              elif var.BED_T < 105
              	M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 		;110°C
              	G31 Z{var.Probe_height + 0}                         	;Pinda  - is higher, + is lower
              	G28														;Home
              	G1  X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe
              
              	if   var.BED_Type = 0
              		G29 S1 P"BS100.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR100.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR100.csv"	
              	
              elif var.BED_T < 115
              	M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 		;110°C
              	G31 Z{var.Probe_height + 0.038}	                     	;Pinda  - is higher, + is lower +0.038
              	G28														;Home
              	G1  X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS110.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR110.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR110.csv"	
              	
              elif var.BED_T < 125
              	M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 		;110°C
              	G31 Z{var.Probe_height + 0.038}		                    ;Pinda  - is higher, + is lower +0.038
              	G28														;Home
              	G1  X0 Y0 Z5 F12000										;move to Probe location
              	G30														;Probe
              	
              	if   var.BED_Type = 0
              		G29 S1 P"BS120.csv"						
              	elif var.BED_Type = 1
              		G29 S1 P"TR120.csv"	
              	elif var.BED_Type = 2
              		G29 S1 P"SR120.csv"	
              
              else 
              	echo "Bed Temp Setting Out of Bounds"
              	
              
              if var.EXT_T  < 195
              		M307 H1 R4.434 K0.887:0.000 D5.41 E1.35 S1.00 B0 V24.0 ;190°C NEW
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @190°C loaded"
              if var.EXT_T  < 205
              		M307 H1 R3.883 K0.339:0.000 D7.06 E1.35 S1.00 B0 V24.3 
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @200°C loaded"
              elif var.EXT_T < 225
              		M307 H1 R3.899 K1.407:0.000 D6.62 E1.35 S1.00 B0 V24.3 ;200°C 
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @200°C loaded"
              elif var.EXT_T < 235
              		M307 H1 R3.990 K2.754:0.000 D6.24 E1.35 S1.00 B0 V24.1;230°C NEW
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @230°C loaded"
              elif var.EXT_T < 245
              		M307 H1 R4.538 K2.346:0.000 D4.59 E1.35 S1.00 B0 V23.8 
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @240°C loaded"
              elif var.EXT_T < 265
              		M307 H1 R3.978 K0.322:0.000 D5.90 E1.35 S1.00 B0 V23.9
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @250°C loaded"
              elif var.EXT_T < 285
              		M307 H1 R4.047 K1.118:0.000 D5.47 E1.35 S1.00 B0 V24.3
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @270°C loaded"
              elif var.EXT_T < 295
              		M307 H1 R4.308 K8.893:0.000 D5.01 E1.35 S1.00 B0 V24.3 
              		echo "Print Temp Setting:  ", var.EXT_T , "°C      PID @280°C loaded"
              else 
              	echo "Print Temp Setting Out of Bounds"
              

              Maybe you can adapt it your needs

              Anycubic Predator, Orbiter Extruder , Duet Wifi, Mosquito Hotend, Remote Extruder Stepper cooling and Part cooling

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