After tool change extruder absolute position is ignored

  • I have a PNP machine with dual head.
    Board: Duet 3 MB6HC (MB6HC)
    Firmware: RepRapFirmware for Duet 3 MB6HC 3.1.1 (2020-05-19b2

    Axes description.
    X,Y - Standard axes.
    Z - Shared axis for both tools(head).
    E1,E2 - Axes configured to absolute positioning. Thes axes handles rotation of each head.

    Rotation axes has to be set to absolute position, because the openpnp is sending absolute rotation for the tools.
    Current setup uses tools which each is mapped to use single E axis. The reason for this is that i'm unable to define Tool with custom axis for remapping there is currently only support for X,Y. Therefore i had to use E selection.

    G0 180 ; Tool 0 moves to 180
    G0 180; Tool 1 moves to 180
    G0 180 ; Tool 0 moves to 360. This is the issue.
    Note that the machine is displaying that E0 is at 360 now. It is not that it resets the position, but it uses the current position as 0 for absolute movements.
    Could you tell me if it's desired behavior ?
    Configuration of axes:
    M82 ; absolute extruder moves
    M584 X0 Y1 Z2 E3:4 ; set drive mapping
    M350 X64 Y64 Z4 E32:32 I1 ; configure microstepping with interpolation
    ; Other direction current etc. are propably not needed

    Tool definitions:
    ; Define Tool 0
    M563 P0 D0
    ; Define Tool 1
    M563 P1 D1

    Whole configuration:

  • Moderator

    @optical I'd guess you have an M83 command (set extruder to relative mode) somewhere. Check the gcode and your tool change gcode files in the sys folder, eg tfree0.g, tpre0.g and tpost0.g. These run on tool change if they are present. For full explanation see


  • I have searched the configuration and found M83 in scripts resume.g and pause.g.
    Can i ask you when these scripts are invoked ?
    I will try to erase it and came back to you. However, i'm worried that this is not the issue.

    The tool scripts are not present.

  • I have remove the M83 gcodes from resume.g pause.g. These were not the issue. They were never called.

    I have performed these commands with following result:

    G0 E100 ; E0 - 100, E1 - 0
    G0 E0 ; E0 - 100, E1 - '-100' <- this is fault 
    G0 E0 ; E0 - 100, E1 - '-100' 
    G0 E0 ; E0 - 100, E1 - '-100' subsequent commands shows that the Extruder is indeed in absolute mode

    It looks like the absolute position of the E axis is retain between the tools. (i dont know why it is inversed)

  • administrators

    Extruders are inherently relative. Don't use them where you need absolute positioning; create additional axes using M584 instead.

  • I would like to do that however how can i configure tool mapping for this new axes ?

    Shows only X,Y axes are supported for the remapping ?

    If you cannot use extrudes in absolute manor why then support M82 ?

  • administrators

    Are you saying that you need to use the same G1 xnnn command for some axis designator x, no matter which tool is selected? And that you need each tool to remember the position of that axis, independently of the other tool?

    Are you using OpenPNP?

    Does this axis represent rotation of the PnP head?

  • Yes that is the use case.

    Yes i'm using OpenPNP. Inside open pnpn i have defined 2 nozzles. Each have premove command set to "T0" or "T1". I have digged pretty deep inside the documentation and this is the prefered way. I haven't found a way how to define 2 rotation axis inside openpnp.
    This is preferd way according openpnp documentation

    Yes this axis represent rotation of the PnP Head.
    currently i'm, using this type of head

  • Hi.
    I have tried 3.2beta2 and 3.2beta1 issue present in both of the versions.

Log in to reply