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

Bed mesh at different temps

Scheduled Pinned Locked Moved
Tuning and tweaking
4
5
187
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.
  • undefined
    aceranic
    last edited by 27 Mar 2025, 10:48

    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?

    undefined undefined 2 Replies Last reply 27 Mar 2025, 11:02 Reply Quote 0
    • undefined
      jay_s_uk @aceranic
      last edited by jay_s_uk 27 Mar 2025, 11:02

      @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
      • undefined
        danzaywer
        last edited by danzaywer 28 Mar 2025, 14:25

        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
        • undefined
          aceranic
          last edited by aceranic 28 Mar 2025, 22:23

          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
          • undefined
            CabalSoul @aceranic
            last edited by 6 Apr 2025, 16:47

            @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