G10 - I need a bit of help on explaining this for me using this

  • I'm trying to use the RepRap Gcodes instead of the "old" deprecated gcodes. This is however causing me a bit of confusion, which I hope can be cleared up 🙂
    Before just throwing me links, please make sure they actually contain some of what I'm asking please 🙂

    Descripton on the M104 regarding replacements, which led me to look into this - among other things, as explained below:

    This is deprecated because temperatures should be set using the G10 and T commands.

    [h]Firstly a bit of a semantic/description issue:[/h]
    I find it unclear what G10 is exactly? It replaces the use of M104: Set Extruder Temperature, but the G10 is listed as two different commands G10: Tool Offset and G10: Retract which in itself is a bit odd?
    There are listed parameters uder Offset, but under Retract it states no parameters is used.
    Only thing I can find about the T command is T: Select Tool. Is that right? (refers back to the quote about deprecated above)

    [h]Confusion on basics regarding control of heaters[/h]
    I would love to get a Total Basic explanation which I'm sorely missing on what happens/is the difference between Off, Standby and On?
    The first long time I struggled with heaters being turned off, and I couldn't get it to heat up again.. in a long time I "solved this" by turning the machine on and off.. this of course isnt a good solution and I eventually found I could go and select my tool in Settings - Tools to be able to use it again. When selected a Tool turns into Standby mode.
    I found a place to auto select the tool, but I can't remember where?

    [h]G10 P variable?[/h]
    When selecting Turn everything off in the Web Interface it uses a P parameter, but while it is listed, it is not explained aside from being mentioned in a sentence.

    RepRapFirmware recognizes G10 as a command to set tool offsets and/or temperatures if the P parameter is present, and as a retraction command if it is absent.

    [h]Diamond Hotend, Tools and heaters[/h]
    On this particular machine I'm setting up a 5way-diamond, meaning I have setup 5 tools all using same heater, and this is causing some confusion regarding the (for me) vague descrptions regarding selecting and controlling these things - see my comment on Off, Standby and On, G10 and T command references and (lack off) explanations on interconnected usage.

    [h]Back to Turn everything off:[/h]
    When using this, it triggers this command:

    G10 P4 R-273.15 S-273.15
    ```I understand the tool is turned off when setting temp to absolute zero. Again I wonder what the difference is between Off and Standby 0c?
    My issue here is that it's unclear what it does:
    **G10 is listed as Offset and Retract**, so it's obviously missing something in the Wiki?
    What is P4 doing exactly?**P is parameter for tool selection, but why is it using 4**? How does it turn off the remaining "heaters"? (bed is listed seperately).
    **If all my tools are off, do I have to turn them on using T0 in my gcode start to make them available?**
    [h]Last words:[/h]
    I have seen and read the post over on Think3DPrint3D: [Using the Diamond Hotend with DuetWifi](http://blog.think3dprint3d.com/2016/12/using-diamond-hotend-with-duetwifi.html), but I'd like to understand the G10, which isn't a Diamond centric thing.

  • administrators

    First a bit of history:

    • G10 was originally defined by the NIST GCode standard as "Set coordinate system", meaning set offsets from an origin
    • Adrian Bower chose to use G10 to set tool offsets from the origin (I presume because it is a similar function) and documented this in the wiki at reprap.org, and also to set tool temperatures
    • Some other developers (probably Marlin or Repetier devs) ignored that allocation, and chose to use G10 for firmware retraction, which I find completely illogical
    • Some slicers started supporting G10 to do firmware retraction
    • Eventually someone documented the alternative use of G10 to do firmware retraction in the reprap.org wiki
    • In order to support slicers that send G10 to command firmware retraction, RRF supports both uses of G10.

    So in RRF, G10 with no parameters means do a retraction, and G10 with any recognised parameters means set tool parameters (i.e. set tool offsets and/or temperatures).

    AFAIK, no other firmware has adopted G10 to set tool offsets and temperatures. But no other firmware supports multiple tools anything like as well as RRF does either. Neither does any other firmware provide automatic support for using separate active/standby temperatures for tool heaters.

    Heaters in RRF can be in the following states: off, standby, active, fault, and tuning:

    • Off means what it says. Sending M0 turns all heaters off, except if the print is paused and there is a cancel.g file.
    • Active means that the heater is heating up to/maintaining the temperature of a tool that uses that heater.
    • Standby means that the heater is not used by the current tool, but was previously used by a selected tool, so it is maintaining the standby temperature for that tool. This is especially useful in printers with more than one nozzle, because you can keep the inactive nozzle warm ready for printing, but at less than printing temperature to prevent oozing.

    On a Diamond hot end you have only one physical nozzle, so I don't think standby temperatures are relevant to you.

    In order to print, you need to have a tool selected. Selecting a tool automatically sets its heaters to their active temperatures.

    So the recommended sequence for the slicer start gcode is:

    1. Start heating the bed using M140 S[bed_temperature].

    2. Set tool active temperatures (and standby temps if they are relevant) e.g. for tool 0 use G10 P0 S[first_layer_temperature].

    3. If desired, use M116 to wait for the bed to reach temperature. You can swap #2 and #3 if you like.

    4. Select the tool e.g. T0

    5. M116 to wait for all temperatures

    6. Print

    7. To change tool, just send the appropriate T command. No need to mess with temperatures.

    8. At the end of the print, use M0 to deselect all tools and turn all heaters off.

    HTH David

Log in to reply