Jump to content

change request: change M109 (set and wait for temp) to M104 (set temp and continue)


fnorkn

Recommended Posts

Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

Hi

Don't know if this is the place, but I have problems with my printhead waiting for the temperature to be reached during T0 and T1 switches...

Would it be possible to add an advanced option to Cura, something like

"don't wait for temperature during nozzle switch"

which replaces all M109 commands with M104 commands when switching nozzles?

Cheers.

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    I believe that would cause the printer to start printing with the new nozzle before the correct temperature is reached.

    That could cause jams or the printer firmware fail-safe to kick in and just not extrude any filament until the correct temperature is reached...it'd be printing 'air'.

    Are you sure that's what you want it to do? Or am I missing something?

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    Hi DaHi8

    Yes that is is exactly what I want.

    I have a single nozzle that has 2 filament inlets and 1 outlet (nozzle) (like the 3D builder by Code-p west).

    The extruders share the same heater, but have 2 seperate heatsensors (I did not want to hack the hardware too much).

    As long as T0 has a standby temperature that is the same as the operating temperature, the heat settings of T1 do not matter much.

    But when using M109 the software starts to poll T1 heatsensor, and it is just a little too low, it will wait for ever, causing a big belting hole in my prime tower. But as the heaterconnector of T1 is not used, it will wait forever, as it it trying to reach the set temperature by PWM-ing an non-existing heater.

    This would all be solved if it just sets T1 temperature with M014. (or setting T1 temp 10 degrees lower as I do now).

    The difference in measured temperature between T0 and T1 is usually not enough to cause a heater-error (Marlin will think something is wrong when extra heating does not raise the temperature within a certain amount of time)

    The Simplify 3D slicer allows for using just 1 heater with 2 extruders (!), but I stopped using this slicer, because somehow the gcode is not resulting in correct prints, and I don't want to try to figure out why.

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    I think this could easily be done with a custom post-processing script to change all the T1 M109 to T1 M104.

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    Or change the machine startup code in Cura to use M104.

     

    I don't think that will change all the M104 commands throughout the gcode file for each time the print head changes filament for the T1 heater

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    fnorkn: I've written ('I wrote' ?) a simple little post-processing script to replace every occurrence of M109 T1 with M104 T1. It should do what you want, providing the gcode generated formats the command as M109 T1 Sxxxx

    Since I don't have a dual-extruder (or single extruder with dual heaters) printer, I have no way of testing it.

    The script is shown below, but if you could provide some examples of how the M109 command is formatted for T1 temperature changes, and what the M104 format should be, I can modify this code to account for that (I'm asking because the M104 command is deprecated and so documentation is sparse and there is no mention of at Tx parameter in it: M104 Set Extruder Temperature)

    NOTE: python script formatting is VERY picky, so just copy/pasting probably won't work because the indents will be all horked up (technical term)

     

    from ..Script import Scriptimport reclass HeatnGo(Script):   def __init__(self):       super().__init__()          def getSettingDataString(self):       return """{            "name":"Heat 'n Go",           "key": "HeatnGo",           "metadata":{},           "version": 2,           "settings":            {               "warning":               {                   "label": "WARNING!",                   "description": "Replaces EVERY occurance of 'M109 T1' with 'M104 T1' - USE AT YOUR OWN RISK!!!",                   "unit": "",                   "type": "int",                   "default_value": ""               }           }       }"""   def execute(self, data):       for layer in data:           index = data.index(layer)            layer = re.sub("M109 T1","M104 T1",layer,flags=re.M)           data[index] = layer #Override the data of this layer with the modified data       return data

     

  • Link to post
    Share on other sites

    Posted · change request: change M109 (set and wait for temp) to M104 (set temp and continue)

    Cheers thanks, will try it out soon and report back.

    First I need to try out a PEEK setup I am currently implementing....

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.8 Stable released 🎉
        In the Cura 5.8 stable release, everyone can now tune their Z seams to look better than ever. Method series users get access to new material profiles, and the base Method model now has a printer profile, meaning the whole Method series is now supported in Cura!
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Thanks
          • Like
        • 3 replies
    ×
    ×
    • Create New...