Jump to content

Voron 2.4 - Print_Start Macro suggestions.


Recommended Posts

Hello all, hope everyone is doing well.

Quick question, I want to clean up my Print_Start Macro a bit and hopefully fix an issue I'm having.  When I want to print ABS, the bed will get to around 90 and Klipper shuts it down due to taking too long, however if I unplug the Nevermore, it heats to 105 just fine.  I tried an entry in the Nevermore section that would tell it to turn on at 60 bed temp (something I found online) and it worked great, but I tried turning it up to 100 but it just turns on as soon as I hit print...  Not sure why.

So basically, what's the best way to keep the Nevermore from turning on until the bed is fully heated?  I have been looking around for a while and keep finding some convoluted answers with complex solutions and would rather do it the right way 😄  For those with OCD, everything is lined up perfectly in the printer_cfg lol, copy & paste isn't as nice.  I commented out the 5min heatsoak for below 90 as I don't need it for PLA.  I also commented out the SB status as they aren't working with my Rainbowbarf LED's, I'll look into it down the road but hardly a worry atm.

So, do I need that whole mess in bold, or is there a simpler way to do this?  Currently using the Orca Slicer for the Voron.  I'm starting to print more with ABS as I have avoided it for so long, but with the newer filters I don't mind it as much.  Also, I have tried commenting / uncommenting the nevermore section in this macro but it always just turns on as soon as print is hit.

Thanks for looking, have a good one.

[gcode_macro PRINT_START]
  # This part fetches data from your slicer. Such as bed temp, extruder temp, chamber temp and size of your printer.
  {% set target_bed = params.BED|int %}
  {% set target_extruder = params.EXTRUDER|int %}
  {% set target_chamber = params.CHAMBER|default("40")|int %}
  {% set x_wait = printer.toolhead.axis_maximum.x|float / 2 %}
  {% set y_wait = printer.toolhead.axis_maximum.y|float / 2 %}

  # Homes the printer, sets absolute positioning and updates the Stealthburner leds.
  #STATUS_HOMING         # Sets SB-leds to homing-mode
  G28                   # Full home (XYZ)
  G90                   # Absolut position

  ##  Uncomment for bed mesh (1 of 2)
  #BED_MESH_CLEAR       # Clears old saved bed mesh (if any)

 # Checks if the bed temp is higher than 90c - if so then trigger a heatsoak.
  {% if params.BED|int > 90 %}
    SET_DISPLAY_TEXT MSG="Bed: {target_bed}c"           # Displays info
    M106 S255                                                                       # Turns on the PT-fan

    G1 X{x_wait} Y{y_wait} Z15 F9000                                  # Goes to center of the bed
    M190 S{target_bed}                                                        # Sets the target temp for the bed
    SET_DISPLAY_TEXT MSG="Heatsoak: {target_chamber}c"  # Displays info
    TEMPERATURE_WAIT SENSOR="temperature_sensor chamber" MINIMUM={target_chamber}   # Waits for chamber to reach desired temp

  # If the bed temp is not over 90c, then it skips the heatsoak and just heats up to set temp with a 5min soak
  {% else %}
    SET_DISPLAY_TEXT MSG="Bed: {target_bed}c"           # Displays info
    G1 X{x_wait} Y{y_wait} Z15 F9000                                 # Goes to center of the bed
    M190 S{target_bed}                                                        # Sets the target temp for the bed
    #SET_DISPLAY_TEXT MSG="Soak for 5min"                # Displays info
    #G4 P300000                                                                # Waits 5 min for the bedtemp to stabilize
  {% endif %}

    ##  Uncomment if you have a Nevermore.
    #PD13 PD13=nevermore VALUE=1                              # Turns on the nevermore

  # Heating nozzle to 150 degrees. This helps with getting a correct Z-home
  SET_DISPLAY_TEXT MSG="Hotend: 150c"                  # Displays info
  M109 S150                                                                     # Heats the nozzle to 150c

  ##  Uncomment for V2 (Quad gantry level AKA QGL)
  SET_DISPLAY_TEXT MSG="QGL"                                # Displays info
  #STATUS_LEVELING                                                    # Sets SB-leds to leveling-mode
  quad_gantry_level                                                        # Levels the buildplate via QGL
  G28 Z                                                                            # Homes Z again after QGL

  ##  Uncomment for bed mesh (2 of 2)
  #SET_DISPLAY_TEXT MSG="Bed mesh"                  # Displays info
  #STATUS_MESHING                                                 # Sets SB-leds to bed mesh-mode
  #bed_mesh_calibrate                                               # Starts bed mesh

  # Heats up the nozzle up to target via data from slicer
  SET_DISPLAY_TEXT MSG="Hotend: {target_extruder}c"             # Displays info
  #STATUS_HEATING                                                                       # Sets SB-leds to heating-mode
  G1 X{x_wait} Y{y_wait} Z15 F9000                                                 # Goes to center of the bed
  M107                                                                                                   # Turns off partcooling fan
  M109 S{target_extruder}                                                                # Heats the nozzle to printing temp

  # Gets ready to print by doing a purge line and updating the SB-leds
  SET_DISPLAY_TEXT MSG="Printer goes brr"                  # Displays info
  #STATUS_PRINTING                                                         # Sets SB-leds to printing-mode
  G0 X{x_wait - 50} Y4 F10000                                          # Moves to starting point
  G0 Z0.4                                                                           # Raises Z to 0.4
  G91                                                                                 # Incremental positioning 
  G1 X100 E25 F1000                                                      # Purge line
  G90                                                                               # Absolut position

Edited by nickpeck47
Link to comment
Share on other sites

I actually go a different route. If my macro sees that I have sent a minimum chamber temperature like for ABS, I turn on my Nevermore right away. I use it to accelerate the overall heatsoak cycle by circulating the hot air in the printer. You could also trigger on a bed temperature set for ABS instead of chamber temp.

  • Like 1
Link to comment
Share on other sites

42 minutes ago, claudermilk said:

I actually go a different route. If my macro sees that I have sent a minimum chamber temperature like for ABS, I turn on my Nevermore right away. I use it to accelerate the overall heatsoak cycle by circulating the hot air in the printer. You could also trigger on a bed temperature set for ABS instead of chamber temp.

What power setting is your bed heater on to do that?  I think mine is at 60% and with both fans on when heating to 105, it can struggle and 75% of the time I get a klipper shut down because it's taking so long.  If I turn the nevermore off, it will get to 105 no problem.  Kind of why I was thinking about having it just come on once the bed hits like 100 or something.  I have done a handful of PID tunings, and again, it works fine, nothing is broken from what I can tell.

Link to comment
Share on other sites

This might be a weird question but is that printer in an enclosure?.  My Ender 5Pro does that in open air it has trouble going over 90, and I have to set the heatbed power to  0.7 or 70% but it has a tiny heater @ 24v 220W.  But if I put it in it's Tent (Enclosure) I can set it to 0.6 power and heat up to 110 no problem, get it just to the other component cool inside the tent like MCU and stepper drivers..

Voron 2.4 is 110v @ 600W I think it should have no trouble getting to 110' whit 0.6 Power setting if you crank it up to high and it heats to fast you could warp your bed.

I can get 40 to 50'C ish Chamber temps dependent on the NeverMore 60%  (30-75%) Settings and the Exhaust filter fan 25% (10-50%).

and 5 minute heat soak is not very long, even for impatient me I do normally 15 minute, some people do 30 minutes, the way I can tell it has 'nt heat soak enough when I do a QGL it fails and jumps around a lot.. 

When heat soaking I set exhaust to 10% to create vacuum and set the Nevermore at 30% to start until the bed hits 110'c then the nevermore get set to 100% until soak is done and it time to print then it Exhaust 25% Nevermore 60%. 

And whit a 5/16 or 8mm thick bed plate of good quality, you should never need more then ONE bed Mesh Ever !. and do it after a good heat soak.

Unless you over heat it or its Crap quality and was bad to begin whit you should only ever need one. the gantry auto leveling should be enough to match the bed plate.  in a 350mm over 4 point squared an accuracy of 0.005 or better and you can get better..

But this is my opinion and some might feel differently about it.. 

Edited by Chuck_Snow
  • Like 1
Link to comment
Share on other sites

Yes it's enclosed.  I get the "moving air" around and have read about it a lot, but having the part fan blowing on the middle of the bed and the nevermore blowing two fans below it seems to be my issue.  When I turn all of the fans off it hits temp no problem, however I have to see how fast the nevermore is running, maybe it's too high for startup which is cooling it as fast as it can heat.

Yah, I don't want to up the power as I have read that about warping the bed.  It's the bed that came with the LDO kit, it's thick and pretty flat thankfully.  I'm still newish to klipper, so having to learn things takes time and I was just wondering what I could do differently to maybe take care of this.  I don't print with ABS a ton but have been doing it a bit more lately as I have avoided it over the years lol.

Oh, by the time heating is done and ready to go, the chamber hit's 40 no problem, so there isn't a very long wait thankfully.  I agree, I'm not patient at all myself 😄

Link to comment
Share on other sites

My bed heater is set to the suggested 60% max. I've never had an issue like you are seeing. It's weird that running the Nevermore causes an issue because AFAIK the power is kind of separate. The bed should be running off mains through the SSR and the Nevermore should be running off the 24V rail on the controller via the 24V power supply. But then for me electrical is still largely black magic.

Link to comment
Share on other sites

I hate to say it but you might have a Faulty Heating Pad if it is 600W @ 110v it should have no problem heating even whit the Nevermore at 100%.

or maybe a flaky SSR ? not sending a proper signal duty cycle. That what the 0.6 signifies 60% Duty cycles is a PWM signal or it should be. it turns it on an off really fast.


Edited by Chuck_Snow
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

IMHO, just run at 100% power.  If you have a quality cast aluminum tooling plate bed, permanent warping is not a thing. Just can't create enough temperature differential across thickness of the plate to exceed the yield point of the aluminum.  We're talking average power density of less than 0.49W/cm^2 with a 600W heater and remember how thermally conductive aluminum is. If its real, I suspect the max heat urban legend comes from folks using a rolled aluminum plate, and if there is any permanent deformation its from relieving internal manufacturing stress.  I for one haven't seen any issues running 100% power, but if you're not sure if your bed plate is cast stress relieved then stay at 60%...or run at 100% and if it warps, get a quality cast plate.  I get to 120C in a little over 5 minutes on a 350x350. Chamber temp hits 40C in about 15 minutes before it triggers the start of the print.

An interesting experiment would be to take a virgin bed plate and build a bed mesh at room temp.  Heat the plate up at different power levels and let cool back to room temp and measure any changes.  It would be important to let the entire printer frame cool back down for many hours between heat cycles to factor out warping of the gantry....

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

It is normal that fans under the bed cool the bed heater. That is where the heat comes from to warm the chamber. Its actually not that hard to overpower the silicon heater with too much airflow and cooling

I recommend you use a macro like this one;


This will make any fans you put in the macro run at a reduced speed that you choose while the bed is heating up and then when its up to temp they will run at whatever higher speed you set.

This way its not reliant on starting a print or anything like that. If the bed is turned on to a high enough temp for any reason the nevermore will be controlled.


You can add as many fans as you like to the macro, just add them to the Bed Fans and Aliases sections. I have a nevermore and a PTC heater controlled using it.

Edited by Crashdown
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...