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

    Use many height map with bed temp

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    9
    577
    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.
    • Amagatthundefined
      Amagatth
      last edited by

      Hi all,

      Anyone know how to make a macro who choose a height map with a specified bed temp?

      Ex 70deg bed temp load 70 height map
      100deg bed temp load 100 height map

      I make a 1000/1000 printer and I don't have the same height map with 50 deg and 10p deg

      Thx for all!!

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

        Well you could do it manually with two macros. Each macro would load a corresponding heightmap.

        If you wanted to do it automatically with conditional gcode in RRF3 that should be possible as well, but it would depend on the firmware knowing what the print temps will be before you need the heightmap loaded.

        Z-Bot CoreXY Build | Thingiverse Profile

        fcwiltundefined Amagatthundefined 3 Replies Last reply Reply Quote 0
        • fcwiltundefined
          fcwilt @Phaedrux
          last edited by

          @phaedrux said in Use many height map with bed temp:

          Well you could do it manually with two macros. Each macro would load a corresponding heightmap.

          If you wanted to do it automatically with conditional gcode in RRF3 that should be possible as well, but it would depend on the firmware knowing what the print temps will be before you need the heightmap loaded.

          I use the filament handling feature of DWC to set temps. It also could load different height maps.

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

          1 Reply Last reply Reply Quote 0
          • zaptaundefined
            zapta
            last edited by

            One thing you could do is performing bed mesh probing before each print, at the printed area only, after the bed reached its target temperature.

            This is what I do.

            1 Reply Last reply Reply Quote 0
            • Amagatthundefined
              Amagatth @Phaedrux
              last edited by

              @phaedrux hi, thx for your answer I have a duet 3 with last rf3 I have condionnal 🙂

              1 Reply Last reply Reply Quote 0
              • Amagatthundefined
                Amagatth @Phaedrux
                last edited by

                @phaedrux You have an idea how to make the maccro ? i think make a folder with 50 deg map 70 deg map and 100 deg map and i need a maccro who call 50deg map if bed temp is 50 deg etc...

                1 Reply Last reply Reply Quote 0
                • OwenDundefined
                  OwenD
                  last edited by

                  @amagatth said in Use many height map with bed temp:

                  @phaedrux You have an idea how to make the maccro ? i think make a folder with 50 deg map 70 deg map and 100 deg map and i need a macro who call 50deg map if bed temp is 50 deg etc...

                  Yes, that is correct. Up to you where you store them.
                  But you'll have to wait for your bed to reach temp before calling the macro.
                  M116 should do it, but you may find it only waits till the bad is "almost" at temp, in which case you may have to set your targets in the macros a few degrees lower than 100, 70, 50 etc.

                  The macro would be something like this.
                  Note: You must first create the height maps and make adjust the file names.

                  ; LoadMap.g
                  ; called to load height map according to current bed temp
                  ;heightmaps must be already created
                  ; adjust file location and file name of height maps to suit your system
                  if move.axes[0].homed !=true || move.axes[1].homed !=true || move.axes[2].homed !=true
                  	echo "Machine not homed - height map operation cancelled"
                  	abort ; cancel macro & print
                  G29 S2 ; Clear current height map
                  ;now check temps and load the height map to suit
                  if heat.heaters[0].current >= 100
                  	G29 S1 P"0:/sys/heightmaps/100_Deg_heightmap.csv" ; if temp is 100 or greater load this file
                  	if result !=0
                  		echo "Failed to load height map " ^  {move.compensation.file}
                  		abort ; cancel macro and print
                  elif heat.heaters[0].current >= 70 ; if temp is less than 100 AND greater then  or equal to 70 load this file
                  	G29 S1 P"0:/sys/heightmaps/70_Deg_heightmap.csv"
                  	if result !=0
                  		echo "Failed to load height map " ^  {move.compensation.file}
                  		abort ; cancel macro and print
                  elif heat.heaters[0].current >= 50 ; if temp is less than 70 AND greater then  or equal to 50 load this file
                  	G29 S1 P"0:/sys/heightmaps/70_Deg_heightmap.csv"
                  	if result !=0
                  		echo "Failed to load height map " ^  {move.compensation.file}
                  		abort ; cancel macro and print
                  		; START COLD BED MAP
                  else ;      - temp is under 50 , so we might have a cold bed height map - otherwise delete COLD BED MAP section
                  	G29 S1 P"0:/sys/heightmaps/Cold_Bed_heightmap.csv" ;
                  	if result !=0
                  		echo "Failed to load height map " ^  {move.compensation.file}
                  		abort ; cancel macro and print
                  ;END COLD BED MAP
                  
                  ; START FINAL CHECK		
                  ;do a final check and report height map loaded ; comment this out if you want no height map when under 50 degrees
                  if move.compensation.file !=null
                  	echo "Height map loaded is  " ^  {move.compensation.file}
                  else
                  	"MACRO ERROR: No height map has been loaded"
                  	abort ; cancel print
                  ; END FINAL CHECK
                  ;echo "Height map loaded is  " ^  {move.compensation.file}  ;if you don't use FINAL CHECK section, uncomment this line
                  
                  Amagatthundefined 1 Reply Last reply Reply Quote 1
                  • Amagatthundefined
                    Amagatth @OwenD
                    last edited by Amagatth

                    THX For that !! i just have to call my macro in slicer after M116

                    OwenDundefined 1 Reply Last reply Reply Quote 0
                    • OwenDundefined
                      OwenD @Amagatth
                      last edited by

                      @amagatth
                      That is correct.
                      If you're running RRF 3.3b2 you can use this version which uses variables, so it's easier to tweak as you don't have to search the full macro.
                      All the settings are at the top.

                      https://forum.duet3d.com/topic/22636/macro-to-call-heaight-map-based-on-bed-temp/1

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